TeleBolkNote
184 subscribers
1.46K photos
4 videos
1.6K links
Моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь, большие языковые модели и программирование. Совпадает с сайтом bolknote.ru
Download Telegram
Мою игру для часов, порт текстового квеста 1970-х «Охота на Вампуса» так что-то и не приняли в репозиторий прошивки, никакой реакции, тишина. Хотя есть уже несколько поигравших — написали в комментарии к коммиту и в почту.

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

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

https://bolknote.ru/all/vampus-dlya-the-sensor-watch/
👍1
Проморолик нашей компании
Евгений Степанищев (RSS)

Снялся на днях в проморолике нашей компании, который появился в телеграм-канале министра цифрового развития Республики Татарстан.

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

Не знаю что именно говорят в таких случаях актёры в кадре, я просто проговаривал то, что я делаю или какую реакцию жду: «смотрите, я показываю рукой на экран, а сейчас я смотрю на вас, вы на меня, после чего вы киваете».

Часть этой «аудиорыбы» можно прочитать у меня по губам в соответствующих местах.

Я удобно устроился в кресле нашей зоны отдыха

https://bolknote.ru/all/promorolik-nashey-kompanii/
👍4
Си 23
Евгений Степанищев (RSS)

Как-то незаметно вышел Си23. В компиляторе GCC 15 даже решили использовать его по-умолчанию. К слову, у языка какая-то странная нумерация. Получается, что Си89 старше, чем 99 и 23. Вам это голову не ломает?

Посмотрел список изменений, в глаза мне бросилось следующее.

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

Атрибуты функций можно теперь писать в синтаксисе Си++, то есть в виде [[атрибут]]. Это очень хорошо. Так они лучше различимы, в отличие от спецификаторов, и имеют собственное пространство имён.

Изменили действие ключевого слова auto. В Си оно обозначало класс хранения, причём по-умолчанию он как раз auto, так что в живом сишном коде я никогда это слово не видел. Теперь оно будет означать автоматический вывод типа переменной, прямо как в Си++. Это хорошо — со временем из кода можно будет выкинуть __auto_type.

Функции с пустым списком аргументов будут обрабатываться, как функции без аргументов. Это тоже хорошо, потому что раньше было неочевидно. В своё время для меня открытием было, что функции без аргументов должны в Си задаваться через синтаксис func(void), правда я в коде так всё равно не делаю.

Прекращена поддержка триграфов. Это, конечно, хорошо, но жалко. Речь идёт об альтернативных конструкциях в языке, которые были введены когда-то для поддержки некого древнего оборудования. Например, ??/ это альтернативный синтаксис для обратного слеша. Триграфы приводили к редким багам парсинга, пугали народ, но их было весело использовать в своих проектах.

Добавили конструкцию #embed, которая позволяет включать в код бинарные данные. Тоже здорово, в игре «Морской бой», выпущенной ко Дню радио мне пришлось включать игру на Луа внутрь сишного кода внешними утилитами, а теперь можно это делать одной директивой.

Остальные изменения тоже полезны, буду знакомиться, но эмоционального отклика не вызвали.

https://bolknote.ru/all/c23/
Грязный снег
Евгений Степанищев (RSS)

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

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

Надеюсь простуженное горло из-за поедания снега останется в прошлом. Хотя бы на эту зиму.

https://bolknote.ru/all/gryazny-sneg/
Технология предков — IrDA
Евгений Степанищев (RSS)

Недавно я купил Casio WQV-3. Это очень интересные часы из 2000-х — в этой линейке производитель впервые вставил камеру в свои часы. Достаточно редкая для России штука, но я не ожидал, что купить для них инфракрасный приёмник будет сложнее, чем само устройство.

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

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

Теперь нужен третий компонент — компьютер с чем-нибудь, типа Windows XP. У меня дома где-то лежит баребон с четвёртым «Пентиумом», можно было бы на него, но я что-то пока его не нашёл. Не пользуюсь им уже лет 20, наверное.

https://bolknote.ru/all/tehnologiya-predkov-irda/
👍1
Теория мёртвого интернета
Евгений Степанищев (RSS)

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

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

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

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

https://bolknote.ru/all/teoriya-myortvogo-interneta/
🤔5
Попытка подключить IrDA
Евгений Степанищев (RSS)

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

Необходимое оборудование я купил и даже нашёл на работе ноутбук с Windows XP, эта операционная система должна была подойти.

Попутно пришлось решить неожиданную проблему — оказывается корневые сертификаты, которые имеются у Windows XP настолько устарели, что сайты через HTTPS не открываются. Эта беда решается сторонней утилитой. Попутно пригодился браузер supermium — это сборка «Хромиума», которая поддерживает старые операционки.

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

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

Ноутбук Toshiba Portege M400 с инфракрасным приёмопередатчиком Arkmicro ARK3116T

https://bolknote.ru/all/popytka-podklyuchit-irda/
👍2
Bash The Wumpus
Евгений Степанищев (RSS)

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

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

Для реализации выбрал тот же классический квест 1970-х, который я переписывал для The Sensor Watch — «Hunt The Wumpus». Вампус там живёт в пещере, который представляет с собой граф из двадцати помещений, соединённых в додекаэдр.

Самая быстрая моя победа, я даже не задумался, что если бы стрела не убила Вампуса сразу, то следующим ходом убила бы меня

В соответствии с идеей, помещения у меня представлены директориями, а переходы между ними — символическими ссылками. Соответственно, Вампус и прочие опасности, — ямы и летучие мыши, стали файлами.

В первой версии у меня всё было организовано обычными командами. Кроме упомянутой cd, вполне естественным способом заработали ls и pwd, а так же команда rm, которая уничтожала файлы-монстры.

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

Тут мне повезло меньше

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

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

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

Игра, как обычно, выложена на «Гитхабе».

https://bolknote.ru/all/bash-the-wumpus/
😱1🥴1
Первый турнир по шахматам у дочки
Евгений Степанищев (RSS)

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

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

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

https://bolknote.ru/all/pervy-turnir-po-shahmatam-u-dochki/
2
Perl 1
Евгений Степанищев (RSS)

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

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

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

К первой версии идёт пятьдесят тестов, написанных на Перле тех времён. Я бегло их просмотрел и, на первый взгляд, язык как будто мало изменился, тем не менее какие-то различия бросаются в глаза. Например, массивы с какого-то перепугу, выглядят иначе — без @ в начале, do каким-то образом позволяют обращаться к ещё не объявленным функциям, а в языке существует переменная с именем «пробел».

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

for ($i = 0; $i <= 999999; $i++)
{
$a = ('0' x (6 - length($i))) . $i;
$c++ if (substr($a, 0, 1) + substr($a, 1, 1) + substr($a, 2, 1)) ==
(substr($a, 3, 1) + substr($a, 4, 1) + substr($a, 5, 1));
}
print "$c\n";
Вот что пришлось исправить: изменить синтаксис цикла, ну и скобок побольше наставить.

Производительность, кстати, изменилась значительно — первая версия выполняет эту программу за 1,7 секунд, а современный Перл на том же оборудовании — за 0,8 секунды.

https://bolknote.ru/all/perl-1/
🥴1
Снимки с Casio WQV-3
Евгений Степанищев (RSS)

Боже мой, я прямо не верю! Успешно удалось переписать фотографии с часов! Спасибо одному из читателей, который каким-то чудом нашёл страничку на «Народе», где можно скачать драйвер, с которым всё, как по волшебству, заработало! Подошёл драйвер в архиве с названием Driver_XP_NT.rar.

В итоге, чтобы переписывать снимки с этих часов, необходимо следующее:

— собственно часы;
— программа Casio WQV Link 2;
— компьютер или виртуалка с ОС, на которую эта программа поставится; я ставил Windows XP;
— адаптер IrDA, на которые надо найти драйвера; на мой Ark3116T (PCIID: 18EC 3118) драйвера нашлись.

Подсоединяем адаптер IrDA к компьютеру, запускаем Casio WQV Link 2, открываем там контрольную панель, кнопкой сверху выбираем папку, в которую будут сохраняться картинки, кладём часы напротив адаптера, запускаем там передачу (SelectSelectIR Beam), нажимаем в контрольной панели «Save All».

После этого снимки можно посмотреть в указанной папке.

Успешно переписал фотографии с Casio WQV-3, в основном там фотографии предыдущих владельцев

https://bolknote.ru/all/snimki-s-casio-wqv-3/
🔥2
Недавно я узнал, что, кроме text, varchar и char, в Постгресе есть ещё и строковый тип "char", именно так, в кавычках. Используется во внутренних таблицах Постгреса для простого перечисления. Интересен тем, что занимает ровно один байт, в отличие от более известных типов, которые во внутреннем представлении хранят ещё и свою длину, поэтому всегда занимают больше.

Использования его в своих таблицах, наверное, лучше избегать, но знать про него интересно. Кстати, есть ещё и тип name, который всегда занимает 64 байта и используется для хранения имён объектов, но, как по мне, он не такой интересный.
Лица
Евгений Степанищев (RSS)

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

https://bolknote.ru/all/lica/
😁5
Bash HTTPd
Евгений Степанищев (RSS)

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

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

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

Обошлись без веб-сервера, но пока суд да дело, выяснилось, что у меня на ноутбуке этот башевский сервер не работает — там «Макось», а у местной утилиты nc нет ключа -c при помощи которой можно указать команду для обработки данных из сокета.

В общем, мне стало как-то обидно, что автор оригинального кода обошёл вниманием «Макось» и я написал свою реализацию через команду coproc, которую до этого использовать не умел. Вот и появился повод изучить.

В процессе код стал занимать меньше места (моя минифицированная версия на 25 байт короче), научился обрабатывать имена, содержащие пробелы и национальные символы и заработал не только под «Линуксом», но и под «Макосью».

https://bolknote.ru/all/bash-httpd/