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

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

«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

Нищеброд

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

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

Страница из книги «Домашняя бесѣда для народнаго чтенія, издаваемая под редакціей Б. Аскоченскаго», 1858

Дочитал до отрывка:

Зулейха садится на сяке, подставляет разгорячённое лицо порывам ветра из разбитого окна. Это проделки Мансурки-Репья и его нищебродов из ящейки, не иначе.

Слово «ящейки» выделено в оригинале, это «ячейки» с татарским акцентом, на него не смотрите. Лучше обратите внимание на слово «нищеброды».

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

Решил погуглить. Согласно национальному корпусу русского языка, максимальную употребляемость слово имело как раз в 30-е годы, потом оно подзабылось, вернулось в язык в 70-80-е, снова короткое забвение и в 2000-е его опять начинают употреблять.

Вот это поворот.

Поискал по старым книгам. Как минимум встречается с середины 19-го века! На скриншоте скан книги 1858 года. Значение, конечно, было другое — так называли нищих бродяг. Сейчас его смысл тоже дрейфует — от людей с телефонами в кредит на три года, до гендернообязаных, не тянущих абонемент на доступ.

Востребованное слово, во всякой эпохе своё применение.

4 декабря   история

Партнёр•01.01

Советская восьмибитная персональная ЭВМ «Партнёр•01.01», выпускалась с середины 1987 года

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

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

«Партнёр•01.01» — советская восьмибитная ПЭВМ, выпускалась серийно примерно с середины 1987 года на производственном объединении «САМ» СКБ ВМ в Рязани.

Купленный мною компьютер произведён в июне 1989 года и в своё время стоил 650 рублей.

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

Весит почти четыре килограмма и потребляет 22 ватта. На борту советский аналог процессора i8080A, 64 килобайта ОЗУ, 16 килобайт ПЗУ (внутри — загрузчик, «монитор», редактор, Бейсик), алфавитно-цифровой вывод.

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

3 декабря   айти-музей

Интерфейс Музея тысячелетия Казани

В Музее тысячелетия Казани перед каждой витриной с экспонатами есть валик, на который можно опереться

Сходил сегодня в открытый ещё в 2005-м году Музей тысячелетия Казани. Располагается в НКЦ, в бывшем зале ленинского мемориала. Пиарится как-то слабо, я о его существовании узнал только в этом году из какой-то посторонней статьи.

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

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

В общем, доволен, что посетил.

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

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

мтДНК по мужской линии

Тут кое-что интересное произошло в генетике. Из статьи «Митохондриальная ДНК может передаваться по отцовской линии» с «Элементов»:

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

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

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

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

Интересно, что существует такой метод ЭКО при котором в яйцеклетку матери пересаживают цитоплазму от женщины-донора. Это позволяет избежать некоторых митохондриальных заболеваний (например — наследуемого по материнской линии синдрома сахарного диабета и глухоты). Получается, что у таких детей вполне может оказаться аж тройной набор мтДНК!

1 декабря  
Ранее Ctrl + ↓