TeleBolkNote
190 subscribers
1.54K photos
5 videos
1.67K links
Моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь, большие языковые модели и программирование. Совпадает с сайтом bolknote.ru
Download Telegram
Программист отдыхает
Евгений Степанищев (RSS)

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

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

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

Комикс, который я хотел нарисовать ещё в 2000-е, теперь можно нарисовать при помощи нейросетей (используется SDXL Beta)

Мне кажется, что домашний проектик, — важная часть душ...

View original post
Ориентирование на местности
Евгений Степанищев (RSS)

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

В какой стороне света находится дорога я знал, — смотрел перед поездкой карту, у меня она неплохо оседает в памяти.

Кадр из диафильма «Ориентирование на местности и движение по азимутам» (1975 год)

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

https://bolknote.ru/all/orientirovanie-na-mestnosti/
«Гопник-2»: UTF-8
Евгений Степанищев (RSS)

Продолжаю писать про портирование «Гопника-2» под «Виндоуз», ибо там ещё есть о чём рассказать.

Я уже очень давно не работаю под этой операционной системой, поэтому некоторые обычные, возможно, для многих вещи для меня являются открытием. Когда я начинал процесс портирования игры под эту платформу, я был уверен, что столкнусь в трудностями совершенно в других частях кода. Одной из неожиданностей была плохая работа «Виндоуз» с кодировкой ЮТФ-8.

Если вывод в консоль удалось победить сравнительно легко, то со вводом возникли проблемы — вызов SetConsoleCP(CP_UTF8), который должен был помочь, не помог. В интернете пишут, что он, по всей видимости, не реализован — просто не делает ничего.

Если с латинскими буквами проблем не возникает, они кодируются одним байтом,...

View original post
«Гопник-2» на Haiku
Евгений Степанищев (RSS)

В 2000-е у меня был друг, который фанател от «BeOS». Послушать его, так это лучшая система на Земле, где всё сразу продумано, нет родовых травм и легаси. Судя по деталям, которыми он сыпал в своих рассказах, во многом так и было, — многие вещи, которые бесили в других операционках, там были сделаны на удивление хорошо.

К сожалению, компания, которая её писала, приказала долго жить, передала исходный код сообществу, которое до сих пор потихоньку пилит его уже под новым именем — Haiku.

А мне тут что-то до того понравилось водружать «Гопника» на всё новые и новые операционные системы, что я решил пока не останавливаться, и, порывшись в памяти, вспомнил про BeOS, установил себе на виртуалку Haiku и попробовать собрать игру.

«Гопник-2», запущенный под Haiku (наследницей BeOS), собрал...

View original post
О5 25
Евгений Степанищев (RSS)

Опять заболел — вчера ночью почувствовал, что начинает болеть горло, но несмотря на шаманство с фурацилином, всё равно свалился в болезнь. На работе очень многие болеют, друзья тоже пишут, что регулярно заболевают. Что за зараза такая ходит — непонятно.

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

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

Купили всё для «Дашки», несмотря на то, что в этом учебном году занятий осталось — кот наплакал...

View original post
«Гопник-2»: разные mingw
Евгений Степанищев (RSS)

Надо по-быстрому дописать посты про портирования игры на «Виндоуз», пока свежо в памяти. Так что продолжу.

Сильнее всего меня удивило в процессе, что поведение mingw, — инструментария для компиляции приложений под «Виндоуз», различается под разными операционными системами.

Поскольку мне не хотелось заморачиваться с установкой софта на виртуальную машину, я развернул mingw у себя под «Маком» и внёс правки, чтобы всё благополучно компилировалось именно на этой ОС.

Запустив получившееся на первой попавшейся виндовой виртуалке, я успокоился. Но оказалось этого недостаточно — под самой «Виндоуз» приложение не собиралось!

Во-первых, под «Виндой» отсутствовала функция strdup, интернет ничего не подсказал, но я случайно решил эту проблему, установив станда...

View original post
То, что тебя не убивает, то — дверь
Евгений Степанищев (RSS)

Недавно зашиб немного нашу собаку, открывая дверь в дочкину комнату. Несмотря на то, что я и стучал, и дверь открывал довольно медленно, ей всё равно досталось, — она с той стороны лежала вплотную. Сразу вспомнился отрывок из «Маугли»:

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

Наша собака, по всей видимости, слишком далеко ушла от дикого волка.

https://bolknote.ru/all/to-chto-tebya-ne-ubivaet-to-dver/
«Гопник»: команда «run»
Евгений Степанищев (RSS)

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

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

У меня «run» появляется только на простом уровне и сбежать удаётся не всегда, — шансы начинаются с 50% и постепенно растут до 75 с ростом удачи (в игре есть такой параметр). Сбежать не получится, если сломана нога, а если сбежать во время стрелки, упадёт понтовость, когда она падает до нуля, братва перестаёт за тебя впрягаться...

View original post
Артак-спартак
Евгений Степанищев (RSS)

В прошлом году у нас в городе построили второй «Айти-парк», но я в нём был только один раз — когда меня награждали нагрудным знаком. На днях шёл мимо и увидел на стене какой-то бинарный код, стало интересно, сфотографировал.

Одна из надписей бинарным кодом на стене нового «Айти-парка»

Дома написал небольшую программу на «Пайтоне», чтобы раскодировать, получилась надпись «ARTAKSPARTAK». Явно что-то осмысленное, но что — я не понимаю.

Интернет тоже ясности не принёс, может кто-то из читателей знает что это значит? Программу для раскодирования привожу ниже.

str = '01000001010100100101010001000001010010110101\
0011010100000100000101010010010101000100000101001011'
from textwrap import wrap
print(''.join(chr(int(x, 2)) for x in wrap(str, 8)))


https://bolknote.ru/all/artak-spartak/
Цирк кошек Куклачёва
Евгений Степанищев (RSS)

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

Без надежды, потому что Куклачёв был настоящей звездой, выступал в Москве и крупных городах, куда я в детстве не ездил, а в мой родной маленький Лениногорск он приезжать бы не стал.

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

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

View original post
«Гопник-2»: итог выходных
Евгений Степанищев (RSS)

Человек предполагает, а череда неконтролируемых случайностей располагает. Я думал, что все выходные буду тихонечко пилить список запланированных изменений в игре, а на деле пришлось править совсем другое.

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

Баг, доставшийся в наследство от попытки портирования предыдущего автора — не выставляет чёрный цвет фона

Например, у одной моей подруги, которой я прислал «Гопника», программа «Терминал» почему-то имеет белый фон и игра на нём выглядела странно, пришлось...

View original post
Переходим все на Brainfuck
Евгений Степанищев (RSS)

Меня тут атакуют время от времени алармистки настроенные программисты, с вопросом что дальше делать, — ведь их всех скоро заменит ChatGPT. Так вас же ещё 2017-м Герман Греф предупреждал — не идите в программисты, программисты станут невостребованной профессией!

Лично я услышал Грефа, и вот уже шесть лет как переписываю все свои проекты на язык «Брейнфак». Это минималистичный язык, состоящий из шести операторов, при этом он полный по Тьюрингу.

Этот ваш ChatGPT очень плох в «Брейнфаке» — его программа на самом деле выводит «Hello World!»

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

View original post
«Гопник-2»: попробовал под Windows
Евгений Степанищев (RSS)

В моём иррациональном увлечении дописыванием «Гопника-2» есть и практическая сторона — получаю много интересного нового опыта. Вчера как раз был такой случай.

Стало интересно посмотреть — соберётся ли игра под Виндоуз. В конце концов она консольная, чего бы ей не заработать?

Игра «Гопник-2», собранная и запущенная через cygwin под Windows Server 2019

Раньше я таким не занимался, но из виндового прошлого я помню, что способы есть. Простых нагуглилось два — среда cygwin и набор инструментов mingw.

Через cygwin всё скомпилировалось и запустилось вообще без проблем, но у такого решения есть фатальный недостаток — собирать приходится в виртуальной машине с Виндоузом.

Набор mingw выглядит...

View original post
Гепатит в таблетках
Евгений Степанищев (RSS)

Век живи, век учись, дураком помрёшь.

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

Инструкция к антигестаминному препарату «Эриус»

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

В общем, новый, увлекательный мир гепатитов. Не дай бог когда-нибудь в него окунуться.

https://bolknote.ru/all/gepatit-v-tabletkah/
«Гопник-2»: адаптация под Windows
Евгений Степанищев (RSS)

В итоге, вчерашняя мысль адаптировать «Гопника-2» под Виндоуз меня не отпустила. Открыл вечером «ЧатГПТ» и попробовал с его помощью сделать первые шаги.

Несмотря на то, что «Чат» у меня последней, четвёртой версии, всё равно, даже на простых примерах он допускает совершенно детские ошибки, — не подключает нужные заголовочные файлы (мы программировали на Си), упускает важные части.

Пытаемся программировать на пару с «ЧатГПТ-4»; подсказанный пример не скомпилируется

На скриншоте у меня как раз такой пример — он не скомпилируется из-за отсутствия констант и не содержит условия для обработки комбинации Ctrl+C, как было в том коде, который я попросил «ЧатГПТ» переписать.

Вот как в итоге стал выглядеть эт...

View original post
‌«Гопник-2»: буферизация
Евгений Степанищев (RSS)

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

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

// включаем буферизацию вывода
setvbuf(stdout, nullptr, _IOFBF, 1000);
// делаем макрос со сбросом буфера
#define PRINTF(...) { printf (__VA_ARGS__); fflush(stdout); }
Работает просто отлично, вывод текста стал выглядеть комфортно.

https://bolknote.ru/all/gopnik-2-buferizaciya/
ChatGPT-4 vs. Chat X-Colleagues
Евгений Степанищев (RSS)

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

Я сегодня уже рассказывал о своём опыте в Си и Си++. Результаты там, можно прямо сказать, не ошеломляющие, но на этом экспериментировать я не бросил. У меня родилась ещё одна идея.

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

Получившийся в результате эксперимента Makefile

В проекте «Гопника-2» такой файл тоже есть — тот, который достался мне в наследство от автора оригиналь...

View original post
«Всё вокруг колхозное, всё вокруг моё…»
Евгений Степанищев (RSS)

Около двадцати лет назад, когда я совладел «Казанским порталом», мы задумали его прорекламировать, разместив адрес на билбордах нашего города. Тогда это было свежо — никто так ещё не делал.

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

Через некоторое время наша реклама исчезла — её просто не оказалось на том месте, где она должна висеть. Наверное мы потом заказали другую, не помню, да и неважно, интересно другое.

Через некоторое время нашу рекламу горожане снова увидели, но уже без нашего уч...

View original post
‌Опять аллергия
Евгений Степанищев (RSS)

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

Не знаю что у меня за аллергия такая странная, несколько лет назад обращался к дорогущему аллергологу, ничего не прояснилось, но каждый сезон одно и то же — иду в аптеку и по одному перебираю препараты. В этом году начал с «Эриуса», пока мимо — не работает.

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

https://bolknote.ru/all/opyat-allergiya/
‌Не блог
Евгений Степанищев (RSS)

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

Я об этом давно задумался, но окончательно понял что с этим делать, когда один знакомый, заглянув ко мне на сайт, в изумлении воскликнул: «а зачем ты написал про стельки?». Зачем-зачем, я так хочу, это моё место в интернете, где я пишу то, что мне нравится.

Тогда я понял, что слово «блог» использовать нельзя. У меня не блог и я не блогер — слишком много на эти слова сейчас наверчено новых смыслов. Это у меня «сайт» или «дневник». Дневник, кстати, я веду с 1989 года, в следующем году будет 35 лет.

Дополнено: в комментариях прекрасный пример того, как человек не понимает почему он ко мне пришёл, а я его не развлекаю.

https://bolknote.ru/all/ne-blog/
Программист отдыхает
Евгений Степанищев (RSS)

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

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

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

Комикс, который я хотел нарисовать ещё в 2000-е, теперь можно нарисовать при помощи нейросетей (используется SDXL Beta)

Мне кажется, что домашний проектик, — важная часть д...

View original post