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

Позднее Ctrl + ↑

ФИДО

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

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

Самое моё значимое участие в жизни Фидо — как-то я умудрился намертво повесить компьютер с OS/2 своего знакомого, где работал тоссер — программа, обслуживающая один из сегментов казанской сети.

Гипертекстовый векторный фидонет на экране обычного смартфона; используется клиент HotdogEd под Андроид

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

Сегодня заявку одобрили и дали мне поинта (адрес) 2:5020/723.67. Скачал клиента HotdogEd под Андроид, установил ему плагин HotdogEd Fidonet Provider, заполнил настройки из присланного в ответ на заявку письма, и вот я в Фидо.

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

  • «Boss 3D FTN address» — адрес ноды (в моём случае — 2:5020/723)
  • «Your name» — «имя» из ответного на заявку письма
  • «Your 4D FTN address» — ваш поинт-адрес (в моём случае — 2:5020/723.67)
  • «Password» — пароль из письма

Потом останется подписаться на интересующие вас «эхи» (каналы) и можете начинать общаться. Я пока подписался на две локальные и на su.talks — всероссийскую болталку.

Пока причастности к легенде не почувствовал, но гештальт, надеюсь, закрыл.

4 января   айрхеология

Бывший кошатник

Мой первый кот — Мурзик, ни одной его фотографии не сохранилось, но есть несколько моих рисунков; этот датирован январём 1991 года

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

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

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

В общем, себя всегда считал кошатником. Соответственно, когда стал жить самостоятельно, дома у меня всегда жил кот или кошка. Сейчас это кот Е́жи.

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

Правда моя переориентация распространилась не на всех Canis lupus familiaris, а только на тех, кого я шовинистически называю «настоящие собаки» — крупные породы, вроде лаек, овчарок, лабрадоров и прочее.

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

1 января  

Мапа

Дочка сейчас активно наращивает словарный запас — пытается узнать больше качеств конкретной вещи или ситуации. У нас нередки диалоги вида:

— Папочка, а подушка какая?
— Белая.
— А ещё?
— Маленькая.
— А ещё?
— Мягкая, гладкая, покатая…

Это очень интересный опыт, не знал, что дети так делают.

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

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

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

Так что мы с женой чета «мапочек». Не очень-то и понятно, на самом деле, чем это слово заменить из существующих.

28 декабря   дочка

Проблема с обновлением «МакОСи»

Камрип неудавшегося процесса обновления «МакОСи» на предпоследнюю версию «Мохаве»

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

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

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

Но на этом приключения не закончились. Оказалось трёхгиговая программа для обновления хочет что-то скачать из интернета (это удалось понять из логов, которые у неё показываются по нажатию ⌘+L) и это что-то немаленькое — бесплатного «випиэна» на 500 мегабайт не хватило.

Хорошо приятель (спасибо, Рим!) выручил, дал пароль от своего безлимитного «випиэна», после этого меня ждал успех. До часу ночи суммарно провозился.

21 декабря   apple   mac   macos

«Apple I» в музее техники Эпл

Реплика компьютера «Эпл I» в музее техники Эпл, к сожалению в момент посещения музея этот компьютер не работал

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

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

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

Оригинального «Эпла I» в музее нет — в мире их осталось меньше сотни, зато есть реплика, но не повезло — в этот день, как нарочно, у неё не работала клавиатура. Моя программа небольшая, много времени набор на клавиатуре не занял бы.

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

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

ZMODEM

Виндовый XShell понимает что такое ZMODEM, при запуске утилиты на сервере готов передавать файлы

Для проекта, которым мы тут в Москве, в командировке занимаемся, заказчик предоставил компьютер на Винде, который по РДП соединяется с виндовой же виртуалкой и вот откуда по ssh имеется доступ на целевые сервера.

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

Непростое занятие, которое надо делать параллельно с другими делами. Очень раздражает. Ситуация немного улучшилась, когда я в какой-то паузе решил посмотреть не поддерживает ли XShell (ssh-клиент, который нам поставили) протокол передачи файлов ZMODEM.

ZMODEM — довольно древняя штука, сейчас уже малоизвестная, использовалась ещё на бибиэсках, там подобных протоколов было, как грязи. Я узнал о ней из ssh-клиента SecureCRT, пользовался им когда ещё сидел под Виндоуз. SecureCRT на команду передачи файла на сервер, запускает на удалённой стороне утилиту rz, открывает диалог выбора файлов и очень бодро перекачивает выбранное. Удобно.

Реинкарнация утилиты rz нашлась в виде пакета lrzsz, а запуск установленной команды открыл окно выбора файлов — XShell прекрасно понял чего я от него ожидаю. Жизнь немного улучшилась.

13 декабря   программирование

Яндекс.Драйв

«Яндекс.Навигатор» с голосовым ассистентом «Алиса» в автомобиле «Яндекс.Драйва»

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

Очень расстроен. Мне не понравилось.

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

А ещё неожиданно оказалось, что голосовой помощник «Алиса» почему-то ничего не знает про автомобиль. Ни где его заправлять, ни чем. Я уж не прошу, что бы он (она?) сказал «бак почти пустой, по указанному адресу вы не доедете, вот ближайшая заправка, построить маршрут?» и «мы приехали, активирую карту для оплаты бензина, заправьте 95-го, 20 литров, лючок бензобака справа, открывается рычажком внизу слева». Не прошу, но хотелось бы.

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

☹️Я не впечатлён.

12 декабря  

«Chomp!»

Игрушка «Chomp!», входящая в состав плеера Cosmo VRML Player — вы играете за акулу, поедающую разное

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

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

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

Вчера решил предпринял очередную попытку, гуглил до изнеможения, пока не нашёл где-то упоминание, что компания «Нетскейп» когда-то распространяла свой браузер с вместе с «Cosmo VRML Player».

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

У меня на ноутбуке уже есть виртуализация — «Parallels Desktop» какой-то бородатой версии, так что я просто скачал в интернете первую попавшуюся загрузочную дискету ДОС с поддержкой сидирома, образ «Виндоуз 95» и всё установил.

Потом поставил внутрь «Нетскейп Навигатор 4.04», «Космо Плеер 2.1», «DCOM95», «DirectX 8.0a» и универсальный видеодрайвер. Именно с таким набором ПО всё завелось и довольно шустро заработало.

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

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

10 декабря   netscape   айрхеология

Внутренности советской ёлочной звезды

Внутри советской звезды на ёлку — пять резисторов и пять лампочек

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

Напряжение, подаваемое на вход — 220 вольт, звезду с таким напряжением постоянно включенной на сухом дереве не оставишь. Если успею, переделаю. Только на что бы заменить лампочки, чтобы не испортить?

8 декабря  

99 бутылок: Ассемблер 6502 для Apple I

66. Ассемблер 6502 для «Эпл I». 6502 — восьмибитный микропроцессор, выпускавшийся в 1975 году компанией «МОС Текноложи».

У процессора всего 56 команд (не считая недокументированные), доступны три регистра — A, X и Y. Очень необычно устроена адресация — первые 256 байт памяти доступны через восьмибитную адресацию, всё остальное пространство — через шестнадцатибитную.

Мнемоники трёхбуквенные, в основном — смысловые сокращения или акронимы, запоминаются легко. Например, LDY — LoaD Y, ASL — Arithmetic Shift Left, JSR — Jump to SubRoutine и так далее.

Процессор использовался в первом персональном компьютере «Эпл», для него я и написал «песню про пиво», использовав для печати на экран куцее встроенное АПИ.

Очень помогло, что в наборе команд есть десятичный режим — в этом режиме после прибавления единицы к «09h» получается «10h», а не «0Ah» (надо только помнить, что в этом режиме работают всего две команды — ADC и SBC). «Бутылки» в этом режиме считать значительно легче.

.ORG    00280h
            .CPU    6502

ECHO        =       $FFEF
PRBYTE      =       $FFDC
PRHEX       =       $FFE5
MONITOR     =       $FF1F

            SED
            LDA     #$99
LOOP_:
            PHA
            JSR     BOTTLES
            JSR     B_OF_T_WALL
            LDX     #(ENDPASSSTR - STRS - 2) ; ", "
            LDY     #2
            JSR     PRINT
            PLA
            PHA
            JSR     BOTTLES
            JSR     OF_BEER
            JSR     DOT_CR
            JSR     TAKE_ONE_DOWN
            PLA

            SEC
            SBC     #1

            PHA
            JSR     BOTTLES
            JSR     B_OF_T_WALL

            JSR     DOT_CR

            PLA

            CMP     #0
            BNE     LOOP_

            JSR     NO_MORE

            JMP     MONITOR

PRINTNUMBER:         ; in A (number), use A
            CMP     #$F
            BCS     $+5
            JMP     PRHEX
            JMP     PRBYTE

PRINT_PSTR:          ; in X (offset), use A, Y
            LDY     (STRS),X
            INX
PRINT:               ; in X (offset), Y (len), use A
            LDA     (STRS),X
            JSR     ECHO
            INX
            DEY
            BNE     PRINT
            RTS

BOTTLES:             ; in A (quantity), use X, Y
            CMP     #0
            BEQ     NO_
            PHA
            JSR     PRINTNUMBER
            LDX     #3 ; skips len+"NO"
            LDY     #8 ; length of " BOTTLES"
            PLA
            CMP     #1
            BNE     NO_ONE_
            DEY      ; 7 - length of " BOTTLE"
NO_ONE_:
            JMP     PRINT

NO_:
            LDX     #0
            JMP     PRINT_PSTR

B_OF_T_WALL:         ; use X, Y, A
            LDX     #(BEERONTHEWALLSTR - STRS)
            JMP     PRINT_PSTR

OF_BEER:             ; use X, Y, A
            LDX     #(BEERONTHEWALLSTR - STRS + 1) ; skips len
            LDY     #8 ; length of " OF BEER"
            JMP     PRINT

DOT_CR:              ; use X, Y, A
            LDX     #(END - STRS - 2) ; "." + CR
            LDY     #2
            JMP     PRINT

TAKE_ONE_DOWN:       ; use X, Y, A
            LDX     #(PASSSTR - STRS)
            JMP     PRINT_PSTR

NO_MORE:             ; use X, Y, A
            LDX     #(ENDSTR - STRS)
            JMP     PRINT_PSTR

STRS:
            .PSTR   "NO BOTTLES"
BEERONTHEWALLSTR:
            .PSTR   " OF BEER ON THE WALL"
PASSSTR:
            .PSTR   "TAKE ONE DOWN AND PASS IT AROUND, "
ENDPASSSTR:

ENDSTR:
            DB      128,"NO MORE BOTTLES OF BEER ON THE WALL, NO MORE BOTTLES OF BEER.",$8D
            DB      "GO TO THE STORE AND BUY SOME MORE, 99 BOTTLES OF BEER ON THE WALL.",$8D
END:

Для отладки, написания программы и перевода в машинные коды использовался довольно удобный «онлайн-ассемблер Асм80», для исполнения программы — «ОупенЭмулятор».

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

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

7 декабря   99   apple
Ранее Ctrl + ↓