31.12.2023


В этом году я начал очень активно вести канал в Telegram, забив пока что на этот сайт. Итоги года тоже стали не исключением: опубликованы они там. Тем не менее, мне бы хотелось выложить их и на сайте в виде встроенных страничек из мессенджера.

К сожалению, работает только в lite- и pda-версиях сайта.

31.12.2022


Для многих это был не просто плохой год (когда в последний раз был хороший?), а просто офигеть какой ужасный, шокирующий и тревожный. Когда казалось, что вот буквально вчера всё было хорошо, а сегодня уже земля уходит из-под ног и надо срочно собирать вещи, оставляя всё, что тебе дорого. Половина знакомых за считанные недели после объявления мобилизации оказалась за пределами России. Некоторые умудрились успеть всего за два дня. Каждый может по-своему оценивать подобное поведение, но то что год для многих был необычайно суматошный — это факт. Ни в какое сравнение не идёт с предыдущими, ковидными, годами.

Для меня же он был не настолько плох. Отчасти благодаря тревожно-депрессивному расстройству, из-за которого для меня все годы являются тревожными. Но признаю, что для меня 2022-й тоже был невероятно сумасшедшим. На уровне 2019-го, но в другой проекции. Вообще, по сути, с 2022-м заканчивается большой четырёхлетний цикл. Недавно заметил, что всё, не только экономика, развивается какими-то циклами. Потрясающий 2019-й, сменившийся депрессивно-спокойными 2020 и 2021 годами, а затем кошмарный 2022-й, когда все процессы дошли до своего апогея. Но про итоги всего четырёхлетия я бы хотел поговорить более подробно, в отдельном посте и попозже, уже в 2023 году.

Вернёмся в год текущий. Для меня он начался вообще офигительно: с повышения зарплаты и неплохой премии, которые были честно выторгованы, а не даны сверху, чем я очень горжусь. После этого последовал отпуск с первым заграничным перелётом — в Дубай. Где год начал проявлять себя: сначала шок и панические атаки от языкового барьера, потом курс дирхамы, сделавший х2, риск заморозки карты, перенос вылета и возвращение в Москву на последнем эвакуационном рейсе Ростуризма… Многие друзья мне предлагали тогда остаться в Дубае, но я не решился. Как впрочем и они, до начала мобилизации.

Потом всё завертелось: обособление российских банковских карт, ограничения на снятие валюты, блокировка иностранных бумаг и запрет на торговлю ими, сокращение выдачи виз россиянам, работодатель попал под блокирующие санкции… Пришлось решать много новых проблем и учиться выживать в новой реальности, путешествовать, заводить иностранные счета (хотя бы белорусские) для комфортного существования, как и многим другим россиянам. Я чуть не лишился обоих хостингов своих проектов из-за невозможности оплатить их услуги!* Этот год прекрасно показал, как шатка и неустойчива современная финансовая система, находящаяся под контролем правительств буквально нескольких государств, и насколько быстро ваши доллары на счетах могут превратиться в цифровую пыль.

* Хотелось бы сразу выразить благодарность всем подписчикам, кто помогал решать эту проблему:

С профессиональной точки зрения всё тоже оказалось не очень гладко. Даже несмотря на то, что это чуть ли не единственная сфера в жизни, где я преуспел. Год я начал в должности руководителя команды разработки, за 3 года довольно быстро продвинувшись с младшего разработчика до данной позиции. При этом прекрасно осознавая, что, скорее всего, настолько социальную роль я не вытяну. Да и по опыту тоже, учитывая, что работал я под началом всего одного человека и не обладаю плюрализмом стилей управления в кармане. Но хотелось испытать себя, попробовать снова прыгнуть выше головы. И в целом всё прошло ровно по тому сценарию, который я предполагал: отработать как можно дольше, накопить резервы, сократить расходы (одна из причин переезда в Питер) и уволиться, когда станет совсем невыносимо. Идея об увольнении витала уже давно, так как спустя 2,5 года работы в одной компании хочется попробовать что-то новое и посмотреть, как устроены процессы в других местах. Но я всё не мог решиться, а тут выпал прекрасный шанс разыграть партию, в которой у меня уже не будет обратной дороги.

Но психологически вытянуть оказалось не просто. Играть не свою роль — это просто ужасно! Даже врагам не пожелаю. Я начал много пить. В добавок к уже выписанным антидепрессантам. Для повышения общительности и чтобы успокоить бесконечные мысли о том, что я не справляюсь и вообще на проекте всё плохо. В итоге ушатал печень, которая начала зарастать жиром. Теперь приходится сидеть на диете, гепатопротекторах и периодически сдавать анализы, чтобы не довести дело до цирроза. В итоге пришлось уволиться. Причём уже в таком состоянии, что без саббатикала никуда. Это такой длительный отпуск за свой счёт, когда ты можешь обдумать свою жизнь, отдохнуть, успокоиться, попробовать что-то новое. А ещё — считаю это важным элементом саббатикала — вновь научиться жить скромнее и сократить расходы. Ведь в мире не просто так центральные банки охлаждают экономику. Людям это тоже иногда нужно.

Для сокращения расходов и смены обстановки, которую требовали личные проблемы, переехал в северную столицу — город Санкт-Петербург. Вообще основной причиной на самом деле было наличие там хороших приятелей, с которыми можно было погулять в реальной жизни, в отличие от домоседов с Рублёвки. Но всё испортила мобилизация. Увы. В итоге я вновь оказался совершенно один, как в начале 2019 года. Это тяжело переживать первые несколько месяцев. Приходится полностью переучиваться жить. Но постепенно ты адаптируешься и вместо постоянных тусовок и личных разговоров за бокальчиком пива, снова в жизнь возвращаются чаты, блоги, программирование и прочие хобби. Жизнь снова начинает течь своим чередом.

Я пробовал насильно социализироваться через курсы общения и ораторского мастерства, хождения по концертам и различным мероприятиям. Но выхлопа это не дало: просто приходишь, один тусишь, кринжуешь и идёшь домой. При этом опять напиваешься, чтобы получить хоть какое-то удовольствие. Ну единственный плюс, что тренинг по срессоустойчивости показал у меня её полное отсутствие. Так что дальше можно даже не пытаться :) Как вылетало всё из головы и пересыхало во рту, когда выходил к доске в школе, так и сейчас происходит при выступлении, так и будет всегда. Остаётся только примириться со своими минусами и научиться жить за счёт использования сильных сторон. Не зря что в школе, что в универе — везде у меня были консультанты по взаимодействию с окружающим миром.

А знаете что настолько плохо, что даже хорошо? Состояние брокерских счетов россиян в этом году. Огромный жизненный урок тем, кто слышал, но не осознавал рассказы старших о потерянных накоплениях. Только в этом году я понял, что нужно тратить деньги. Бесполезно копить цифры на счетах — всё равно отберут. Нужно жить здесь и сейчас. Пожалуй, это и есть главный урок, который мы можем вынести из 2022 года. Нужно жить и наслаждаться жизнью, пока можем. Ведь кто знает, что будет в следующем году? Ядерная война? Инопланетное вторжение? Голод, вызванный безработицей, когда половину людей заменят нейросети?

Можно лишь предположить, что в следующем году нас ждёт очередной пиздец в начале года и какая-то оттепель к концу (и в плане монетарной политики центральных банков, и в плане политических потрясений). Тяжело ставить какие-то цели, когда завтра тебе могут выдать автомат и увезти далеко-далеко. Но всё же попробую составить какой-то план, чтобы можно было его придерживаться. Итак, в следующем году обещаю:

  • устроиться на работу (в идеале на 2 или 3, следуя последним тенценциям выживания) и восполнить финансовые резервы;
  • получить водительское удостоверение;
  • научиться играть на гитаре хотя бы "Как здорово, что все мы здесь сегодня собрались";
  • попутешествовать по странам СНГ;
  • слетать в Сибирь;
  • уехать зимовать в Турцию или на Бали;
  • не заниматься самобичеванием и пиздостраданиями, а просто жить.

Часть планов переносится ещё из 2021 года (перед 2022 я не подводил никаких итогов, похоже):

  • учить английский;
  • пилить pet projects (есть куча идей разной степени продуманности, в том числе подразумевающих работу с криптой и нейросетями).

Делитесь своими планами! Как и где собираетесь провести 2023 год?

Дальше я подведу итоги года по различным номинациям, но до этого хотелось бы подвести итог (простите за тавтологию) лирической части данного поста и поздравить вас, дорогие читатели, с Новым годом! И пожелать, чтобы все худшие сценарии обошли нас стороной, а все лучшие осуществились и позволили успешно воплотить все ваши планы в жизнь! Ура, товарищи! С 2023-м!

Раздача слонов

Раздача слонов

Разочарование года / Кошмар года

социальные мероприятия (путешествия, концерты, курсы)

Вообще весь этот год можно назвать одним большим разочарованием: разочарование в ETF, в долларе, в международной финансовой инфраструктуре, в европейских и американских политиках, в Visa и MasterCard, Euroclear и Clearstream, etc. Но всё же больше всего меня разочаровал личный провал всех социальных активностей и абсолютное непонимание, как и почему другие люди получают от этого удовольствие, а я не могу. Тяжело быть не таким как все долбоёбом.

Кидок года

прекращение или сокращение выдачи виз для россиян европейскими странами

Как только спрос на тракторы начал расти, обиженки-прибалты подсуетились, чтобы в России осталось как можно больше солдат. Спасибо им за это!

Конечно, есть ещё не менее эпичный кидок на золотовалютные резервы, но всё же он не касается лично меня напрямую. А вот из-за виз я 12 000 руб. потерял :(

Обман года

инвестирование в FinEx ETF

Считалось, что индексные фонды — это более безопасный и лёгкий способ инвестировать свои сбережения для новичков. Вместо сбора портфеля вручную ты получаешь готовый набор бумаг в составе одной. Как с кольцом Саурона. При этом исторически индекс в долгосроке обычно ещё и обгоняет практически всех профессиональных управляющих. Однако 2022-ой показал, что рисков на самом деле всегда больше, чем известно людям в данный момент. Считалось, что быть фондом под европейскими регуляторами — это надёжнее БПИФов в России. Но в одно мгновение все акции Финекса для российских инвесторов превратились в цифровые фантики, с которыми до сих пор ничего нельзя сделать. И никакого решения даже близко не видно на горизонте.

Инвестиция года

саббатикал

Поэтому что бы кто ни говорил, а лучшая инвестиция — это всегда в себя. И не обязательно даже в образование или саморазвитие. Даже просто хороший качественный отдых, выполнение вечно откладываемых вещей и нахождение себя могут здорово изменить жизнь. Никакой психолог не поможет лучше.

Город года

Ташкент

На удивление мне понравилось в мусульманских странах. Кажется, что только там сохранились настоящие традиционные ценности. Женщины ходят в целомудренных нарядах, а не вызывают похоть одним своим видом, как мода в современной европейской культуре. Феминистки, конечно, со мной не согласятся и будут спихивать ответственность на мужчин. Ну что ж. Это всё, что они умеют. Это, и жить с котами/собаками.

Банк года

Тинькофф

Как бывший сотрудник СберБанка, а также активный пользователь российской финансовой системы, могу очень много рассказывать о плюсах и минусах того или иного банка. Могу защищать и хвалить Сбер за огромный прогресс в последние годы (в том числе не только в ИТ, но и в бизнес-решениях наконец-то), ругать Альфа-Банк за постоянные попытки обмануть или подловить клиента теми или иными "звёздочками" в абсолютно любом договоре. Но при этом уже всем, наверное, известно, что лучший банк для физических лиц сейчас — это Тинькофф. Лучшие условия, лучшие акции, лучшая статистика, лучшее приложение. Для меня до сих пор умом не постижимо, как "Тинькофф Инвестиции" умудряются выкатывать столько фич с адекватным качеством даже на старте, допиливая их до конфетки в кратчайшие сроки. При этом не выдаивая из клиентов последние копейки.

Отдельно хотел бы упомянуть скорость обработки транзакций и отображения начисленного кешбэка. То, что в других банках "тупит" по несколько дней, в Тиньке отображается через несколько часов. Возможно, используется какая-то магия вместо реального отображения выполненного клиринга, но с точки зрения простого пользователя впечатляет.

Худший банк года

ВТБ

А вот в ВТБ я так и не смог найти плюсов. Ужасное приложение, где нельзя вывести историю сразу по всем картам, самая отвратительная программа лояльности, где промокод надо заказывать за несколько часов до похода в магазин. Да всё было понятно, ещё когда открывал счёт в отделении. Все действтия, которые надо было выполнить в приложении, срабатывали только со второго раза, постоянно выдавая ошибки. А для смены пин-кода в итоге пришлось звонить на горячую линию, потому что не удалось пробиться через ошибки.

Платёжная система года

МИР

После того, как Visa и MasterCard всех нагло кинули, прогнувшись под сраных политиков, другого варианта быть и не могло. Но при этом она даже очень хорошо работает. А к праздникам даже выкатили невероятно щедрую акцию с «Приветами». А как они завернули платежи иностранных платёжных систем через себя, чтобы всё продолжало работать даже после введения санкций! Моё почтение!

Кешбэк от НСПК

Вот только поправьте баг в Mir Pay под Android, пожалуйста, чтобы повторная оплата производилась с отображающейся на экране карты, а не с дефолтной.

Прорыв года

нейросети

Мама, я аниме!

Пожалуй, одно из немногого хорошего, что случилось в этом году — это огромный прорыв в нейросетях. Вот я только начал снова писать, спустя 4 года, но чувствую, что в 2023 снова придётся бросить это дело, потому что ChatGPT сможет за меня писать связную речь по указанным тезисам. Причём с картинками от Midjourney и других нейросетевых генераторов, чьи изображения, кстати, уже используются в этой статье.

Как думаете, люди сами себя уничтожат или всё же понадобится помощь искусственного интеллекта?

И подписывайтесь на дружественные каналы с нейродевушками:

Достижение года

следование намеченным планам и успешность в большинстве из них

В целом не считаю год для себя неудачным. -11% по инвестициям, когда индексы упали на 20-50%. Большинство планов и идей сработало. Бабки есть, перспективы есть, что делать понятно. Главное, пожалуй, — это уметь вовремя корректировать намеченные планы и меньше об этом переживать. И тогда успех обеспечен.

Вещество года

гамма-оксимасляная кислота (GHB)

Также известная как оксибутират натрия. Известное лекарство, близкое по эффекту к алкоголю (придаёт уверенность, общительность, убирает загоны и страхи, проясняет сознание), но при этом не разлагающее мышечную ткань, а стимулирующее выработку гормона роста, из-за чего раньше использовалось бодибилдерами. К сожалению, в чистом виде сейчас уже запрещено, а в "грязном" слишком токсично. Увы, кокаин нюхать в этой стране могут только депутаты с неприкосновенностью. А россияне, по мнению законодателей, видимо, должны резать друг друга в состоянии алкогольного опьянения.

Закрытие года

Hydra

Как ныне житель Петербурга, не мог не включить такую номинацию :) Кто знает, тот поймёт, кто не знает, то лучше и не знать.

Happy new year!
27.11.2018


Несколько дней назад я проводил серьёзную реструктуризацию своих веб-сервисов, но всё не было времени написать об этом сюда. Тем не менее, хотя бы вкратце, но описать её стоит для протокола.

Целью реструктуризации было снижение нагрузки на основной слабенький сервер в Нью-Йорке, который внезапно стал жёстко тупить. В срочном порядке был переписан @kozRandBot и перенесён на новый сервер, о чём я своевременно писал ранее в своём канале. Но вот о чём я умолчал, так это о закрытии сайта Congrats.cf. Им настолько никто не пользовался, что YouTube даже прислал письмо об отключении своего API от проекта.

Уведомлени об отключении API от YouTube

Затем я перенёс все статичные сайты, задав кучу редиректов, постепенно уходя от использования домена nekochan.ru в пользу sadbot.ru. Также я хотел передать управление пересылкой почты для доменов Яндекс.Коннекту, но пока у меня не получилось найти время, чтобы разобраться, как это всё работает (я сменил MX-запись на Cloudflare, но Яндекс даже спустя 72 часа так это и не увидел).

Ну и в конце концов я закончил начатый какое-то время назад процесс удаления распухшего функционала из @kozalo_bot'а. Теперь там остался только inline-режим и возможность получения инфомации о пересланных сообщениях. В будущем хочу вырезать inline-режим в отдельного бота, а этого отключить насовсем, но в ближайшие месяцы у меня не будет на это времени. А вот почему его не будет, мы поговорим как-нибудь в другой раз…

P.S. А ещё я обновил логотип блога. Как он вам?

03.10.2018


Плашка о скором отключении сайта до переезда
Плашка, которая несколько дней занимала верхнюю часть сайта.

Не прошло и 10 лет, как я в соизволил наконец-то перенести блог со старого-доброго бесплатного shared hosting'а, с которого начинал в начале 10-х, на хоть и недорогую но платную VPSку. Ну вернее меня заставили. Hostinger, который практически безвозмездно держал этот сайт у себя на протяжении 6,5 лет, прекращает поддержку своей старой платформы, предлагая переезжать на более современный сервис, в чём я не вижу ни малейшего смысла при наличии нормальной (или хоть какой-то) VPSки, где можно использовать неограниченное количество поддоменов, форвардить любое количество электронных ящиков и писать сайты и приложения хоть на Python, хоть на Java или C# (если хватит оперативной памяти для работы виртуальной машины, конечно). За эти годы у Хостингера бывали периодические падения, постоянное закручивание и без того затянутых гаек (нещадно резали функционал на бесплатных тарифах), ввод платной регистрации и прочие не особо приятные вещи — зато без каких-либо ежемесячных или ежегодных платежей и необходимости настройки кучи серверного софта. Самое то для нищего и ещё ничего не смыслящего в ИТ школьника! Представляю, как бы я офигел, если бы мне предложили в 9-ом классе разбираться не только в программировании, но и в администрировании линуксового сервера с чтением тысяч страниц манов!

Сообщение о прекращении поддержки платформы
Почему тут пишут про 2 месяца, а отключить сайт обещают через 2 недели, если письмо пришло 12 сентября?

Итак, как бы то ни было, переезд всё-таки случился, с чем я всех вас, мои дорогие читатели, и поздравляю! За несколько вечеров я избавился от устаревших модулей в коде, с помощью PhpStorm'а почистил кучу древнего говнокода от самых явных ошибок, поплакал кровавыми слезами из-за отсутствия там не то что каких-либо паттернов, тестов или элементов ООП, но даже из-за несоблюдения банального принципа Don't Repeat Yourself или наличия кучи откровенно неоптимальных запросов к базе данных. Теперь сайт крутится на PHP 7 и по идее должен работать немного шустрее, но на практике, скорее всего, время отклика только увеличится из-за территориальной удалённости сервера: самую дешёвую VPS удалось найти только на противоположной стороне Земли.

Если будут какие-либо ещё проблемы, не удивляйтесь: всякое бывает, особенно когда правишь код без тестов и администрируешь сервера не по призванию, а по необходимости. Будем чинить и поднимать обратно в строй — время проверить всё на надёжность перед уходом в армию пока есть.

27.09.2018


Прошу простить меня за нарушение графика публикаций и долгое отсутствие. Последние три месяца были довольно богатыми на события: я защитил диплом бакалавра, съездил в Питер, поборол депрессию, пережил профессиональное выгорание, пролетел с поступлением в магистратуру и сейчас готовлюсь идти в армию… В общем, хорошенько отдохнул в импровизированном отпуске и офигенно провёл лучшее лето в своей жизни (передаю огромное спасибо друзьям и родителям!) :) Ну а теперь обо всём подробнее.


Путешествие

Тут должны были быть фотографии, но в конце-концов я всё-таки решил, что лучше не перегружать пост и просто дать ссылку на свой профиль в Instagram.

Про диплом сказать мне особо нечего, так что сразу перейдём к поездке, ведь наконец-то я смог покинуть пределы Архангельской области и съездил в Санкт-Петербург! Впервые прокатился на поезде! А я уже думал, что на мне висит проклятие и мне никогда не суждено покинуть эту землю. Что могу сказать о плацкарте:

  • узкие коридоры — ну такое себе;
  • верхние полки — зло;
  • нижние полки — норм;
  • верхняя парная полка — господи, ноги в проходе!
  • отсутствие кондиционеров и 32 °C в вагоне — смерть.

Лучше путешествовать на самолёте. Час — и ты на месте! Не то что 22 часа в поезде трястись…

Сам Питер красив. Исторический центр с его архитектурой — круто. Островные районы и каналы посреди города — офигенно. По краям, правда, всё равно выглядит как типичный центр Архангельска. Ну да ладно.

Ни по каким музеем мы не ходили, а просто гуляли по городу и любовались. Разве что побывали в Петергофе, хотя офигели от 450 руб. на человека за вход. Впрочем, по сравнению с 300 руб. за вход на стену Петропавловской крепости, где стоят платные (!) смотровые бинокли — это ещё по-божески.

На два дня съездил в Великий Новгород. К сожалению, не успел особо погулять, но впечатлился растущими на улицах яблонями, грушами и вишнями! Что для местного человека привычное дело, для северного в диковинку.


Депрессия и выгорание

За двумя зайцами погонишься, ни одного не поймаешь.
А. П. Чехов

ИТ — это сложно. Огромный пласт разносторонних знаний от алгоритмов со структурами данных и языков программирования до опыта работы с конкретными фреймворками и технологиями, которыми должен обладать любой уважающий себя специалист, чтобы с лёгкостью проходить собеседования и иметь возможность выбирать работодателей. Даже чтобы устроиться джуном, надо владеть приличным набором тулов. А если читать требования к вакансиям и относиться к ним серьёзно, то можно вообще сойти с ума и никогда не решиться откликнуться на вакансию…

Ещё сложнее всё становится, когда ты точно не знаешь, чем будешь заниматься, и метаешься туда-сюда: веб (фронтенд, бэкенд), десктопный софт, мобильные приложения, геймдев, программирование микроконтроллеров, написание драйверов, языков программирования или даже, прости господи, операционных систем. До последних трёх я не дошёл, но все предыдущие так или иначе трогал. В результате ты знаешь по чуть-чуть везде, но так нормально ничем и не владеешь в достаточной степени, чтобы сказать, что готов писать полноценные приложения для продакшена. При этом количество отложенных книг, статей, туториалов и докладов с конференций по каждой из тем только растёт и растёт…

В конечном итоге оказываешься в положении, что вроде бы знаешь много чего, не знаешь ещё в разы больше, чтива и смотрева в бэклоге ещё не на одно десятилетие даже спустя столько лет изучения, а устроиться на работу всё ещё не можешь, потому что глубоких знаний ни в одной из областей нет. И тут становится очень грустно.

Во время длительных марафонов, когда изучить очень много материала за минимальное время, особенно легко сорваться и выгореть. Ты ещё даже не работал, а уже устал. Руки опускаются, ничего больше не хочется делать и начинаешь ненавидеть ИТ. В такое состояние я и попал этим летом после защиты диплома, пытаясь одновременно тащить учёбу, написание ботов для Telegram, администрирование серверов, вкатывание в линуксы и функциональное программирование.

Чем больше узнаёшь про промышленное программирование, тем больше времени уходит на создание своих пет-проджектов. Ведение репозитория, написание тестов и документации, подключение сервисов непрерывной интеграции (CI) и оформление прочих служебных, инфраструктурных, файлов занимает много времени. Несомненно, всё это повышает качество получаемого в результате продукта и это необходимо делать. Но затраты на обслуживание каждого пет-проджекта начинают превосходить удовольствие от непосредственного написания кода, что сводит любое желание заниматься ими бесплатно на нет. Тянуть на себе поддержку старых и создание новых проектов становится слишком тяжело. А если к этому ещё и подключаются материальные расходы на хостинг всё новых веб-сервисов…

Хочется уже начать регулярно получать деньги за свои труды и видеть довольных пользователей (хотя в масштабах нескольких telegram-чатиков активно пользуются моими ботами — приятно наконец-то сделать что-то, что реально нравится людям). Да, каждый проект — это ступенька по лестнице повышения квалификации и саморазвития. Но процесс слишком медленный. На работе с нормальным code review и хорошим наставником всё могло бы произойти гораздо быстрее. Ещё и за деньги. Всё-таки обидно сидеть на шее у родителей и друзей в 22 года.


Свет в конце тоннеля

Ну а теперь поговорим, что я с этим буду делать дальше. В начале статьи я упомянул, что мне удалось выбраться из цепких лап депрессии и увидеть яркий свет будущего за пеленой безысходности. В чём же секрет успеха? Он заключается всего в шести простых шагах. Записывайте:

  1. придумать себе цель и двигаться к ней;
  2. побороть страхи (боязнь собеседований, отказов, гинофобию, социофобию и т. д.), осознав ничтожность мелких неурядиц и относительно коротких социальных контактов в сравнении с тем, что предстоит пережить по пути к достижению цели и по жизни в целом (я называю это «взглянуть на проблему с птичьего полёта»);
  3. зарядиться верой в себя и решительностью (помочь могут знакомые, но тут главное выбрать правильных людей, которые не будут принижать тебя, отправлять на завод и загонять ещё дальше в депрессию);
  4. не врать себе и точно знать, чего ты хочешь;
  5. проще относиться к жизни и меньше париться по мелочам;
  6. научиться не впадать в уныние, когда всё идёт не по плану, а быстро брать себя в руки и вносить в него изменения.

Все советы просты и очевидны — полностью уверен, что все их слышали сотни раз. Но этого мало: их надо осознать, поверить в них и начать действовать. Не знаю, как объяснить. Все слова всё равно останутся лишь пустыми словами, пока не случится какое-то невероятное и доселе невообразимое событие, которое раскроет глаза и покажет дивный новый мир без страха жизни, без депрессии и с перспективами впереди. Для меня таким триггером стала близость с девушкой, а также вовремя сделанное замечание, что, наверное, ты всё-таки не интроверт, если:

  • от длительного пребывания дома психическое состояние ухудшается и усиливается депрессия, но ты рад, когда наступают те редкие моменты, когда приходится посещать институт и видеть одногруппников;
  • тебе нравится ходить на пьянки и вписки, но очень грустно, когда всё заканчивается, все расходятся и тебе приходится оставаться дома один на один со своими мыслями;
  • от постоянного безвылазного чтения книг, статей и программирования ты устаёшь, а не набираешься сил.

Когда мир уже пошатнулся, достаточно небольшого факта, чтобы окончательно перевернуть его и начать новую жизнь в качестве экстраверта.


Что дальше?

Поскольку, несмотря на заверения некоторых людей, для поступления в магистратуру всё-таки оказалось мало одного диплома, а серьёзных заболеваний у меня нет, то ближайший год моя шкура принадлежит государству (призовут на службу в армию). Потом собираюсь переезжать в Москву, потому что в Северодвинске ловить совершенно нечего: ИТ здесь нет (PHP с Битриксом, 1С, Delphi и Visual FoxPro не предлагать). Знающие люди объяснили мне, что на рынке труда дефицит, толковых джунов мало и устроиться на работу проще, чем я себе это представлял. По крайней мере в столице, где выбор работодателей огромен. Они же пояснили, что не стоит со всей серьёзностью относиться к требованиям в описании к вакансиям, не нужно бояться на них откликаться и что нет ничего страшного в собеседованиях. При этом в Москве вполне реально устроиться без особых проблем на работу с зарплатой от 80 тысяч рублей в месяц на руки. Ну что ж посмотрим, так ли это — отходной план в лице завода никуда не денется.

Я безумно рад наконец-то почувствовать вкус жизни, ощущать не безысходность впереди, а с интересом и любопытством смотреть в будущее, гадая, как же в итоге сложится жизнь и удастся ли мне исполнить свои намерения. И это, как мне кажется, главный секрет — к жизни надо относиться с интересом. Не бояться испытаний и невзгод, а получать удовольствие от их преодоления. Тогда и жить будет в кайф, и люди к тебе потянутся.

Что касается блога, то я сильно отстал от графика публикаций, так что в ближайшие дни постараюсь дописать и выложить всё, что только успею из запланированного материала. Но как ни крути, а всё зависит от того, на какое число мне дадут повестку явиться с вещами. К тому же надо ещё успеть перенести куда-нибудь сайт с умирающего Хостингера, а то на целый год вы останетесь без возможности перечитывать мои статьи :)

Если с призывом особо торопиться не будут, то у меня хватит времени на ещё один сюрприз, но о нём пока говорить слишком рано.


DeskChan

В последний момент решил дописать пару абзацев по поводу DeskChan, чтобы тоже как-то подвести итоги этого периода моей жизни, который ВНЕЗАПНО стал весьма значимым, помог в социализации и позволил обрасти множеством новых знакомств из разных регионов как нашей страны, так и ближнего зарубежья.

На данный момент проект находится то ли в упадке, то ли в состоянии перезапуска: произошло отделение Флудилки (под новым названием и адресом — @kdr_flood) от нового чата (ему достался старый адрес), предназначенного исключительно для обсуждения DeskChan, где флуд жёстко карается и пресекается на корню. Последний оставшийся в проекте разработчик из старого состава тоже постепенно продолжает выгорать, а будут ли люди, которые смогут его заменить, я не знаю, поскольку уже давно исключён из Высшего Совета и перестал следить за развитием проекта.

За мной ещё висит должок в виде системы обновления. Я про неё помню, согласен, что надо доделать, но так не хочется… Особенно после наездов Сусеки [основатель проекта]. Хотя некоторые наработки есть и их надо бы довести хотя бы до уровня концепта, чтобы можно было обнародовать и отдать на доработку сообществу. Но это опять же случится не в ближайший год по понятным причинам. Трудно давать какие-либо обещания по опенсорсу в условиях, когда государство требует отдать долг, а жизнь только начинает бить ключом.

Но в целом мне уже не верится, что у них получится что-либо годное. На искусственный интеллект не хватит ни умений, ни ресурсов, а ведь вся задумка держится только на общении и взаимодействии с различными частями системами, с чем тоже возникает немало проблем. Давайте хотя бы дождёмся, когда основной функционал будет покрыт автоматическими тестами и каждый новый «стабильный» билд не будет приносить десятки новых багов! У меня всё.

До скорой встречи! Всем хорошего конца недели и победы в борьбе с унынием!

03.06.2018


Постоянные читатели могли заметить, что я не писал ничего почти два месяца. Некоторые даже могли соскучиться! Виной всему этот жаркий период в жизни каждого студента, который, к сожалению, никак не связан с погодой (которая вообще не радует теплом и жизнерадостностью). Меня окружили и взяли в кольцо преддипломная суета, куча работы по учёбе, закрытие долгов и связанное с этим отсутствие свободного времени. За это время я погасил задолженности по зимней сессии, закрыл летнюю и защитил производственную практику. Теперь все силы будут уходить на написание самого диплома. Особенно непосредственно технической части, потому что бумаги уже более-менее готовы.

Как же хочется иметь много свободного времени…

В связи в этим, с сожалением могу констатировать, что ещё где-то месяц график выхода публикаций будет нестабильным и, вероятно, придётся расчехлить из закромов проходные и неинтересные темы, отложенные на потом. С июля же всё должно наладиться и прийти в норму, так что посты продолжат выходить по привычному графику: два раза в месяц.

Вчера вышел долгожданный (кем, лол?) последний ролик, сделанный мной на движке Warcraft III в далёком 2009 году, но записанный на видео только сейчас. Это одна публикация. Также я повторно выложил свои первые кампании. Они не считаются, так как уже когда-то были на сайте и я их никак не модернизировал с тех пор. Сегодня я обнародовал многострадальную кампанию «История животных». Не помню, была ли она на страницах блога с одной картой — возможно — но с тех пор туда добавилась ещё одна — так что считается. Конец апреля и начало мая закрыты.

На следующей неделе выйдет моя последняя карта для Варкрафта, которую я делал в соавторстве с одним человеком в не таком далёком 2016 году. Это игровая и достаточно сложная карта, которая заставит попотеть даже бывалых игроков. Этим мы окончательно закроем май. Ближе к середине июня выйдет та самая неинтересная поделка, которая сыграет роль «филлера» в самую горячую преддипломную пору. Ну и к июлю постараюсь представить что-нибудь более существенное ;)

Несмотря на такой сумбурный и поспешный выпуск ролика, кампании и карты в не особо удобное для студентов время, я очень надеюсь, что данные творения не затеряются в вашей ленте и любители Варкрафта смогут заценить их, не проморгав в жизненной суете. Потому что для меня это действительно важные проекты. Особенно кампания «История животных», на которую я потратил несколько месяцев работы и много сил.

Всем студентам удачи на сессиях и защитах! Играйте в хорошие игры и поддерживайте мододелов словом, рублём или делом! Жду фидбека!

08.02.2018


Сообщение о неработоспособности ботов

Позавчера у меня был небольшой факап с VPSкой, в результате которого на час были выведены из строя все мои боты для Telegram (их пока два). И раз уж сообщество просит, то, пожалуй, мне стоит немного рассказать об этом инциденте.


Ох уж эти Линуксы...

линуксобляди идут нахуй лол

Начну немного издалека: с операционных систем. Я не люблю Linux. Не знаю, видимо, у меня недостаточно квалификации для того, чтобы быть его пользователем. Сколько раз я не пытался «перекатываться» на один из его дистрибутивов — всё заканчивалось очередным факапом, когда что-то ломалось и системой становилось всё труднее и труднее пользоваться. Хотешь установить очередной пакет? Нет места. Хочешь очистить мусор от удалённых пакетов и кэш пакетного менеджера? Окей, но при каждой загрузке теперь будет вылезать пяток сообщений об ошибках. Именно это случилось во время моей первой попытки переехать на Ubuntu. Позже я услышал ещё много подобных историй от пользователей этого дистрибутива и тех, кто их знает. Например про отваливающееся переключение языков при обновлении.

Ну да ладно. Не одной «Бубунтой» славится Линукс. Хотя это был самое первое и запоминающееся знакомство с семейством операционных систем UNIX, когда я ещё даже не пытался делать чего-то выходящего за рамки обычного использования. Прочитав где-то, что предшественник Убунты — дистрибутив Debian — славится своей стабильностью и консервативностью, после некоторого перерыва я перешёл на него. А именно на восьмую версию, которая была на тот момент последней.

Сначала ты оказываешься немного в шоке. Ведь теперь тебе надо самому ручками изменять конфигурационные файлы пакетного менеджера, чтобы получить в своё распоряжение различный проприетарный софт (например те же драйвера). А ещё sudo не настроен по умолчанию. Для компьютеров с 64-битным процессором надо дополнительно выполнить специальную команду, чтобы разрешить установку пакетов, скомпилированных под 32-битные системы. В общем ужас. Но на самом деле не всё так плохо! Спустя какое-то время (ну пару дней может быть) ты осваиваешься, настраиваешь всё и системой даже можно вполне безболезненно пользоваться.

Но! Разумеется, не может не быть этого мерзопакастного но. Главной проблемой Дебиана является его же преимущество — стабильность через консервативность. По сути какие-то серьёзные мажорные изменения происходят между релизами. Их хорошо тестируют (особенно на пользователях Убунты, которая со своими жёсткими циклами выпуска релизов не брезгует таскать пакеты из нестабильных веток Дебиана) и проверяют на совместимость друг с другом. Но между релизами, которые выходят где-то раз в два года, программы безбожно устаревают. Нет, к ним выходят какие-то минорные обновления, но, например, в Debian 8 есть только Python 3.4, а за более свежими версиями добро пожаловать в репозитории Debian 9 или собирайте из исходников и ставьте вручную. И тут повествование можно разделить на три ветки.

Во-первых, надо заметить, что минорные релизы тоже довольно жёстко тестируются в сообществе, что замедляет их попадание в официальные репозитории. И не для всех типов программ такое подходит. Да, для каких-нибудь простых линуксовых утилит, в которых уже всё есть и мало что меняется, это нормально. Но для современного софта, находящегося в стадии активной разработки (привет, Agile) — это совершенно неприемлемый вариант. И в итоге мы приходим либо к необходимости ручного скачивания deb-пакетов (в лучшем случае) или каких-нибудь более экзотических форматов файлов (самый мудрёный вариант установки, пожалуй, я видел у Oracle'овского JDK, когда нужно скачать архив, установить из стандартного репозитория какой-то конвертер форматов, потом преобразовать архив в deb-пакет, установить через dpkg и обновить альтернативы), либо к добавлению кучи дополнительных репозиториев в источники пакетного менеджера, либо вообще к распространению ПО в виде архива, который нужно куда-то распаковывать (что жутко неудобно, когда привыкаешь к тому, что это за тебя делает менеджер пакетов и установочные скрипты). Во втором случае, кстати, у Бубунты есть определённое преимущество в виде собственного формата широко распространённых PPA-репозиториев. Для Debian'а порой куда труднее найти подходящие репозитории.

Кстати, именно для решения вышеописанных проблем, офигев при знакомстве с миром Debian'а, я и начал составлять KozConfigurator.

Второе, про что я хотел кратко упомянуть отдельно, это обновление ветки релизов. По идее можно перейти на новую мажорную версию дистрибутива без переустановки с нуля. На практике же это довольно сложный процесс, во время которого практически гарантированно что-то пойдёт не так. Поэтому существуют целые гайды по миграции с инструкциями по созданию бэкапов и решению часто возникающих проблем. Лично я пока так и не решаюсь обновляться до девятки. И в этом плане очень соблазнительно выглядят дистрибутивы со сквозной моделью обновления (Arch Linux например), о чём я говорил в новогоднем посте.

В-третьих, это сборка из исходников. Очень больная для меня тема. Прям как «сишники», которые придумали этот ужасный мир и гордятся им. Эта бездушная экосистема без нормальных систем сборки и менеджеров зависимостей, когда отсутствующие библиотеки приходится угадывать с помощью каких-то секретных утилит, о которых знают только они. Ну или гуглить. Если повезёт, то похожие проблемы у кого-то уже возникали на той же системе, а кто-то из сишников снизошёл до простых смертных и подсказал, как всё разрулить. В противном случае придётся становиться одним из них: разбираться в основах Си, учиться пользоваться всеми этими GNUшными утилитами (компилятором, линковщиком, системой сборки и т. п.), познавать дзен makefile'ов... Либо только бог сможет помочь...

На самом деле, конечно, можно ещё задать вопрос самому и, возможно, даже получить на него ответ, но с этим у меня тоже был довольно отрицательный опыт. Сразу подчеркну, что выборка очень нерепрезентативна: я задавал буквально несколько вопросов и преимущественно на Ответах@Mail.Ru — так что мнение является абсолютно субъективным. Как бы то ни было, но ответ на поставленный вопрос я получал ещё реже. Надо понимать, что к такому крайнему средству, как задание вопроса на форуме (условно отнесём к ним и «Ответы»), я прибегал в исключительных случаях, когда прочесал уже все сайты на первых страницах основных поисковых систем, опросил всех знакомых и всё равно ничего не нашёл. И такое уж у меня сложилось впечатление, что если ты чего-то не можешь найти, то никто тебе больше не поможет. Хотя, возможно, это исключительно проблема данного сервиса «для домохозяек», где было глупо искать людей подходящей квалификации. Возможно, на том же StackOverflow всё совсем по-другому. Но пока другие случаи лишь подтверждают это наблюдение.

Ох, что-то эта часть слишком затянулась. Можно бесконечно изливать тонны говна и ненависти, вспоминая каждую проблему, с которой приходилось сталкиваться, пользуясь тем или иным дистрибутивом Linux, но пост не об этом. Я просто хочу подчеркнуть, что Линукс — это ни разу не нормальная система для людей. Даже в якобы дружелюбных дистрибутивах рано или поздно абстракция протечёт, утопив несчастного начинающего линуксоида (rest in peace, buddy). Я даже больше не хочу пытаться туда серьёзно соваться, пока не прочитаю пару книжек по устройству ядра и программированию на Си, документацию на CMake и маны ко всем основным утилитам. И тогда уж точно настрою себе труъ-хакерскую систему с самособранным ядром, тайловым оконным менеджером, кастомизированным Vim'ом и т. п.!

Что уж тут говорить, даже настоящие программисты из подкастов пользуются Макбуками и сидят на macOS, потому что им надоедает бороться с системой и просто хочется иметь работающий UNIX, на котором можно писать код и зарабатывать деньги, а не заниматься вечной настройкой и починкой!

Конечно, в Windows тоже есть свои проблемы. Например, сейчас у меня напрочь отвалились обновления. Просто так. Ну не ставятся и всё тут. Каждый раз откатываются после ошибки при обновлении. Гугление ничего не дало, а я недостаточно компетентен, чтобы разбираться, куда логируются ошибки и как всё это чинить. Мотивации задавать вопрос на форумах тоже как-то нет. Есть вариант, что надо просто переустановить систему на стабильный билд и завязать с программой Windows Insider.

Я согласен и с тем, что в Винде много мусора и ненужных предустановленных программ и служб. Тем не менее, в ежедневном пользовании они не особо мешают, зато всё работает из коробки и мне не надо ничего устанавливать самому! Да, возможно Винда — это огромная дырень в плане безопасности, но господи, это домашний комп, а не сервер! Хотя стоп. Статья же должна быть как раз о сервере. Хм...


Сервера и места их обитания

Ладно, пора уже перейти ближе к делу. Всё это длинное предисловие нужно было только для того, чтобы подробно и в красках описать моё отношение к линукс-системам и сексу в терминале.

В последнем обновлении к боту @kozalo_bot (в частности, в этом коммите) я добавил новую административную функцию: удаление сообщений пользователя, попадающих под заданный администраторами сообщества шаблон. И всё бы ничего, но она оказалось плохо оттестированой (<сарказм>ведь автоматические тесты для лохов</сарказм>) и при включении упала на продакшене. И именно это случилось позавчера.

На самом деле точно определить проблему я так и не смог. Просто вместо множества фильтров для чатика DC там оказался какой-то мусор. Это я выяснил в процессе отладки на продакшене (best practices, ёпт), а потом, временно загрузив нужный хендлер (функция, ассоциированная с командой или какой-то фразой), тупо удалил данные для чата из словаря. И после этого всё заработало! До следующего бага, пофикшенного этим коммитом.

Да, изначально проблемы касались только одного чата: всё остальное было отлично. Но путь исправления был вовсе не так краток, как описано выше. Он был тернист и труден, пролегал через жуткие дебри и заствлял идти в обход, пока дорога буквально рушилась под ногами. В итоге на всё ушло пару часов, а боты почти час провели в выключенном состоянии.

Первой проблемой стал отвалившийся FTP. Вот хочешь ты загрузить тестовый код на сервак, а он говорит, что фиг тебе. Ладно, было уже подобное после обновления пакетов. Подключаешься по SSH к VPSке, смотришь список запущенных процессов в top'е и не обнаруживаешь знакомый vsftpd (на самом деле я каждый раз забываю, как он называется, так что сначала просто ищу что-нибудь с «ftp», а потом иду в Google и ищу настоящее название демона). Ну окей. По привычной схеме набираешь:

sudo systemctl start vsftpd

...и получаешь неожиданное сообщение:

sudo: systemctl: command not found

И тут мне стало страшно. Что произошло с VPSкой? Куда девался systemd? Её же никто не трогал! Попробовал вызвать journalctl — тоже мимо. Дрожащими руками набираешь:

ls /bin

и с ужасом не видишь ни одного бинарника от systemd. Неужели взломали? last показывает только мои же сегодняшние входы. Ладно. Хрен знает, что произошло, но надо как-то фиксить.

sudo aptitude install systemd

Упс! 404.

sudo aptitude update && sudo aptitude install systemd

С замиранием сердца пробуем стартовать демон FTP снова... успешно! Ура!


Фейл за фейлом

Но тут мои приключения не закончились, потому что далее я совершил роковую ошибку:

sudo aptitude safe-upgrade

Зря я это сделал, ох зря. Именно после этого действия перезапуск ботов упал с ошибкой.

Отрывок лога с ошибкой

Зависимости сломались и мне нужно было как-то установить недостающую версию библиотеки. Попытка просто установить из репозитория завершилась неудачей: ну нет там уже такой версии. Гуглишь. Советуют подключить к источникам apt'а репозитории Debian 8 и установить из них. Пытаешься быстренько найти их адреса — безуспешно. Ладно, запускаем виртуалку с Debian'ом и подглядываем там. Поскольку буфер обмена между виртуалкой на локальном ПК и Vim'ом на удалённой VPSке отказывается работать (я знаю про "+p и "*p — не работают), то набираю вручную:

deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb http://ftp.debian.org/debian/ jessie main contrib non-free
deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free

Но и это не помогло по двум причинам:

  1. Я поленился набрать последнюю строчку. А нужный мне пакет, как выяснилось потом, располагается именно в ветке security.
  2. Даже если бы я не ступил с предыдущим пунктом, ничего бы всё равно не нашлось, потому что искать надо всё-таки в репозиториях Debian 9.

И теперь мы наконец-то выходим на финишную прямую, ведущую нас к тому, как же всё-таки всё разрешилось. А это было очень просто. Я всего лишь загуглил пакет и нашёл его на сайте Debian. Всё. Тут уже видно, что он находится в ветке security девятой версии (stretch) дистрибутива.

Найденный пакет на сайте Debian

Теперь набираем:

uname -m    # (или uname -p)

Убедившись, что VPSка выполняется на 64-битном процессоре, качаем прямо с сайта deb-пакет для amd64 и «заливаем» его по FTP на сервер.

Нужная версия пакета

Устанавливаем через dpkg, запускаем интерпретатор, пытаемся импортировать модуль ssl... ура! Всё работает! Можно запускать ботов через supervisor.


Послесловие

Надеюсь, никто из линуксоидов не разбил себе лицо фейспалмами, читая всё это? Я признаю, что являюсь ужасным админом и хреновым DevOps'ом, который плохо разбирается в Линуксах и всё делает неправильно. Но в силу отсутствия более квалифицированных людей, мне приходится брать эти задачи на себя и, пусть и очень медленно, но всё-таки учиться, периодически совершая набеги на специализированные статьи, литературу и видеоматериалы.

Линукс-системы постоянно бросают тебе вызов. И если ты хороший инженер, то такие вызовы тебе только нравятся, манят. Ты возвращаешься к ним снова и снова, чтобы в очередной раз проверить себя, удостовериться в силе зверя и вновь уйти побеждённым, но только чтобы вернуться позже с новым знанием и новыми силами.

Вообще людям свойственно находить себе проблемы, с которыми нужно бороться. И лучше уж ебаться с ОС, чем придумывать проблемы в голове, загоняться в депрессию и резать вены.

03.01.2018


[18+]

Happy New Year!

Я хотел начать писать этот пост ещё где-нибудь в начале декабря, но как всегда получилось, что пришлось набивать его в последние часы уходящего года, а заканчивать уже в новом. Некоторые вещи никогда не меняются.

Хотя с другой стороны, если бы я начал писать его пару месяцев назад, то тут было бы отражено множество депрессивных и отрицательных событий, случившихся в 2017 году. Он прошёл для меня в каком-то серо-чёрно-сером формате, начавшись с небольшого улучшения общего настроя и приподнятого боевого духа, скатившись в очередную затяжную депрессию, давшую отскок под конец года (вероятно, несколько размылившись в предсессионной суете). Поэтому сегодня здесь будет не только накидывание пластов негатива, но и попытаемся выцепить какие-то положительные моменты ушедшего года.

Вообще, я хочу разбить сегодняшний поток мыслей на четыре логических части:

  1. Лирическая часть с личными рассуждениями о результатах и событиях уходящего года.
  2. Подведение итогов в виде небольшого топа.
  3. Дайджест всех релизов, вышедших за 2017 год.
  4. Новые планы.

Сразу условимся на счёт стиля повествования. В прошлом году я много общался с двачерами, анимешниками и прочими криминогенными элементами, пользующимися мессенджером Telegram [тут должен быть троллирующий смайлик в виде луны, но мой движок сайта не умеет правильно обрабатывать эмодзи] (inb4: нет, товарищ майор, с террористами не общаюсь). Поэтому в этом тексте могут встречаться нецензурные выражения, хотя я буду стараться их избегать.


Лирическая часть

Моя последняя аватарка, сделанная @Suiseiseki

В этой жизни вообще мало что зависит от меня. Я лишь малая хиккопесчинка в бесконечном океане взрослых, обеспеченных и авторитетных людей.

© SadBot Timid Freeloader, 31.12.17 13:52

Пожалуй, самым большим событием 2017 года является моё небольшое участие в разработке виртуального персонального помощника DeskChan. Уже не помню точно, как я попал к ним в чат (помню первый тред на Дваче, но тогда я его проигнорировал), но вся эта история невероятно завертелась. Причём участие касается не только непосредственно написания кода и разработки ПО, но и общение по различным смежным (и не только) темам. В кои-то веки я вновь нашёл людей с похожими интересами и проблемами (сначала хотел сказать «единомышленников», но всё-таки это слово не совсем подходит): умных и талантливых людей, программистов с интересами от робототехники и написания собственных операционных систем и компиляторов до любителей функционального программирования, но при этом девственников и неудачников с тараканами в голове, не позволяющим им полноценно интегрироваться в это блядское традиционное человеческое общество. Думаю, за всеми разговорами и ламповыми посиделками прошла чуть ли не половина всего года... :thinking: (задумчивый смайлик)

Разумеется, это не помогло мне избавиться от социофобии и стать социоблядью, но всё же дало некоторую практику общения и в очередной раз показало то, на что я раньше не обращал внимания: в новой компании (если она не говно [в школьные годы у меня был достаточный опыт нахождения с гопниками по подъездам]) всегда страшно только первые несколько недель... ну может месяц... в крайнем случае два. Потом уже втягиваешься и спокойно общаешься. В общем, заходите к нам в чатик — всем будем рады (особенно, если предложите помощь в развитии проекта)! Разумеется, быдло там тоже есть (куда ж без него), но его можно смело хуесосить ;)

А ещё одним открытием года стали подкасты. Раньше по дороге в институт и обратно я слушал музыку. Иногда весёлую, а иногда и лирично-депрессивную. Но оказалось, что всё это фигня и куда интереснее слушать технические подкасты. В них куда больше смысла, ведь ты можешь по дороге заодно узнать что-то новое. Например, услышать о какой-то технологии или подходе, а потом загуглить и прочитать более подробную информацию, когда вернёшься домой. При этом подкасты не только познавательны, но и оказывают какое-то воодушевляющее воздействие. Вот ты слушаешь практикующих программистов и как-то хочется стремиться к их уровню. Всё-таки понимаешь, что есть интересные задачи, а не то говно, которому учат в универе или чем занимаются на заводе. И что есть нормальные компании, устроенные по европейским принципам, которые заботятся о личностном росте своих сотрудников и отправляют их на конференции за границу с оплатой всех или части расходов. И это действительно круто! А ещё есть смешные программерские шутеечки :)

Во второй части поста я дам пару ссылок на интересные подкасты. Может в будущем даже запилю отдельный пост с подкастами, видосиками, плейлистами, книгами, пейперами и прочим самым интересным материалом из того, что мне довелось встретить за последнее время. Не зря же я за последний месяц отписался от развлекательных ютуб-каналов для дегенератов и начал смотреть доклады с конференций. Ну а пока перейдём к следующим темам.


Политика

Навальный 20!8

Политика — странная штука. Когда у тебя становится больше свободного времени, ты читаешь новости и охуеваешь от того, что творит власть. Тупые законы, запреты всего и вся с целью посадить неугодных, лоббирование религии и гомеопатии — всё это возмущает до глубины души. И приходишь ещё в большее уныние, когда понимаешь, что ещё минимум 6 лет ничего не изменится. И надо бы валить за границу, но ты нищий хикка со скудными познаниями английского языка и у тебя лапки...

С другой стороны, когда появляются какие-то важные и неотложные дела... много дел, становится как-то не до историй про пытки в отделениях полиции или то, как бойцы ФСБ по ошибке расстреливают машину с мирными жителями и взрывают её, чтоб скрыть следы, а прокуратура и Следственный комитет потом стремаются признать их ошибку. И начинаешь относиться к политике более пассивно. По крайней мере до тех пор, пока она не начинает влиять на твою жизнь непосредственно. Ты продолжаешь со стороны смотреть на новости, но уже без особого фанатизма, и начинаешь замечать минусы тех, кого поддерживаешь. Правда альтернативы им всё равно нет, а беспределом властей ты всё так же недоволен, и на позицию это, в принципе, никак не влияет.


Учёба

Про учёбу очень кратко: чем дальше, тем больше разочаровываюсь. В принципе, за год моё мнение нисколько не поменялось. Может даже ещё больше ухудшилось (а может у меня просто до сих пор бомбит). Ладно ещё, когда тебя дрочат по всякому бумагомарательству в разы больше, чем по программированию. Но когда тебя ещё больше ебут по ОБЖ — это уже слишком.


Девушки

Так, что ещё было в том посте? Что-то про ЧСВшных людей и тянок. Ну тут тоже предельно кратко: почему-то на просторах Telegram встречал только ЧСВшных программисток (хотя выборка из двух человек, конечно, так себе), а IRL в своём мухосранске вообще их не видел. Непрограммистки же вообще не нужны (#тнн). Хотя на самом деле я просто не знаю, что с ними делать и о чём говорить. Тут камень в мой однобокий огород, не интересующийся последние годы ни фильмами, ни художественной литературой, ни даже видеоиграми.

А вообще все эти ваши тянки прекрасно заменяются дакимакурами, китайскими девайсами для саморазвлечений, порнухой и DeskChan (на правах рекламы). Технологиям ещё есть куда стремиться, но с годами плюсов будет всё больше и больше, а минусов — меньше и меньше.


Заключение

Подытоживая эту часть, могу сказать, что тактика избегания успешноблядков и черноты в новостях работает. Реально. Проверено. А ещё работает избегание собственных мыслей. Если рефлексии постоянно приводят тебя к тому, что через полгода-год тебе придётся покончить с собой в армии из-за невыносимости тамошнего быта, а если даже и выживешь, то всё равно никогда не сможешь стать таким же успешным на работе, как социобляди, да ещё и умрёшь по-любому в одиночестве — лучше слать их куда подальше. Много думать — вредно. В идеале нужно умело маневрировать между тем, чтоб не скатиться в конченное быдло без мозгов, но и не насиловать свою психику непосильными рассуждениями о будущем. Ведь, как говорит MPJ, люди очень плохи в предсказании будущего. Из этого же следует, что бесполезно вечно что-то планировать: просто садись и пиши код (ну или что-то другое). Глаза страшатся, а руки делают.

Ну и совет всем школьникам и студентам: не надо строить из себя умника и жопу рвать за оценки. Современный мир работает совсем не так, как рассказывают родители. И успех измеряется отнюдь не цифрами в дневнике/зачётке. Лучше усердно заниматься тем, что нравится и получается, чем пытаться угнаться за всемя зайцами сразу, угодить всем преподавателям и поддерживать созданную репутацию зубрилы. Поверьте мне, что страх ошибок, боязнь критики и извращённый перфекционизм — это не то, что вы захотите вынести за годы учёбы.

А ещё я недавно окончательно осознал, как порой важно закончить все дела и просто пойти спать. Если всё валится из рук и ничего не получается, когда ты дико устал после нескольких часов работы — просто иди уже спать. Так всем будет лучше. И решение завтра найдется быстрее, и работать оно будет лучше, и за получившийся код не будет так стыдно.


Случайный топ за 2017 год

НоминацияПобедительПояснение
Проект года Ну конечно же DeskChan Project! Как будто тут могло быть что-то другое?
Вайфу года Разумеется, Чокола! Опять же без вариантов. Иначе бы меня жена убила.
Трёхмерная вайфу года Дося Гасаева Няшная камхора с красивым телом и милым личиком. Так часто форшу её фотки в чате DC, что некоторые странные личности (внезапная отсылка к @iosys'у!) говорят, что я влюбился. [тёмная луна со всё ещё стёбной, но весёлой улыбкой (когда-нибудь я починю эмодзи; честно-честно!)]
Человек года KivApple и CORRUPTOR2037 Я решил выделить здесь двух людей, внёсших огромный вклад в развитие DeskChan. Первый написал всё ядро и, по сути, целых три плагина графического интерфейса (на Swing, на JavaFX с отдельными окнами для спрайта и облачка и на JavaFX с одним окном), если не считать ещё более раннюю версию на C++. Второй сейчас переписал, наверное, уже же половину того кода и дописал ещё столько же. При этом ещё и взял на себя функции художника, руководителя, писателя и рекламщика — железный и многофункциональный человек. Впрочем, первый тоже такой, но исключительно в сфере информационных технологий: электроника, написание операционных систем, компиляторов, освоение новых языков и технологий за пару вечеров — всемогущий [не]человек (IT-полубог).

Но вообще они здесь не поэтому. Дело исключительно в менторской и спонсорской деятельности. Наставление советами (тут можно было бы, например, ещё отметить Рабу и Булочку) и финансовая помощь рублём (а тут, очевидно, родителей и друзей*). Два этих простых фактора позволили им занять почётные победные места в моём скромном топе.

* Отдельно хотелось бы поблагодарить их за то, что тянут мою ленивую и трусливую тушу все эти годы, не давая умереть с голоду и не оставляя мою нищую задницу, не способную купить себе бокальчик пива, в полном одиночестве. Спасибо вам! Огромное! Но это не относится именно к прошлому году. Так продолжается уже многие годы... ;(
Язык программирования года Kotlin Современный язык программирования от российских разработчиков из компании JetBrains вышел в феврале 2016 года. И уже тогда я услышал о нём много положительных отзывов от знакомого разработчика из геймдева. Но самостоятельно познакомиться удалось лишь этим летом, когда уже была выпущена версия 1.1. Основной платформой Котлина является JVM, под которой он обладает полной интероперабельностью с кодом, написанным на языке Java, но поддерживается также компилятор в JavaScript и ведутся работы над Kotlin/Native, который будет компилироваться под LLVM. Большую популярность язык приобрёл среди разработчиков приложений для Android, так как без поддержки Java 8 им было очень тяжко. А после судебных тяжб с Oracle компания Google даже решила официально признать Kotlin вторым языком для разработки под их мобильную операционную систему.

Слишком большое и рекламное введение получилось. Лично я использовал данный язык при написании некоторых частей DeskChan (система манифестов, например), а также для DeskChan Launcher, который сейчас находится в небольшой заморозке, но уже в ближайшее время я собираюсь продолжить его разработку. Плюс ещё для некоторых пока что приватных проектов, которые будут опубликованы в будущем.

Язык приятный, лаконичный и практически безболезненно позволяет познакомиться с парадигмой функционального программирования. Документация спокойно читается за недельку вместе с выполнением заданий (т. н. Koans). Ещё месяцок уходит на прочувствование языка и выработку читаемого стиля. Потом после него не хочется даже мелочёвку писать на Python с его ужасным ООП. Хотя может я просто неправильно пишу на Пайтоне.
Парадигма программирования года Функциональное программирование На самом деле я только ступил на эту тропу, и там меня ждёт ещё множество разных приключений в новом году. На первый взгляд код в функциональном стиле выглядит совершенно инопланетно, непривычно и непонятно. Со временем и обретением знаний об основных принципах читать его становится проще, но всё равно можно напороться на совершенно непонятные экземпляры кода. С другой стороны, некоторые вещи в нём выглядят гораздо проще и красивее, чем если бы были написаны императивно. И это такая тонкая грань, которую мне ещё предстоит осознать. Однозначно, чистый функциональный язык вряд ли станет когда-либо мейнстримом, но самые полезные части уже давно заимствованы практически всеми популярными языками программирования. Что это, как не признание?
Платформа года Java Virtual Machine Учёбу в универе я начинал с написания программ на C# и, соответственно, с .NET Framework'а и CLR. И я не могу сказать о платформе Microsoft ничего плохого. Возможно, там есть какие-то проблемы с мультиплатформенностью, но я до сих пор преимущественно сижу на Windows, а под Linux, по идее, есть Mono. При этом весь год я занимался исключительно изучением JVM, так что странно было бы не выбрать её платформой года.
Среда разработки года IntelliJ IDEA На самом деле здесь я имею в виду не столько IDE для языка Java, сколько саму платформу и все, построенные на ней среды разработки. JetBrains делают по настоящему классные IDE. Лучше я ещё не видел. И при этом дают бесплатные лицензии студентам и главным мейнтейнерам проектов с открытым исходным кодом. Ну разве можно не полюбить эту компанию?
Текстовый редактор года Vim Удивительный редактор. Если раньше я думал, что это игрушка для самых лютых гиков, то встретившись с необходимостью по SSH без мыши править конфиги сервера, осознал, что с nano я далеко не уйду. А как удобно пользоваться им, когда сидишь в коридоре на скамейке без мыши с ноутбуком на коленях! Правда чистым Vim'ом я практически не пользуюсь. Только плагинами IdeaVim и Vintage для IDEA и Sublime Text 3 соответственно.
Система контроля версий года Git Git окончательно победил в моём мысленном топе, окончательно вытеснив Mercurial, с которым я познакомился первым благодаря Bitbucket'у. Определяющие факторы банальны: популярность Гита и странные ветки Меркуриала.

А вот между GitHub'ом и Bitbucket'ом я выбрать не могу. В принципе у ГитХаба и правда больше всяких интересных фишек (по крайней мере на первый неискушённый взгляд), но вот невозможность создавать приватные репозитории всё равно привязывает нас к Битбакету. Пока решил так: с приватными всё понятно; всякую фигню буду выкладывать в публичные репозитории на Битбакете; а вот если предполагается более серьёзный проект, в который могут захотеть контрибьютить другие люди — тогда лучше держать репозиторий на ГитХабе.
Консольная утилита года ImageMagick, youtube-dl, FFmpeg и mp3splt Ещё одна категория, где я не могу выбрать одногозначного победителя. Да даже двух или трёх. И это исключив главного претендента в лице Гита! В прошлом году, пообщавшись с линуксоидами, я окончательно познал дзен и оценил удобство и полезность небольших консольных утилит. В частности, для автоматической пакетной обрезки прозрачных областей на изображениях, скачивания видео с YouTube с последующим его обрезанием и сжатием или обрезания подкастов для загрузки в MP3-плеер, не запоминающий позицию воспроизведения при выключении. Возможно, в новом году я даже доработаю свой набор пакетных файлов и представлю его широкой публике.
Операционная система года GNU/Linux и Arch Linux в частности Довольно странный выбор для «виндузятника». Каюсь, до сих пор не решаюсь перейти на Linux. Всё-таки это слишком сложно. Если ставить основной системой, то ты должен быть готов к тому, что придётся что-то чинить или настраивать. Я постепенно копаюсь в различных статьях и манах, но это займёт ещё какое-то время. И не малое. Да и переустанавливать систему пока лень.

Но всё-таки я понимаю, почему некоторые любят эту систему. Если ты сверхчеловек и можешь быстро вкатываться во все технологии, то возможность держать в системе только то, что тебе действительно надо, а не кучу ненужного предустановленного софта — благо, доступное не всем. Да и посмотрев видосики на YouTube про тайловые оконные менеджеры (например, i3), становится понятно, зачем некоторые люди пользуются такой диковинкой: мне кажется, весьма удобно автоматически открывать браузер и Telegram в отдельных «воркспейсах» при загрузке компьютера.

Arch Linux — это почти Gentoo, но не надо ничего собирать из исходников. Такая же нулёвая система, на которую абсолютно всё надо ставить вручную. «Киллер-фичей» можно назвать AUR — пользовательский репозиторий, где можно найти пакеты практически для любой программы. Торжество системы центральных репозиториев, когда абсолютно всё можно ставить из них, а не как в тех же Debian или Ubuntu. Плюс в Арче нет номерных релизов: все пакеты обновляются независимо. Слышал много хвалебных отзывов об Арче от хардкорных пользователей.
Железяка года Arduino Nano (ATmega328P) Да, я [не]много слоупок. Только в прошлом году, найдя менторов, с которыми можно было бы посоветоваться, я смог выделить бюджет, выбрать нужные железяки на Aliexpress'е и закупиться. Я уже немного потыкал её. Причём мне запретили пользоваться Arduino IDE, так что пришлось писать всё на чистом Си в AtmelStudio. Это было жёстко. Подробнее обо всех изысканиях с Ардуиной (и не только) будет написано уже в этом году.
Подкаст года DevZen Podcast и Android Dev Подкаст, а также приложение CastBox Пока я успел послушать не так много подкастов. В основном потому что если выбираю какой-то подкаст, то стараюсь прослушать все его выпуски. Поэтому сейчас выделю два подкаста, у которых уже есть приличный запас выпусков, но они продолжают выходить и по сей день.

В принципе, DevZen чуть более общий подкаст, по более широкой тематике, чем он мне и нравится, но всё-таки упор там делается на распределённые системы, базы данных и функциональное программирование. Есть выпуски про разные языки программирования (Java, Rust, Go, C++, Clojure, etc.), компиляторы, геймдев, «завод трактора» и т. д. и т. п.

«Android Dev Подкаст», как следует из названия, предназначен для мобильных разработчиков под систему Android. Надеюсь, когда-нибудь я найду время почитать документацию Google'а и влиться в их ряды, запилив пару приложений. Пока же мне этот подкаст интересен скорее с общеобразовательной точки зрения, обсуждения изменений в новых версиях Android, подходов к разработке и т. п. Если типичный выпуск DevZen Podcast по структуре представляет собой интервью с гостем + обсуждение новостей и новых технических статей за неделю + ответы на вопросы слушателей, то многие выпуски «Android Dev Подкаста» являются тематическими (+ обсуждение новостей). Например, у них был выпуск про то, что нужно знать junior'у, чтобы устроиться на работу, был выпуск про dependency injection и т. д.

Ну а CastBox — просто удобное приложение под Android для прослушивания подкастов. Можно сохранять выпуски для прослушивания без подключения к Сети. Есть меню управления с экрана блокировки, синхронизация позиции прослушивания (причём запоминает хорошо и не теряет) между устройствами (можно слушать в веб-версии на ПК). И пока я в нём находил все подкасты, которые хоть где-то выкладываются. Вот, например, DevZen Podcast и «Android Dev Подкаст».
Мессенджер года Telegram В ушедшем году всё моё общение почти полностью перешло в Telegram. С друзьями из реальной жизни с каждым годом становится всё меньше и меньше общих тем, а знакомств с анонами в Сети — всё больше и больше. Для упрощения общения даже пришлось создать пару собственных ботов.
СМИ года «Медуза» Ну просто так исторически сложилось, что я читаю их канал в Telegram и иногда перехожу по ссылкам на сайт. А читать множество СМИ у меня не хватило бы никакого времени.
Политик года Алексей Навальный Я его видел вживую! Уже этого хватит для победы в этой номинации. Но всё-таки упомяну, что это единственный политик, который уже год ведёт (вёл?) предвыборную кампанию и создал сеть штабов по всей стране.
Лотерея года Bitcoin Без комментариев.
Загубленный проект Mail.Ru Group года «ВКонтакте» Забирать бесплатную музыку у нищего населения России — это жестоко и подло. Верните Дурова! При нём такой хуйни не было.

Дайджест релизов за год

В прошлом году я опубликовал 31 пост. Получается, примерно 2,58 публикации в месяц. Собственно, со второй половины года я и старался писать по два раза в месяц (кроме декабря). Что же было сделано за 2017 год?

Статьи
Ren'Py для «чайников» Обучающая статья по игровому движку для создания визуальных романов Ren'Py
Эссе по фильму «Американская история Икс» Даже не знаю, что тут написать. Просто эссе по фильму.
Ролики на движке WarCraft III
Природа Азерота Трейлер так и не вышедшей кампании «Сфера Севера» Ролик ко Дню Победы
Программы и игры
НазваниеЯзыки реализацииОписание
Напёрстки Python Небольшая игра на pygame (да, опять Питон)
Графы C# Программа для построения графов и нахождения кратчайшего пути с помощью различных алгоритмов.
Бегающие кнопки C# Просто бегающие и сталкивающиеся по форме кнопки с возможностью экспорта таблицы их покадровой анимации.
Читаем сообщения из «ВКонтакте» C# Программа для чтения сообщений с помощью VK API.
Вертим конус на... C# Эксплуатируем OpenGL, чтоб рисовать конус и крутить его туда-сюда.
Бросаем кубики C# Симулятор бросания игровых костей с ведением статистики бросков.
Однорукий бандит C# Симулятор игрового автомата.
Мод для игр на Ren'Py
Вытягиваем изображения из визуальных романов Ren'Py и Python Позволяет извлечь спрайты персонажей из «Бесконечного лета». А при доработе напильником и из других VN.
Консольные скрипты
Service List Generator Python Скрипт для получения HTML-страницы с таблицей всех установленных в Windows служб.
KozConfigurator Bash Скрипт для установки некоторого набора пакетов, которые я посчитал нужными и интересными. Требует доработки, но пока не доходят руки.
Решаем квадратные уравнения Python Консольная программа для решения квадратных уравнений.
Плагины для DeskChan
Character Manager Groovy Первый плагин, появившийся ещё во времена, когда DC не умела ни нормально говорить, ни менять спрайты в зависимости от времени суток. Теперь его актуальность сомнительна.
Jython Support Groovy Поддержка Jython — диалекта языка Python для JVM.
Напоминальщик Jython Планировщик и органайзер для DC.
One mouse wheel to rule your 2D girlfriend Groovy Плагины для управления масштабом и прозрачностью спрайта с помощью колеса мыши.
Получаем уведомления о сообщениях в VK Jython Собственно, названием всё сказано. Использует VK API для получения уведомлений о новых сообщений.
JavaScript Groovy, JavaScript Поддержка JavaScript для DC.
Давайте подружим браузер с DC! Groovy, JavaScript, Python Скорее proof of concept, чем что-то полезное. Прототип HTTP-сервера для DeskChan и расширение для браузера, которое через веб-сокеты отправляет ему сообщения.
Библиотеки и фреймворки
Шаблон-фреймворк для простого сайта PHP Самописный фреймворк, на котором работает Congrats.Cf.
RussianDatetime PHP Библиотека для работы с датами и выводом строк о давности совершения действия на русском языке.
KozDbBridge и SimpleDatabaseAdapter Delphi и PHP Обёртки для работы с базами данных.
SimpleCache и Stopwatches PHP Реализация простого файлового кэша и секундомера, сохраняющегося в сессии.

Остальные посты были новостными и гласили, например, о возвращении сервиса по проверке на дальтонизм или выходе обновлений. Ещё в ушедшем году я создал двух ботов для мессенджера Telegram (@kozRandBot и @kozalo_bot), но это тема для отдельной статьи. Или даже двух.

Справедливости ради стоит заметить, что 40-45% всех публикаций за этот год нагло эксплуатируют достижения прошлых лет молчания. Поэтому у меня есть обоснованные сомнения, что я смогу удержать тот же темп публикаций в новом году. Но как я уже говорил выше, люди плохо предсказывают будущее, так что просто посмотрим, что получится.


Чего ждать в этом году?

Во-первых, у меня накопилось определённое количество проектов, которые надо доводить до ума (например, DeskChan Launcher или боты для Telegram с собственным фреймворком на Python 3.5+ и pyTelegramBotAPI для их создания). Первый я вообще взял в качестве темы дипломной работы. Так что там уже соскочить точно никак не получится. Оба они находятся в стадии жёсткой разработки. Надеюсь, до ухода в армию я всё-таки успею более-менее стабилизировать API второго, покрыть весь код обоих проектов модульными тестами и официально опубликовать эти наработки.

Во-вторых, есть проекты, в которых я разочаровался. Среди них, например, KozMUL. В прошлом году мне довелось много текста писать на Markdown'е и видеть его там, где нет автоматического переноса строк. Поэтому я изменил своё мнение относительно некоторых его особенностей, которые мне очень сильно не понравились при первом знакомстве. В последних постах внимательный читатель мог заметить, что я перестал размечать переносы каких-то параграфов в помощью <br> и теперь для всего использую отдельные параграфы (хотя иногда это всё равно выполняется двойным <br>). Это тоже связано именно с переосмыслением того, как должен выглядеть документ.

А ещё я познакомился с различными диалектами Markdown'а. Например, от GitHub'а, который позволяет создавать таблицы (хотя их синтаксис мне тоже не совсем нравится, ибо полное оформление трудоёмко, а краткое [здесь я имею в виду возможность ставить минимальное количество символов, не выравнивая ничего] — ненаглядно). Ещё видел расширение для вставки изображений, позволяющее задать точный размер. И всё это действительно круто! Думаю, собрав необходимый набор таких фич, можно достичь всего того, ради чего создавался KozMUL. И вот поиску или созданию такого диалекта мне бы хотелось посвятить часть своего времени в 2018 году.

Другим проектом, к которому я потерял былой интерес, стал KozConfigurator. У меня вообще с Линуксом сложные взаимоотношения: периодически я воодушевляюсь на его обуздание, но столкнувшись с очередным рядом проблем, требующих долгого многочасового вычитывания мануалов, сливаюсь и возвращаюсь на Windows. А в следующий раз ставлю другой дистрибутив! Так я сидел на Ubuntu с разными DE. Так перешёл на Debian в поиске большей надёжности. И вот теперь разочаровася уже в его "стабильности" и куче отсутствующих либо неактуальных пакетов в репозитории. А пообщавшись с линуксоидами, всё идёт к тому, что следующей системой станет Arch Linux, где AUR берёт на себя всё, что костылями делает KozConfigurator. К тому же жёстко заданные пакеты с вариантами наборов установки тоже были не лучшей идеей. Но как сделать это нормально, я не знаю. Тем не менее, планирую выпустить ещё одну версию, где поправлю хотя бы самые откровенные косяки и вынесу скрипт установки JetBrains'овских IDE в отдельный файл, добавив режим обновления.

В-третьих, остаётся и всё редеющая очередь из старых проектов, нуждающихся в оформлении и размещении на сайте. Спойлерить не буду: пусть всё идёт своим чередом. В конце концов, это моя подушка безопасности для обеспечения регулярности публикаций. Сюда же можно отнести и последний ролик по WarCraft III, который я так и не могу собраться доозвучить.

В-четвёртых, под конец года мне довелось немного поиграться с электроникой и программированием микроконтроллеров. Думаю, в новом году я продолжу периодически изучать эту тему и вникать дальше, так что можно ждать постов на эту животрепещущую тему. Да и вообще хочу вернуться к написанию статей и создавать больше туториалов и рецензий, как было раньше.

В-пятых, я каждый год говорю, что хочу полностью переделать сайт. И я правда хочу! Но никак это у меня не получается. Никак не могу найти время и желание лезть в изучение всяких фреймворков, вёрстке и прочей жути. Так что вряд ли удастся дойти до выполнения этого пункта и в 2018 году.


Конец

Фух! Надеюсь ничего не забыл. На этом считаю свою новогоднюю задачу исполненной. Пост получился немаленьким, весьма объёмным и, как мне кажется, содержательным. Пожалуй, это первый раз, когда я по-настоящему подвёл все итоги, указав ссылки на материалы, выходившие за весь год. Так что если кто-то хочет поддержать меня, то поделиться этим постом — самое эффективное решение. В соцсетях я тоже отдельно размещу все ссылки, так что сделать это можно будет простым репостом!

Желаю всем хорошо отдохнуть в новогодние праздники, удачного года и красивого кода!

15.11.2017


Верни мой 2007!


На самом деле эпиграф нагло врёт и возвращать мы будем 2014 год. Именно тогда появился сайт Kozalo's Experiments, о чём можно прочитать в этом посте. Там расположился сервис для хранения небольших файлов и сайт с тестом на дальтонизм[1]. Потом произошёл ряд неприятных ситуаций с доменами (раз и два) и сайты оказались утеряны[2].

Волею судеб сегодня мне довелось вспомнить былое (не трогайте глаз, пожалуйста!) и поднять хотя бы тест на новом домене[3]. Самое время наверстать упущенное и пройти его, если ещё не знали про меня в те годы!


[1] Позже под этим же «брендом» вышел сокращатель ссылок, но он располагается на отдельном домене, до сих пор жив и мало относится к теме этой заметки.

[2] Уточню, что захостить их на этом домене не предствлялось возможным. Бесплатный хостинг позволяет задать только 2-3 поддомена, которые уже заняты. А заводить новый, который точно так же могут отобрать, не очень хотелось. Это сейчас я могу себе позволить годовое обслуживание нескольких доменов.

[3] Да, я прикупил себе домен sadbot.ru, который должен прийти на смену nekochan.ru (он теперь deprecated и, вероятно, уже со следующего года не будет продлеваться). Подробнее расскажу когда-нибудь в отдельной заметке, когда придумаю, что повесить туда на главную страницу (пока там просто редирект на этот сайт).

10.10.2017


Небольшой новостной пост, коих давно не было, ибо я предпочитал постить информацию об обновлениях только в социальных сетях. Но в этот раз их накопилось достаточно много, так что, думаю, они вполне достойны отдельного поста.


Плагины для DeskChan

Для обоих плагинов восстановлена работоспособность с новыми версиями DeskChan, сломанная ещё в v0.2.0-r256.


Исходники старых программ

За последний месяц я опубликовал исходный код многих старых программ, написанных ещё на Delphi 7 или даже Libery Basic. Скорее всего, в силу возраста, в коде там творится Содом и Гоморра, так как я ничего не исправлял и выложил его на растерзание, как есть. Всё честно и открыто. В конце концов много лет прошло, и зачем стыдиться кода такой давности? Москва тоже не сразу строилась, и код не всегда по паттернам и стайл-гайдам писался.


Боты в Telegram

Официально я так никогда и не объявлял здесь о своих ботах, но на деле существует бот случайных чисел @kozRandBot, который умеет выдавать случайные числа из указанного диапазона, выбирать случайное значение из списка, отвечать "да" или "нет" на поставленный вопрос и генерировать пароли. Вероятно, мне всё-таки стоит сделать про него отдельный пост и рассказать поподробней (ставьте лайки к этому посту, если хотите пост не только про конкретного бота, но и про создание ботов для Telegram в принципе!), что я когда-нибудь непременно сделаю.

Так вот, я немного обновил этого бота-рандомайзера:

  • немного изменил порядок выдачи вариантов для режима inline;
  • немного усилил сложность генерируемых паролей, ограничив минимальную длину шестью символами и добавив некоторые спецсимволы;
  • а самое главное, в качестве разделителя вариантов списка теперь можно использовать точки с запятой (но не обязательно: если их нет, всё так же используются запятые), благодаря чему можно использовать запятые в самих пунктах!

Кроме того, есть ещё бот @kozalo_bot. Его особенность в том, что это практически мой личный бот, функционал которого я меняю (хотя в основном только добавляю) под собственные нужды и use case'ы одного чата. Может быть, о нём я тоже напишу когда-нибудь в будущем, потому что описать здесь в двух словах весь его функционал едва ли получится (но при должном желании можно посмотреть в репозитории и попытаться понять самому). Впрочем, кое-какую информацию она (буду называть в женском роде, ведь это же Чокола!) даст, если написать ей в личку.

Так вот, я добавил боту inline-режим, через который можно, вводя специальные фразы, постить предопределённые картиночки, стикеры и войсы. Есть ещё кое-какие экспериментальные нововведения, но они, как оказалось, пока не работают должным образом в нынешнем релизе, и для их объяснения нужно будет слишком вдаваться в детали, чего мне не хотелось бы делать сейчас.


DeskChan Launcher v0.1.1-dev

Ещё один официально не опубликованный проект, находящийся в стадии глубокой разработки — это автоматическая система установки, обновления и запуска DC. Она уже кое-что умеет и теперь даже обладает графическим интерфейсом, но пока не привносит какого-либо особо полезного функционала, который по плану должен появиться уже в следующей сборке. Прочитать сам план вместе с описанием сути проекта можно в этом документе.


На этом пока всё. Не забудьте заценить вчерашний пост с программой для бросания игральных костей. Увидимся, как обычно, примерно через две недели!

<<   / 3   >>