🔌 Как много кабелей хороших, как много ласковых имён
Сейчас половина олдфагов интернета потешается над пареньком, в объявлении на «Авито» перепутавшим сетевую карточку
Ну не знал человек, бывает. Где сейчас можно встретить сети
Много ли людей сходу, не гугля, скажут что за разъём на переднем торце карты на фотографии рядом с кабельным? Я сети на нём вживую не видел, но зато видел залежи оборудования под него в одном из НГДУ «Татнефти», когда работал там в середине девяностых — видимо то был самый конец их существования в этой организации.
Это так называемый разъём «AUI». Карта через него, по специальному кабелю, похожему на принтерный, соединялся с небольшой коробочкой — трансивером, у которого был разъём BNC. Через него вся эта непростая конструкция подключалась в локальную сеть.
🐞 Немного об отладке через var_dump
Недавно поймал, посещая «Вконтакт», такую ситуацию. Владельцы её заметили нескоро — висело ещё минимум час.
«Вконтакте» написан на диалекте ПХП и для тех не знаком с этим языком поясню — это
🎱 Сложности при написании «99 бутылок» на «Электронике МК-61»
★
Как и обещал в прошлый раз, хочу рассказать с какими сложностями мне пришлось столкнуться при написании «Песни о пиве» на программируемый калькулятор «Электроника
Калькулятор попал ко мне для передачи в компьютерный музей, который готовится к открытию в высшей школе «ИТИС» и у меня
В процессе изучения я наткнулся на заинтриговавшую меня вещь. В некоторых операциях калькулятор переключался в режим шестнадцатеричного счисления, о чём сигнализировала восьмёрка и точка в первом разряде.
Как видно по таблице выше, отображение этих чисел сильно отличается от общепринятого (как правило для цифр больше девятки используются латинские буквы от A до F) и я не мог не отметить, что с их помощью легко написать английское «beer» («пиво»).
Тем более мне очень повезло в том, что индикацией этого режима является именно восьмёрка, стоящая спереди — так похожая на первую букву в нужном мне слове. Как вы теперь понимаете, на экране в моей программе написано не «BEEr», с точки зрения калькулятора там одни числа и индикатор режима — «8.EEГ» или «EED» в привычной записи (десятичное «3821»).
Так же я воспользовался тем, что «F» в этой странной нотации — пробел, что позволило мне отделить число от «надписи». Дальнейшее — дело техники.
Листинг из предыдущего поста начинается с подготовки данных в регистрах — нескольких масок на которые битовыми операциями в дальнейшем наложатся числа так, чтобы получилась нужная мне «строка». Настоящая программа начинается с нажатий на «В/О» и «ПРГ», и активно пользуется подготовленными данными.
Маски и оставшиеся числа побитно накладываются двумя подпрограммами — по отдельности на диапазоны
Для примера кусочек подпрограммы, номер слева соответствует номеру инструкции при вводе в калькулятор и каждую строку я прокомментирую, но следует понимать, что в реальности эти комментарии частью программы не являются:
// когда что-то попадает в «X» предыдущее значение смещается в «Y» (там стек из 4 позиций)
45 1 // «1» кладётся в регистр «X», входной параметр сместился в «Y»
46 + // Y + 1, передаётся в «X», это коррекция данных после операций, которые шли выше
47 К П→Х 7 // в «X» помещается число из регистра (маска), указанного в регистре №7
48 + // Y+X → X
49 ИНВ // инвертирование битов в «X», сейчас на экране написано «8.EEГ» плюс некий пока мусорный символ
50 К П→Х 8 // в «X» помещается число из регистра, указанного в регистре №8
51 ^ // операция «И», на экране — «8.EEГ», из некого символа получилось требуемое число
52 В/О // возврат из подпрограммыДесятки и единицы выбираются адресами масок, которые я передаю при помощи косвенной адресации, хорошо, что такое вообще есть в языке — это позволяет эффективно пользоваться подпрограммами.
Подпрограмма вызывается два раза с разными параметрами — для десятков и единиц, получаются две маски, которые позднее накладываются друг на друга.
Сильно расстраивает отсутствие памяти для долговременного хранения, в устройстве хоть и есть батарейный отсек, но при любом сбое питания (батарейки сели, а блок питания не подключен), память калькулятор сбрасывается и программу придётся набрать заново. То же ожидает и в случае, если одну программу нужно будет заменить другой — хотя программы можно запускать с произвольного адреса, много их в память не уместится — её ёмкость всего 105 инструкций.
«99 бутылок» на языке «Электроники МК-61»
59. Язык калькулятора Электроника
В детстве такие калькуляторы я видел только на картинках в журнале «Наука и жизнь», а программы для них были
Вчера мне в руки попал настоящая «Электроника
Так выглядят мои «99 бутылок…» на этом калькуляторе:
8112000 Х→П c 8 + ИНВ Х→П b Вх 10 ÷ [X] Х→П d 8 + ИНВ Х→П e В/О ПРГ
П→Х 0 1 0 ÷ [x] Х→П 1 Вх {x} 1 0 × Х→П 2
1 1 Х→П 8 1 2 Х→П 7 П→Х 2 ПП 34 Х→П a
1 4 Х→П 8 1 3 Х→П 7 П→Х 1 ПП 34 П→Х a
^ С/П
6 - /-/ x<0 45 9 + К П→Х 7 + ИНВ В/О
1 + К П→Х 7 + ИНВ К П→Х 8 ^ В/ОПоскольку у меня в блоге скорее всего отсутствуют любители работать каждый день с калькуляторами советских времён, то я не буду придерживаться принятой нотации с номерами — не думаю, что
Вкратце о языке. Больше всего это похоже на крайне примитивный ассемблер с гипертрофированным математическим сопроцессором. Всё то же — переходы на адрес, одно- и двухбайтные инструкции с операндами, регистры с определёнными назначениями, сильно ограниченная память (105 команд), наличествует косвенная адресация и подпрограммы (стек вызовов размером в пять вхождений).
До запуска программы нужно в регистр «0» поместить стартовое значение (например, «99», «Х→П», «0») и запустить программу «В/О», «С/П».
Это я сделал
Поэтому на вход подаётся нужное число, например, «42», а на выходе мы можем полюбоваться фразой «BEEr 42». Не весть что, но что вы хотели от калькулятора? Кстати, выводимая фраза — не строка (спойлер: а число), о том как мне пришлось помучаться я ещё расскажу.
💾 В последний раз о Trek Thumbdrive
Предупреждали ведь меня умные люди в комментариях — сохрани драйвера. Почему я не прислушался?
У нас в городе, силами моего хорошего знакомого — директора высшей школы ИТИС Айрата Хасьянова, создаётся небольшой компьютерный музейчик. Я в размере своих закромов ему помогаю, вот и уникальную флешку на 16 мегабайт тоже передаю.
Но перед этим хотел посмотреть нет ли на ней
Сейчас смешно звучит, но флешки того времени имели ёмкость от 8 до 256 мегабайт (не гигабайт) и продавались с драйвером на дискете.
Оказалось, что сей драйвер не меньший раритет, чем флешка.
И вот вчера повезло — на неком тайском блоге нашёл запись со ссылками на другой сайт с полным комплектом драйверов. К сожалению, сначала драйвера не скачались — сайт давно лежит в обломках. Но мне повезло дважды — через
Дома выкачал виртуальную машину с операционной системой постарее (вы в курсе, что их легально можно скачать с сайта «Микрософта»?), поставил драйвера, всё завёл, но, к сожалению, ничего ценного не нашлось, даже стёртого.
Из примечательного, файловая система на флешке — FAT12, служебная информация на ней хранится очень компактно, но она поддерживает накопители не более 32 мегабайт. Такая же файловая система применяется и на дискетах, которые, как говорят, благодаря некоторым налоговым никак не оставят нас в покое.
⛪ Деревня, которой ранее не было, а потом появилась
Изучал вчера старинные карты вокруг Мамадыша и наткнулся на очень интересное название деревни, оцените (внизу, правая сторона): деревня Что была пустошь на горе, вниз по горе, меж речек.
Запятые я расставил сам, но не уверен, что автор имел ввиду именно такую расстановку,
Как бы то ни было, стало интересно как этот населённый пункт называется теперь. Искать было непросто, так как ни один из населённых пунктов на этом куске карты не сохранил в точности то же название, но тем не менее, нашёл. Это теперь деревня Куюк Сабинского района.
Мне кажется, если вернуть историческое название, будет интересная достопримечательность.
🌊 Поверка счётчиков воды
Подошёл срок замены водяных счётчиков дома. Дело длительное, да и не из дешёвых — у меня четыре счётчика, за всё около 5 тысяч. Интересно стало — так ли необходима их замена и какие есть альтернативы.
Оказалось, вместо замены можно втрое дешевле выполнить поверку счётчиков, причём это довольно быстро, делается на дому и даже не требует их снятия. Мне эту процедуру провели специалисты «Казметрологии».
В назначенное время приходит мастер с чемоданчиком, где лежит установка для поверки с эталонным счётчиком внутри. Она крепится к вашему водопроводному крану специальной трубкой.
Для поверки нужен доступ к вашему счётчику — мастер пропускает через него определённое количество воды и засекает на выносном пульте начало и конец отсчёта, эталонный счётчик покажет сколько воды за это время прошло на самом деле. Процедура повторяется для разных напоров воды.
Для каждого напора погрешность должна быть в пределах нормы. У меня все счётчики безбожно врут, придётся всё же менять. Как мне сказали, примерно половину счётчиков на вызовах меняют — не проходят поверку.
На фото выше результат одного из моих счётчиков в ванной — 8,4%, это слишком высоко, надо менять. У меня установлены счётчики «Бетар»
То ли
🐱 Кот и весы

У меня дома весы с вайфаем, которые умеют определять кто именно на них становится и добавлять вес в профиль всяких спортивных программ через сеть. Принцип определения профиля довольно простой — по весу, алгоритм устройства исходит из того факта, что при регулярных взвешиваниях вес человека сильно не меняется.
Недавно в нераспознанных значениях появился ещё один участник — коту
Пуговица с острова сокровищ
Вчера попробовал протравить ржавчину ускусом — взял шестипроцентный раствор, долил на четверть воды и положил туда монету на сутки. Позолота с лицевой стороны, к сожалению, почти сошла (её там и так немного оставалось), зато с обратной стала видна надпись.
Это оказалась фабрика Бух. Надпись полностью выглядит следующим образом (буквы «эс» неясно по какой причине оборотные):
| «БУХЪ Buch 1 Сортъ Ƨ PETERƧBURG» |
Фабрика Бух — одна из самый известных пуговичных фабрик России. Была основана в 1816 году
Фабрика ещё потом несколько раз меняла владельцев и название (но фамилия «Бух» в нём неизменно сохранялась), пока не наступила революция.
Подпилил переподсоединялку вайфая
Чуть поменял «переподсоединялку вайфая» для Мака — теперь пингуется не 8.8.8.8 (это ДНС Гугла), а адрес гейта, что более надёжно. Правда с конца октября, когда я её написал много воды утекло — вайфай у меня отваливается теперь очень редко, уж не знаю что изменилось.
🏠 Дом Микляева в Казани (17 век)
Сегодня благодаря Олесе Балтусовой (за что ей огромное спасибо) побывал в так называемом «доме Михляева» (правильно — Микляева).
Во многих современных источниках это здание называется самым старым гражданским зданием Казани и её первым каменным жилым домом. Его постройка датируется концом 17 века, хотя есть мнение, что дом мог достраиваться, а значит некоторые его части могут иметь другую датировку.
Иван Афанасьевич Микляев был настоящим олигархом своего времени — крупнейший в Среднем Поволжье подрядчик вина, крупный заводчик (несколько собственных предприятий и паи), аграрий, речной судовладелец, ростовщик.
В своё время это был известный, успешнейший человек, уважаемый властью. По местной легенде в его доме справлял своё пятидесятилетие Пётр І.
Сейчас Микляева чаще вспоминают как человека, благодаря которому был построен Петропавловский собор — красивейший в Казани, один самых ярких образцов стиля петровской эпохи.
Но вернёмся к дому. В настоящее время он находится на территории швейной фабрики «Адонис» и попасть в него с улицы
Аварийность дома усложняет работы —
Впрочем, дом, очевидно, достраивался и ранее — в одном из углов дома видны клеймённые кирпичи с инициалами «МЧ» («Мария Челышева» — она владела кирпичным сараем при деревне Малые Клыки в конце 19 века), которые в других частях дома на глаза мне не попадались, а в подвале вообще часть стен сложена из тёсанного камня, в отличие от другой, кирпичной части.
Выдаёт
Даже если вы зайдёте в этот дом с закрытыми глазами или не заметите фасад, сквозь казённую краску стен всё равно проступают знаки времени — то старые решётки внутренних окон, то старинная печка, то красивые своды. Очень трудно представить как же красиво было внутри при жизни его владельцев.
Очень хочется, чтобы дом получил второе рождение и радовал жителей Казани ещё ни одну сотню лет.
👅 Болтун — находка для шпиона
Я тут английским занялся плотно в конце прошлого года, репетитор, сериалы с субтитрами, вот это всё. Вчера смотрел очередную серию «Друзей» на английском и, может не к месту, вспомнил свой самый первый опыт устного общения с носителем английского.
Было это в примерно в самом конце
Я как раз сидел в одном из компьютерных классов
Бедный иностранец сидел
Осталось за малым — облечь моё соображение в слова. К сожалению, и это на тот момент мне далось с огромным трудом. Я потерпел полное фиаско, попытавшись сформировать в голове фразу.
Но отвечать
— Slowly! — «Slowly»? Hm… «slowly»… — удивился иностранец.
На этом наш диалог прервался, наткнувшись в самом начале на непреодолимый языковой барьер.
☭ Антисоветская шутка

На картинке нарисована старая антисоветская шутка. Сможете расшифровать смысл?
🎈 Он улетел, но обещал вернуться

Кажется со мной происходит одна вещь, которую очень трудно оценить изнутри. Трудно настолько, что я не понимаю — происходит ли это на самом деле. Вроде
Кажется я теряю интерес к окружающему миру и ухожу в себя. Наверху я вывел график постов в блог (строка кода наверху — это я Пайтоном считал статистику, блог у меня на текстовых файлах работает), снижение отчётливо видно после переезда в Казань. На провал 2005—2007 можно внимания не обращать — если я ничего не путаю, тогда я на ЖЖ переключался.
Мне
Есть и ещё признаки, я не знаю из этого ряда ли. Я нигде не выступаю, не езжу на конференции, сознательно не пишу на востребованные темы, не делаю публичных проектов, все мои новые хобби строго индивидуальны, мне
Возможно я устал от бесконечного троллинга в сети и того, что критика и кидание какашками на порядки превосходят положительные эмоции от общения в интернете (это многолетний тренд), но не всё в это укладывается.
Или в голове у меня произошёл
Первые социальные сети
Итак, первый брак, заключенный дистанционно, с трансляцией в режиме реального времени, по итогам знакомства в социальной сети, — это брак Сары Ортен из Питтсбурга и Томаса Уэлша из Цинцинатти, познакомившихся в телеграфном «чате» (популярное развлечение тех лет) в 1883 году. Приглашение на виртуальную свадьбу получили все, кто в тот момент находился
«он-лайн». Пока священник и жених с невестой телеграфировали друг другу и всем «присутствующим» ритуальные вопросы и ответы, в эфире стояла гробовая тишина; а по окончании церемонии на счастливых новобрачных обрушился настоящий шквал поздравлений от незнакомцев со всех концов страны. Впрочем, первая же встреча «в реале» разрушила семейную идиллию на корню: белая, обеспеченная и «породистая» супруга подумать не могла, что ее избранник мало того что цветной, так еще и цирюльник по профессии.
И обо всем об этом пишет Джей Клейтон в замечательной книжке «Dickens in Cyberspace: The Afterlife of the Nineteenth Century in Postmodern Culture».
Проблема «в интернете никто не знает, что ты кот» существовала уже в 19 веке.
Дерево в цепочках

Я тут в блоге
В общем, там где мне совсем сильно жмёт, я пишу иногда небольшие скрипты. Недавно написал очередной и решил поделиться. Этот скрипт (написан на ПХП7) позволяет развернуть дерево в формате GEDCOM (это общепринятый формат для хранения информации о родословной) в цепочки — то есть простраивает все пути от указанного человека до каждого его предка.
Это позволяет быстро увидеть какие ветки у вас проработаны, а какие нет. Классическое дерево на моих объёмах это уже не показывает — его просто невозможно охватить взглядом и понять где есть проблема.
Для запуска требуются два параметра: нужно указать путь до файла дерева и идентификатор человека, от которого нужно простроить цепочки, его надо посмотреть внутри файла (GEDCOM текстовый формат). Для этого нужно найти внутри запись нужной персоны и выше неё — строку вида «0 @буквыцифры@ INDI», вот часть «@буквыцифры@» и будет требуемым идентификатором.
В последний раз о Кандауровых
О своих предках Кандауровых (или Кондауровых) я писал несколько раз ([1], [2], [3]), сегодня, видимо, напишу в последний, чтобы поставить символическую точку, так как источники кончились, продвижения дальше не будет.

Эта ветка выделяется тем, что она у меня рекордсменка — самый дальний предок жил аж
Я считаю, это очень хороший результат. Именитых предков у меня нет и в этой ветке очень помог затяжной судебный процесс, который попал во множество документов того времени и, как фонарём во тьме веков, выхватил несколько поколений Кондауровых. Едва ли так повезёт ещё раз.
strtr vs. str_replace
Кроме того, часто выход
Среди подобных текстов есть и вредные. Речь об одном из них и пойдёт. Впервые на сравнение производительности функций str_replace и strtr (с одним параметром) я наткнулся очень много лет назад, тогда с ним разобрался и тему для себя закрыл.
Но такие исследования возникают постоянно, а авторы совершенно не утруждают себя ответом на вопрос «почему», так что я решил написать этот небольшой текст.
Итак, есть две функции, которые ведут себя очень похожим образом — заменяют в строке
Обратите внимание на этот код:
$r = ['xo' => 'xaxе', 'xa' => 'xo'];
$s = 'xoxo';
var_dump(str_replace(array_keys($r), array_values($r), $s)); // xoxеxoxе
var_dump(strtr($s, $r)); // xaxеxaxеОчевидно результаты разные, но почему? Потому что str_replace делает замену «в лоб» — проходя строку несколько раз, по числу заданных замен. Поэтому получается «xoxo» → «xaxexaxe» → «xoxexoxe».
Функция strtr куда более хитрая, но работает более… естественным что ли образом — т. е. так как обычно человек ждёт от функции множественной замены. Самое главное — в сделанной замене она уже ничего не заменяет.
Есть и другое отличие:
$r = ['user1' => 'one', 'user11' => 'eleven'];
$s = 'user11';
var_dump(str_replace(array_keys($r), array_values($r), $s)); // one1
var_dump(strtr($s, $r)); // elevenМой пример выглядит несколько искусственно, но это часть случая из жизни, правда очень упрощённого. Тут беда в том, что str_replace применяет свои замены слева направо — в порядке перечисления, тогда как strtr сначала сортирует их по длине.
Как видите, эти функции совершенно разные по своему действию и сравнивать по производительности их просто некорректно.
Слово «имплантат» устарело
Слово «имплантат» умерло. Я намедни зубы лечил, побывал в двух клиниках, в обеих разговор шёл об «имплантах» (обсуждали, что делать с одним моим сложным зубом), спросил у обоих медиков — почему они имплантаты называют «имплантами», оказывается, их специально переучивают так говорить.
Пора и мне переучиваться, видимо. Глупо сопротивляться, если основные пользователи понятия переучиваются на другое слово. Не могу не заметить, что «имплант» звучит более логично, так как соответствующий глагол — «имплантировать», а не «имплантатировать».
Новое Исаково Бугульминского района
Сегодня произошло примечательное событие — я получил дореволюционную фотографию усадьбы помещика Шулешкина из сельца Новое Исаково (ныне Бугульминский район) — в этом сельце жила семья моего прапрадеда с маминой стороны, крепостного крестьянина Павла Степановича. Фотографию прислал потомок тех самых Шулешкиных.
Фото примечательно тем, что дореволюционных фото этого поселения в интернете нет в принципе, остаётся надеяться только на персональные архивы, которые могли
Так как документов исчезающе мало, с трудом,
Год образования Нового Исакова точно мне неизвестен, но наличествующие материалы дают временную вилку 1834—1850. Верхнюю границу даёт Самарский архив, где я нашёл бумаги переписи 1850 года, нижнюю даёт отсутствие такой же переписи в бумагах
Кстати на этой карте Старое Исаково называется «Васильевская», похожее название — «Васильевка» имело, согласно бумагам Новое Исаково. Я обозначил его будущее расположение, оно легко угадывется по расположению рек:
Как произошло, что два разных населённых пункта, находящихся под боком друг друга, имели такие похожие названия? У меня есть теория, которая может это объяснить.
По всей видимости «Лисьи Горы» — название усадьбы, такой вывод можно сделать из заголовка архивного дела «Документы о ссуде, просимой потомственным дворянином Василием Ивановичем Аничковым, под залог имения при с. Исакове, Лисьи Гирей».
В Самарском архиве есть запись 1799 года о владении «лисьихъ горъ кадета василья исакова — (муже) 77 (женина) 75». Очевидно фамилия Василия Исакова стала названием населённого пункта, а имя — притяжательным названием имения.
Т. е. усадьба Лисьи Горы (чья?) — Васильевская, по имени владельца. Что и написано на карте 1805 года. А название «Исаково» есть на карте 1792 года (что, кстати, даёт верхнюю границу основания этого поселения):
В бумагах 1816 года Василий Исаков уже не упоминается, там владелицей обозначена его родственница Анна Никоноровна Аничкова (в девичестве — Исакова). 8 сентября 1838 года Старое Исаково переходит в наследство её сыну — Василию Ивановичу Аничкову, о чём есть запись на обложке ревизии 1850 года.
А на обложке ревизии Нового Исакова того же года о передаче в наследство не написано, поэтому я считаю, что Василий Иванович и основал это сельцо, перенеся туда свою усадьбу, которая стала называться Васильевка, по его имени. Старая же усадьба вернула себе историческое название — Лисьи Горы.
В 1907 году «потомственный почетный дворянин, проживающий в деревне
Судя по бумагам 1940 года, после революции в Новом Исакове была организована сельскохозяйственная артель «Прогресс», где работали мои предки. Сейчас это маленькая, ничем не примечательная деревня Бугульминского района.