Евгений Степанищев

Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Тёплый «РуСтор»

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

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

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

Молодёжный сленг

Испытываю испанский стыд каждый раз, когда кто-нибудь из молодёжи пытается объяснить мне молодёжный сленг или специально для меня заменить сказанное на более, по их мнению, понятное. Свежий случай был со словом «вайб» («vibe»), которое в разговоре, посмотрев на меня, заменили на «атмосферу».

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

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

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

Мой первый сайт

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

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

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

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

Всё по гайдлайнам 90-х — неуместная анимация, кнопки, которые «проваливаются» при наведении и даже звук был — я наговорил в микрофон фразу «Glad to meet you on our page». Она проигрывалась каждый раз при заходе на страницу. С сожалению, веб-архив её не сохранил.

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

Programm BBS

Поторопился я, когда сказал, что на моей малой родине, в Лениногорске не было BBS. Оказывается всё это было, правда я уже жил в Казани. В списке поинтов Фидо тех лет, который я нашёл в интернете, случайно заметил родной город, после чего разыскал контакт через общего знакомого.

Владимир Задвинский (адрес Фидо: 2:5049/33 aka /36.24), преподаватель информатики в Лениногорском нефтяном техникуме, в 1998 году организовал BBS (электронную доску объявлений) и ноду сети Фидонет в Лениногорске. Оборудование для BBS и Фидонета было установлено на 286-м компьютере в корпусе типа «крокодил», который находился в техникуме.

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

В техникуме была телефонная линия «ТатАИСНефть», используемая для охраны помещения. Она не задумывалась для чего-либо ещё, но возможность звонить по ней имелась. К счастью, звонки в город Набережные Челны по этой линии были бесплатными, что позволяло Владимиру поддерживать связь с другими узлами Фидонета через челнинский узел (2:5093), где сисопом был Алекс Бронин. Связь с осуществлялась через встроенный модем на 2400 бод, установленный на ISA-шине — старенький Sportster.

Откуда он взялся непонятно, понятно, что когда-то купили для чего-то, но для чего и когда — загадка.

T-Mail на экране и горка модемов IDC. Фото предоставлено Владимиром, снято 31 марта 2005 года

BBS Владимира, которая называлась Programm BBS, работала на базе программного обеспечения найденного, вероятно, в интернете. Тогда доступ к нему уже начал повляться. Основной интерес для пользователей представляла фидошная часть, а сама BBS не пользовалась большой популярностью из-за низкой скорости соединения (2400 бод) и ограниченных возможностей для файлообмена.

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

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

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

Фото предоставлено Владимиром

Всего в Лениногорске, в период расцвета Фидонета было около 16-18 поинтов (пользователей), которые узнавали о BBS и ноде через сарафанное радио и нодлисты. К сожалению, заставка Programm BBS не сохранилась, так как все данные остались на старом 286-м компьютере, судьба которого неизвестна. К 2009 году активность в сети Фидонет значительно сократилась, и к 2010 году нода окончательно прекратила свою работу.

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

«Элиза»

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

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

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

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

Пример разговора с «Элизой»

«Элиза» очень неплохо притворяется человеком. На известном тесте Тьюринга она опережает «ЧатГПТ 3.5» — 27% против 14%. Возможно в это сложно поверить, но общение с «ЧатГПТ» и в самом деле мало напоминает общение с живыми людьми, я удивлён, что вообще хоть кто-то обманывается.

Самое же удивительное для меня, что 27% набирает код, занимающий чуть больше 400 строк!

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

The Golden Horde и Сrasher Warezzz BBS

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

Заодно устроил перепись казанских BBS, всего пока получилось 65 штук.

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

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

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

Модем родом из 90-х — Datatronics Discovery 2400CM, справа внизу он же, сфотографированный на мои часы Casio WQV-3, картинка в оригинальном разрешении

Пока тема для меня свежа, я напишу ещё о нескольких казанских BBS.

Ещё одной электронной доской владел И. Б. (адрес в Фидо: 2:5049/113.15) в начале 2000-х. Его доска носила название, которое он точно не помнит. Что-то вроде Crashed Warezzz или Crasher Warezzz и проработала полгода-год.

Доска принимала пользователей с 21⁰⁰ до 3⁰⁰ ночи, именно в это время можно было дозвониться к нему домой и получить доступ к контенту, который он выкладывал — софт и книжки. Рекламой свой BBS он особо не занимался, разве что иногда упоминал о ней на сисопках, которые было по пятницам на Чёрном Озере — одном из известных мест общения фидошников того времени.

Другой мой знакомый, П. И. (2:5049/7) был владельцем The Golden Horde BBS в середине 90-х. В то время в ЦИВТ КГУ был приобретён модем для работы с UUCP-почтой через «Релком», и вскоре начались поиски других точек для подключения.

Сначала был найден открытый X.25 шлюз в Казани, позже подключились к «Фидонету», где использовался пакетный режим связи с периодическими созвонами для обмена накопленными данными. В промежутках модем работал в автоответчике и запускал BBS, если не звонил фидошный мейлер. Компьютер, куда дозванивлись пользователи, стоял в здании ЦИВТ КГУ, в комнате 201.

На BBS выкладывались актуальные программы, а для рекламы часто добавлялись файлы с ASCII-артом в архивы. Пользователи, обмениваясь программами, распространяли с ними реквизиты BBS. Также существовал список BBS, который распространялся через Фидо. Фидо и BBS были тесно связаны: почти все BBS имели фидо-ноды.

Забыть наперегонки

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

Pulse BBS

Оказалось, что один из моих старых знакомых, Р. Х. (адрес в Фидо: 2:5049/46.21) когда-то управлял BBS в Казани — это были электронные доски объявлений, которые существовали до широкого распространения интернета в том виде, в котором мы его знаем. BBS позволяли подключаться к сети через телефонную линию с помощью модема. Пользователи могли обмениваться файлами, читать сообщения и общаться в чатах.

Я никогда не видел этих досок вживую — они почти исчезли, когда я только переехал в Казань. В моём родном городе их, похоже, не было вообще. Однако в те годы, когда мы обменивались софтом на дискетах, на некоторых из них можно было увидеть заставки BBS, выполненные в ASCII-графике.

Я немного расспросил его о тех временах — ведь это часть истории, и мне было интересно её зафиксировать. Вот что он рассказал.

Заставка Pulse BBS не сохранилась, но вам пример как могли оформляться заставки досок в те времена

В 1996 году, когда ему было 15 лет, он настроил свою собственную электронную доску с помощью популярной в те годы программы — «Tornado BBS» и назвал её «Pulse».

Программа «Tornado» позволяла создавать интерфейсы с использованием ASCII-графики, организовывать разделы для обмена файлами и даже делать чаты. Мой знакомый покупал CD-диски с софтом и утилитами, которые потом размещал на своей BBS.

Его доска работала преимущественно ночью — с 19⁰⁰ до 9⁰⁰, когда телефонная линия не была занята. Это время он оставлял для пользователей. Он активно рекламировал свою BBS на других досках, благодаря этому у него часто было много посетителей. Когда он спал, из его комнаты нередко раздавался характерный звук подключения по модему — это значит на BBS зашёл пользователь. Одновременное подключение было невозможно — для этого нужен был пул из нескольких телефонных номеров.

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

MyHeritage → «Фамилио»

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

Спасибо читателям, подсказали. Есть другой способ — скачать клиентское приложение «Family Tree Builder», залогиниться там, а потом экспортировать дерево оттуда. Это сработало.

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

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

Приложение «Family Tree Builder» с открытым в нём моим деревом

DoomPDF

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

Но «Дум», запущенный внутри PDF-файла, меня чертовски удивил! Не то, чтобы я не знал, что это возможно — в конце-концов, PDF сам по себе программный файл (там внутри язык программирования PostScript), но я как-то даже и не думал о такой возможности.

Вы попробуйте, работает даже внутри браузера!

Правда, в данном случае PostScript почти не использовался. Всё дело в том, что внутри PDF есть возможность использовать ещё и JavaScript. Причём, в случае Adobe Acrobat, доступны, например, такие, сомнительные для PDF возможности, как 3Д-графика или HTTP-запросы.

В просмотрщиках PDF современных браузеров поддержка JavaScript тоже есть, правда она сильно ограничена по функционалу. Тем не менее, для запуска «Дума» хватило и этого.

Чтобы запустить «Дум» внутри PDF, использовался старый Emscripten, который компилирует код на Си в asm.js (это такое подмножество JavaScript), вместо более привычного WebAssembly. Но этого недостаточно — нужно было придумать, как принимать ввод с клавиатуры и отображать графику. Это оказалось не таким уж и простым. К счастью, в браузерах PDF-движки поддерживают текстовые поля и кнопки, что и было использовано для ввода.

С графикой возникли следующие проблемы. Речь идет о разрешении 320×200 пикселей, что означает, что если бы использовались обычные текстовые поля для каждого пикселя, пришлось бы обновлять тысячи полей на каждый кадр. В общем, так бы вы никогда не поиграли в «Дум». Вместо этого автор решил использовать одно текстовое поле на каждую строку экрана и обновлять их с помощью ASCII-символов. Простой, но довольно эффективный способ, который дает в итоге монохромную картинку с шестью цветами. Конечно, такой способ тоже не даёт плавного рендера картинки, но играть всё равно довольно комфортно!

Стабильность ПО

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

Symantec Norton CrashGuard на компакт-диске и кусочек интерфейса; обратите внимание на необычную форму окна, это было время экспериментов

Пришлось напомнить собеседником насколько зависания и падения «Офиса» когда-то были обычным делом. Ситуация не улучшалась годами, что привело к выпуску фирмой «Симантек» продукта «Symantec Norton CrashGuard with AntiFreeze».

Это был платный инструмент, который за деньги исправлял базовые ошибки другого платного инструмента. Только вдумайтесь в это.

Понятно, что в России ни за тот ни за другой не платили, но в других странах было иначе.

Когда «Ворд» или «Эксель» зависал, программа пыталась его «разморозить». Она предоставляла возможность не только разблокировать зависшие приложения, но и перехватывать ошибки, например, «синие экраны», и пыталась восстановить работу. Это давало шанс сохранить документ. Помогало не всегда, но нередко спасало.

Социальный интеллект и большие языковые модели

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

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

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

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

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

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

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

Прощай, MyHeritage

Я много лет пользовался сайтом myheritage.com, вёл там родовое дерево, которым когда-то активно занимался — у меня в нём 3866 персон. Разумеется, это не только и, наверное, не столько мои предки, но и боковые по отношению ко мне ветки. Кроме того, там масса фотографий с привязкой фотографируемых к дереву.

Перед Новым годом я, как и другие российские пользователи ресурса, получил письмо, что из-за санкций накопленные данные буду удалены 1 февраля 2025 года.

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

Возвращение плагина Pogoda​Status​Bar

У меня есть традиция — время от времени чинить мой старенький и порядком уже поднадоевший мне плагин для редактора «Саблайм 3». Плагин называется Pogoda​Status​Bar, потому что он когда-то показывал пробки и погоду с сервиса «Яндекс.Погоды».

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

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

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

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

Я уже с таким сталкивался. У «Саблайма» внутри две версии «Пайтона» — 3.3 и 3.8. Обе, в общем-то, уже старые. Мой плагин запускается с версией 3.3 и у меня никак не дойдут руки залезть в общий репозиторий плагинов и переписать для моего плагина версию «Пайтона».

Таким образом между «Пайтоном» у меня в командной строке и внутри «Сайблайма» — десять версий. Иногда я использую в коде что-то, чего «Сайблайм» не понимает.

И вот непонятно как об этом узнавать. Можно, думаю, раздобыть старенький «Пайтон» в контейнере, но лень.

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

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

С этим я опять поленился разбираться, вместо этого попытался отредактировать код прямо в архиве через консольный файловый менеджер mc. Неожиданно это сработало. Так я узнал, что ошибка была в том, что я использую вызов html.unescape, который появился только в «Пайтоне» 3.4. Пришлось заменить его на вполне устроивший меня в этом месте replace('"', '"') и всё заработало.

Код плагина, открытый через редактор консольного файлового менеджера

С Новым годом из 1950-х

Это последняя рукописная открытка 1950-х годов из пачки, найденной мной на чердаке одного из расселённых казанских деревянных домов. Сложено треугольником, как складывали письма в Великую Отечественную войну.

Ранее Ctrl + ↓