Портрет 4X_Pro
Был в Сети 26 апр. 2024 г., 14:48
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Сейчас специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.


Главный пуск года и мелкие неприятности

4X_Pro
Сегодня состоялся главный пуск года! Я выложил дистрибутив новой версии Intellect Board 3.02, над которой работал последний месяц, если не больше. И очень доволен этим фактом! Снова чувствую себя настоящим Web-разработчиком, прямо таки творцом, как в славные времена IntB 2.x! Да и вообще снова появилось чувство своего места в жизни. Причем в отличие от 3.00, который я делал скорее из чувства долга, из-за того, что обещал, 3.02 я писал именно из желания сделать движок таким, каким я его хочу видеть. А еще я могу сказать, что реализовал в нем почти все замыслы, имевшиеся изначально (в 3.00 многое не успел, например, внешнюю аутентификацию или subactions). Теперь осталось только разделы новых типов добавлять, да интеграцию с соцсетями нормальную делать.
День начался с последних доделок. Казалось, их осталось совсем немного: добавить в SQL-файл обновления преобразование IP-адресов из числа в строку и сделать правильный редирект в блоге при переходе на сообщение с указанным номером. Где-то часам к 18 я начал думать что все, сейчас закончу, и вечером смогу спокойно отдохнуть.
Но в реальности процесс растянулся, и дистрибутив я смог собрать только к 21:40. Зато в процессе выловил очень неприятную и нетривиальную ошибку. Я решил сменить способ шифрования паролей — перейти на SHA-2 и добавлять к паролю случайное значение (так называемую «соль»). Но проблема в том, что для генерации значения я использовал mt_rand от 0 до PHP_MAX_INT. И не учел, что в 64-битных версиях PHP этот самый PHP_MAX_INT тоже 64-битный. Поэтому с высокой степенью вероятности генерировалось значение больше 232, уходило в MySQL, который обрезал его до 232-1, а потом я недоумевал, почему же хотя вроде все прошло хорошо, пароль не подходит. Возился с этим долго, пока не обратил внимание, что в столбце rnd все время одно и то же подозрительно знакомое значение. И только когда сделал отладочный вывод всех этапов, наконец, осознал, что же происходит.
Потом собрал дистрибутив, обновил свои сайты, и на эмоциональном подъеме от этого, начал писать инструкцию по обновлению. Уже почти было написал, но решил из простого перечисления пунктов сделать полноценный нумерованный список, выделил все, нажал кнопку, и выделение заменилось на undefined. Оказалось, что в более новой версии SCEditorа, который я обновил вместе с дистрибутивом, есть глюк, не позволяющий корректно преобразовывать выделение в списки. Самое неприятное, что после такого изменения отмена не работала. Эх, еще раз убеждаюсь, что все-таки нужно тексты писать в обычный файл на компьютере в Блокноте (или Leafpad в моем случае), а уже потом куда-то копировать. Да и обновлял я его зря, новая версия оказалась хуже (потом поймал еще одну мелкую ошибку, связанную с CKEditor).
Решил сделать перерыв, переключиться на другие задачи. В частности, пройти сегодняшние упражнения на Wikium. Но увы, то ли не успел перенастроиться, то ли просто устал, но реакция была хуже, чем обычно, а результаты — просто ужасные. Поймал огромный минус к показателям, в какой-то момент даже ниже 1250 упал. Вдобавок ко всему, пока я проходил эти упражнения, отцу вздумалось полезть ко мне с какой-то фигней. Это реально вывело меня из себя. (Эх, как же раздражает, когда он так ломится, совершенно игнорируя тот факт, что я могу быть занят, и необходимость расфокусировать внимание вызывает реальный дискомфорт, а то и вовсе головную боль.)
Чуть успокоившись, снова вернулся к IntB. Точнее, стал тестировать свои сайты, нашел еще пару мелких недоделок, из-за которых пришлось пересобрать пару раз дистрибутив снова. А еще создал группу IntB на Facebook и настроил автоматическую трансляцию в Twitter. И закончил где-то час назад.

Очень удачный игровой день

4X_Pro
Сегодня после долгого перерыва съездил на настолки к А.Ш. Начало встречи было запланировано на 16:00, и сначала я хотел поставить будильник, чтобы встать вовремя. Но потом получилось как всегда: сначала засиделся до 4 часов, доделывая IntB (и теперь до релиза остался только один пункт), потом еще почти час собирался ложиться спать, да еще и уснул не сразу. В итоге проснулся в 14:50. Было очевидно, что к 16:00 уже не успею, поэтому стал действовать по принципу «спешить не буду, когда доеду, тогда и доеду». И в итоге на месте был только в 17:30.
К счастью, на этот раз играли в игру под названием Лила Чакра, присоединяться к которой можно почти в любой момент. Игра по сути дела эзотерически-психологическая, направленная на выработку новых взглядов при движении к цели. И еще в ней, что мне очень понравилось, нет конкуренции между игроками, каждый идет к своей цели, не мешая другим. На каждом шаге там предлагается определенная тема для размышления и несколько вариантов реакции. Но плохо то, что от выбора вариантов зависит мало, а гораздо больше — от кубика. Причем в особо тяжелых случаях может отбросить назад совсем до нуля, причем совершенно неожиданно и непредсказуемо. Впрочем, с другой стороны, это тренирует такое качество как упорство и готовность продолжать движение, несмотря на неблагоприятные обстоятельства.
Но для этой игры нас было слишком уж много. В нее хорошо играть вдвоем-втроем. А тем количеством, которое было у нас, приходится слишком долго ждать своего хода. Многим начинает надоедать, начинаются сторонние разговоры, которые еще больше отвлекают.
Еще меня удивили цели других игроков. Две участницы в качестве таковых назвали такие суммы денег, что я реально удивился «да зачем вам столько вообще». И даже хотел заняться полутроллингом на тему «вы просто экономить не умеете». Но не стал, поскольку переубедить бы все равно не удалось, а ругаться не хотелось.
Через пару часов стало ясно, что это надолго, и доиграть мы не успеем (так и вышло). Тут я предожил распараллелить процессы, и играть еще одновременно в «японский бенг» (хотя правильно эта игра называется «Меч самурая»). Идею поддержали, и параллельно с Лила Чакра мы еще сыграли три кона в «бенг». Что любопытно, все три раза роль сегуна получала Ал. С. А я по очереди попробовал себя во всех трех ролях: самурая, ниндзя и ронина. За самурая мы с Ал. С. выиграли, за ниндзя я проиграл, а выиграла Н.П., игравшая ронином и сильно оторвавшаяся в самом начале. А на третий кон мне досталась роль ронина. Раньше, когда это случалось, меня вычисляли очень быстро и тут же выводили из игры. Но на этот раз я в первый ход никак не стал себя проявлять. В результате А.Ш. атаковал Н.П., они нанесли друг другу повреждения, а потом я быстро использовал это, чтобы забрать у них по жетону. А вскоре после этого игра закончилась, и я победил.
В общем, встреча получилась очень приятной и позитивной, почти такой же по духу, какими были самые первые. И я очень доволен!

Необычный, но позитивный день

4X_Pro
День сегодня получился весьма необычным, но весьма позитивным. Началось все с весьма странного сна. Происходящее сильно напоминало серию книг «Коты-воители», которую я читал несколько лет назад, только жили они не в лесу, а в городе, причем ни где-нибудь, а в окрестностях Института, где я учился. И вот в этих местах начала действовать какая-то секта, которая стала отравлять сознание не только людей, но и котов, подталкивая их на всякие гнусные поступки, например, плевать на интересы своего племени. Но одному из котов каким-то образом удалось сначала попасть под влияние этой секты, а потом преодолеть это в себе, и стало ясно (только не знаю, почему и как), что теперь он сможет помочь и другим. И проснулся я с каким-то ощущением прорыва, глобального изменения, выхода на другой уровень.
Но проснулся, как обычно, очень поздно даже по своим меркам, чуть раньше 15 часов. А в 17 мы договорились с Tellой встретиться на Шабловской и отправиться в Нескучный сад. Поэтому за время после подъема я успел сделать только поесть, собраться и посмотреть обстановку в Интернет.
С Шаболовской мы пошли к Андреевскому мосту (тому, который пешеходный), а от него вдоль реки. Потом свернули в глубину сада, поднялись вверх и обнаружили красивую елку, которую тут же сфотографировали. Потом еще посмотрели вблизи Большой Гротескный мост, и снова спустились к реке. Дошагали до Новоандреевского моста и решили идти не к метро, как планировали изначально, а к Воробьевым горам. Не знаю почему, но до этой части реки я за время своих прогулок почти никогда не добирался, за исключением одного раза в 2010 году. Как выяснилось, зря! Там весьма крутой спуск к реке и деревья с очень красивой подсветкой. А еще, уже придя домой и поизучав карту, я узнал, что там есть еще два пруда: Большой и Малый Андреевские, которые мы так и не заметили. Пожалуй, надо будет туда вернуться как-нибудь весной и днем. В общем, прогулка получилась отличная! Заодно и мозги разгрузил от постоянной работы над IntB. Правда, устал весьма ощутимо, хотя прошли не так уж и много — по карте я намерил чуть больше 4.5 км.
А вот остаток дня прошел бестолково. Ничего не успел толком сделать, только обновил прошивку на телефоне, крайне неудачно выполнил тренировку на Wikium (об этом хотел отдельное сообщение, но уже не успею), и сделал расклад на Таро о том, чего ожидать от релиза новой версии Intellect Board. Но впервые столкнулся с тем, что совершенно не понимаю, как интерпретировать результат.

Вчерашний всплеск активности

4X_Pro
Вчера вдруг случился всплеск активности. Вдруг начали писать те люди, от которых не было вестей больше года. Причем писали по вопросам, связанным с программированием. Точнее, активность была только ВК, на сайтах все было как обычно. Только в соционической сети Aliszka откомментировала множество тем и вызвала некоторое оживление. Все же как много может зависеть от одного человека! А еще подумал, что если бы удалось собрать на форуме всех тех, кто проявил себя там активно, в одно и то же время (в частности, Gita, Слава, kain1stkainit, Оранжевый Гельгард, Ascolta, a_shulga, Вячеслав, dasurg, ну и конечно же, goblincat и Tella), то этих людей вполне оказалось бы достаточно, чтобы форум набрал критическую массу. Но увы, непонятно, как это сделать. Точнее, как вернуть тех, кто перестал ходить из-за спада активности.
А еще я почти доделал IntB. Осталось только три пункта, но вот как-то плохо представляю, как их реализовать. Поэтому всячески отвлекаюсь и откладываю: то в Сети сижу, то созерцаю, как падает снег за окном. Он сегодня шел почти весь день! И теперь все деревья покрыты им.

Доделки IntB почти закончились

4X_Pro
К моему удивленю, доделки по IntB все же почти закончились. Правда, остался вопрос, переносить ли в subactions всякие блоки с объявлениями, списком присутствующих или оставить как есть. С одной стороны, лишняя работа, с другой, то, как есть сейчас (отдельные настройки для каждого блока и его жесткая закодированность в определенном месте форума), не очень красиво с точки зрения соционической БЛ. К тому же, сегодня Infoweb (тот самый знакомый, про которого уже упоминал недавно) помог найти еще пару неожиданных багов, которые тоже пришлось на ходу исправлять.
Завтра буду тестировать режим обновления в инсталляторе. И если все пройдет хорошо, обновлю официальный сайт IntB. И у меня остается еще больше 10 дней в запасе до ухода в оффлайн (если я все же решусь на challenge, о котором писал вчера)!

КСИ: есть восьмое задание!

4X_Pro
Уфф, только что закончил восьмое задание КСИ. Оно было реально сложным, на использование старинных методов шифрования! Причем, в отличие от предыдущих заданий, самым сложным вопросом был первый. Что я только с ним не делал, даже программу для перебора пытался быстро набросать. Но так и не справился (отчасти из-за того, что пошел ложным путем в самом начале, предположив неправильный метод и потратив на это 20 минут). Так и ткнул наугад в один из ответов, который казался подходящим по косвенным признакам. Но из двух часов, отведенных на задание, на него потерял где-то больше часа. Поэтому остальные пункты пришлось доделывать в спешке и в состоянии жуткой нервозности, расшифровывая лишь самое начало сообщения. Поэтому во втором пункте тоже до конца не уверен, правильно ли я его решил, так как одна из шести расшифрованных букв не совпадала. И только на третий вопрос ответил уверенно, зная, что другие варианты не подходят от слова совсем.

Яндекс.Дзен и возвращение к идее «Интернет — только из метро»

4X_Pro
Решил посмотреть один курс по ведению канала на Яндекс.Дзен. И тут вспомнил свою давнюю идею устроить себе испытание — месяц жизни с доступом в Сеть только из метро, и понял, что именно Дзен для выкладывания отчетов об этом подойдет гораздо лучше, чем Golos.Io, который я предполагал использовать для этих целей изначально. Правда, из-за КСИ и freelance-деятельности придется сократить период до 14 или даже 12 дней и сделать его на новогодних праздниках.
Идея мне так понравилась, что даже сделал первый шаг: зарегистрировал канал и набросал вступительный текст. Подожду еще пару дней и начну публикацию.

Странности в соционической сети

4X_Pro
Заметил у своей соционической сети странное свойство: уже третий раз сталкиваюсь с тем, что людей там заносит, что называется, на ровном месте. Первый случай был с cold_air, которая в ответ на «я не вижу твой тип» обиделась так, что удалилась отовсюду без каких-либо объяснений. Второй — с Prime Inkwine, которая тоже с кем-то поругалась на форуме на пустом месте (кажется, с HH aka Venreaver), а потом удалилась, предварительно стерев весь свой блог. Третий — Tau Svetvechnogo, который обиделся на то, что никто не пришел на созданную им встречу, хотя из Волгограда, кроме него, на тот момент просто никого не было, и начал писать всякие гадости про форум. И вот теперь пару дней назад Aliszka обиделась на мою фразу, что типированием здесь не занимаются.
Самое любопытное, что на предыдущих форумах подобного не наблюдалось. На Социоклубе, правда, другое было: то и дело начиналась вражда между группировками, с которой было непонятно что делать, но там хотя бы были понятны причины. На Tipiruem иногда прибегали неадекваты, которых сразу было видно, но долго не задерживались (кроме разве что Unkasа). А тут вот люди приходят вроде нормальные, а потом вдруг такое… Интересно, в чем дело? Я стал более недовольным и раздражительным в последнее время, чем их и провоцирую, сайт так оформлен, что это как-то провоцирует или просто «место проклятое»?

Мелкие, но противные доделки IntB

4X_Pro
Второй день занимаюсь мелкими доделками IntB. Их много, они не сложные, но очень противные, например, привести к единому виду во всех разделах ссылки для управления сообщениями (типа «редактировать», «удалить» и т.п.). Еще почти три часа провозился с настройкой отписки в одно нажатие. Причем код для нее был написан давно, но нужно было чуть поправить одну из библиотек и шаблон. Но ошибки лезли одна на другой (впрочем, сегодня вообще день глючный был какой-то). В частности, один раз в адрес внутри <a href=""> попал апостроф, который приводил к неправильности ключа аутентификации, который я очень долго не мог заметить. И вот буквально только что все заработало. А я опять засиделся до 4:30, хотя изначально собирался выключить компьютер в 3 часа.

Одинаковые дни

4X_Pro
Где-то с начала декабря дни стали какими-то совершенно одинаковыми. Даже писать особо не о чем. Встаю около 15 часов, прохожу тренировку в Wikium, затем играю пару игр в приложении «Что? Где? Когда?», затем тренируюсь на Клавогонках, работаю немного над IntB, иногда играю в World of Tanks или читаю книжку, а по выходным — прохожу задания КСИ. А потом вдруг обнаруживаю, что уже четыре часа ночи и надо бы идти спать, но пока собираюсь это сделать, проходит еще час или полтора.
С одной стороны, для периода «старости года», когда на что-либо новое просто нет сил, и главная цель — это просто дотерпеть до Нового года, это вполне подходящий режим. С другой, тут начинается некоторая навязчивость, которая меня несколько пугает. Кроме того, копятся долги по freelance-деятельности (на нее ресурса просто не хватает, особенно на тот сайт, который мне очень сильно не нравится) и по записям в свой блог. В частности, сегодня осознал, что так и не написал про социальный desktop, хотя уже больше недели собираюсь. И еще сознательно решил пропустить очередной конкурс на CodinGame: на него нет ни сил, ни желания. Тем более выяснилось, что в общем рейтинге считаются только три лучших результата конкурса, поэтому участвовать ради дополнительных code points нет смысла.
Зато по описанным направлениям деятельности есть довольно ощутимый прогресс. В Wikium все же вернулся к показателю индекса производительнсти выше 1250. Как выяснилось, там итоговые результаты зависят не столько от изменения ИП отдельных тренажеров, сколько от количества набранных очков за день. Поэтому нужно просто проходить то, что получается хорошо (хоть это и противоречит идее тренировки как таковой).
В IntB тоже закончил все крупные доделки, в том числе и редактор вспомогательных блоков. Осталось только сделать SQL-файлы для обновления с предыдущей версии, оттестировать этот режим в инсталляторе, и доделать еще некоторые мелочи. Так что если не случится ничего непредвиденного, я выложу новую версию IntB до Нового Года, как и планировал.
В КСИ пока нет ничего интересного. На «подумать» было только задание (и то какое-то странное: на второй его вопрос правильного ответа не было в принципе), остальные — скорее направлены на изучение ценностей и приоритетов самих КСИшников.
Пару дней назад вдруг понял, почему на бессознательном уровне идея второго высшего образования, о чем я иногда задумывался, не вызывала у меня никакого внутреннего одобрения. Бессознательное, видимо, помнило, как ужасно в этот период активно заставлять себя что-то делать (особенно курсовые, на которые нет явно выделенного времени), вот и стремилось избежать повторения этого.

Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.