HA
Сначала немного не по теме.
Все файлы на виртуалку я переношу через образ дискеты
dd if=/dev/zero of=floppy.img bs=1024 count=1440
diskutil eraseVolume MS-DOS VOLUME `hdiutil attach -nomount floppy.img`
hdiutil attach floppy.imgПоследняя команда смонтирует получившийся образ, после чего можно записать туда любые файлы.
Как справедливо напомнили читатели в комментариях к моему эксперименту c ARJ,
Для тестирования я выбрал форк архиватора, с которым сталкивался во времена интереса к языку программирования
PHP: доступ к приватным свойствам
Кинули ссылку на один из способов получения доступа к приватным свойствам в ПХП, тут создаётся функция, которая вызывается в контексте объекта с закрытым свойством:
function inspect_closure(object $o, string $p)
{
return (function () use ($p) {
return $this->$p;
})->call($o);
}Я решил вспомнить сколько таких способов вообще существует в ПХП.
Сначала, очевидно, на ум должен прийти рефлекшн, ведь он для этого и предназначен:
function inspect_reflection(object $o, string $p)
{
$refClass = new \ReflectionClass(get_class($o));
$refProp = $refClass->getProperty($p);
$refProp->setAccessible(true);
return $refProp->getValue($o);
}Теперь экзотика. Например, мне вспоминается доступ через преобразование в массив, я о нём уже однажды писал. При преобразовании объекта в массив его приватные и защищённые свойства видны по специальным именам в полном соответствии с документацией:
function inspect_array(object $o, string $p)
{
return ((array) $o)[
sprintf("\0%s\0%s", get_class($o), $p)
];
}Последний способ самый спорный. Не работает с анонимными классами и объектами, в свойствах которого лежат анонимные функции. А ещё от него легко защититься, если закрыть магический метод, отвечающий за сериализацию.
По сути — родственник предыдущего метода. При сериализации все закрытые свойства в объекте сохраняются под теми же специальными именами, что в предыдущем способе:
function inspect_serialize(object $o, string $p)
{
$class = get_class($o);
$serialized = serialize($o);
if (preg_match("/s:\d+:\"\\0{$class}\\0{$p}\";([^;]+;)/s", $serialized, $m)) {
return unserialize($m[1]);
}
throw new \UnexpectedValueException('Something went wrong.');
}Конечно такую регулярку очень легко обмануть, более корректно было бы написать парсер, но для иллюстрации принципа, думаю, вполне годится.
99 бутылок: Zephir
69. Zephir — язык программирования, созданный для написания модулей расширения PHP и являющийся его сателлитом. Текущая версия (0.12.2) содержит несколько багов, с которыми пришлось столкнуться при написании программы. К счастью, перед компиляцией «Зефир» транслируется в Си, поэтому разобраться в происходящем труда не стоило.
Язык со сборкой мусора, использует как статическую, так и динамическую типизацию. Последняя необходима, например, для сохранения результата вызова пользовательских методов, похоже транслятор пока не умеет опираться на подсказку возвращаемого типа, поэтому требует в таких местах динамическую типизацию.
По синтаксису «Зефир» явный наследник ПХП, но выглядит почище — без «долларов» в именах переменных (которые многих раздражают) и скобок в управляющих конструкциях
К сожалению, реализация языка пока сыровата — на первые баги я наткнулся в первые десять минут программирования, а сообщения об ошибке синтаксиса предельно лаконичны — показывается только строка, в чём ошибка заключается приходится разбираться самостоятельно.
«Песня о пиве» на «Зефире» выглядит следующим образом:
// Beer song by Evgeny Stepanischev
// song.zep
namespace Beer;
class Song
{
private static function format(int bottles) -> string
{
string result = "";
switch bottles {
case 0:
let result = "No bottles";
break;
case 1:
let result = "1 bottle";
break;
default:
let result = "%d bottles"->format(bottles);
}
return result . " of beer";
}
public static function sing() -> void
{
int bottles = 99;
var botStr = self::format(bottles);
while bottles > 1 {
echo "%s of beer on the wall, %1$s of beer.\n"->format(botStr);
let bottles--;
let botStr = self::format(bottles);
echo "Take one down and pass it around, %s on the wall.\n\n"->format(botStr);
}
echo "No more bottles of beer on the wall, no more bottles of beer.\n",
"Go to the store and buy some more, 99 bottles of beer on the wall.\n";
}
}Поскольку язык используется для написания расширений, а не самостоятельных программ, написанному выше надо помочь запуститься:
zephir build
php -d extension=beer.so -r 'Beer\Song::sing();'Мениск
На «Реддите» вовсю обсуждают вещи, о которых узнали очень поздно. Я тут тоже
Открытие недели — мениск бывает не только в колене (и даже там их два)! Оказывается в человеческом организме менисков немало, кроме колена, они находятся так же
Кроме того, мениском называют несколько
Кирпич «АК»
Пока был в отпуске, один из друзей прислал фотографию кирпича, который нашёлся во дворе его дома в Казани. Дом старинный, кирпич, по виду — тоже. Очень необычное место расположения клейма — на постели, это редкость, обычно они у нас на тычке.
На роль производителя у меня только одна кандидатура — крестьянин Алексей Калугин, кирпичный завод на Арском поле которого в 1894—95 годах упоминается в источниках. Завод основан в 1885 году, производил по 300 тысяч кирпичей и работало на нём девять человек.
Гиря братьев Рекшинских
Недавно один из чердаков обогатил меня старинной гирей в два фунта (818 грамм, если верить нашим кухонным весам). С одной стороны у неё клеймо с весом («2Ф» — два фунта) и производителем («БР. Р», гирю выпустил завод братьев Рекшинских), с другой — изображение двух сторон медали, которую Рекшинские получили за свою продукцию в 1886 году на одной из выставок. На изображении аверса сокращённая надпись «За трудолюбие и искусство» и год получения медали, на реверсе — портрет Александра Третьего.
Рядом с изображением медали легко заметить медную пломбу с цифрами, это поверочное клеймо — свидетельство об успешно пройденной поверке, способ борьбы государства с обвесом покупателей.
На странице 214 справочника А. И. Гуляева «Торговля и торговыя установленія» читаем:
Вновь изготовляемыя металлическія гири должны быть снабжены особою вывѣрочною пробкою изъ красной мѣди, для наложенія на нее клеймъ.
Поверочные клейма стали ставить на гири ещё в 12 веке, но до 1899 года в этом вопросе был полный бардак — поверка производилась нерегулярно, часто — единственный раз, в момент изготовления, пошлина за услугу была в каждом городе своя и так далее.
На моём фото поверочное клеймо образца 1907 года — тогда его изменили на торговых гирях с орла на инициалы императора («Н II» — «Николай Второй») и корону. Цифра под короной — номер поверочной палатки (отделения Палаты мер и весов, осуществившего поверку), а «08» — год проведения процедуры (1908).
В моём случае номер поверочной палатки — «6», это палатка Нижнего Новгорода, где и располагался один из заводов Рекшинских.
(A)
Увидел в тексте правительственной телеграммы непонятную штуку — букву «А» в скобках: «(А)».
По контексту догадался, что это «@», но не сразу понял откуда такое обозначение. Лишь чуть позже дошло, что «@» — «„а“ в кружке́ », кружок показали скобками, а так как в телеграмме всё набирается прописными буквами, то и получается такое странное сочетание знаков.
42
Сегодня у меня день рождения. Мне сорок два.
В этот день я обычно составляю список того, что изменилось за время, прошедшее с предыдущего раза. Но сегодня по разным причинам у меня был очень непростой день, так что мелькнула малодушная мысль не начинать этот пост вовсе. Наперекор всему постарался собрать остатки воли в кулак и бегло свести основные события в этот краткий перечень.
- прочитал 39 книг, это на три книги больше, чем в предыдущем году;
- продолжил исследование кирпичных клейм — рассмотрел кирпич Летягина в Самаре, казанские НА, НБ, КЛЗ, ТБ и АК;
- пока незаслуженно обхожу вниманием страховые доски — знаю четыре места, куда надо дойти с фотоаппаратом, но добрался только до одного;
- внёс небольшой вклад в проект mozjpeg — теперь он нормально собирается под седьмую ЦентОС;
- в очередной раз побывал в Самаре, съездил в четвёртый раз в Турцию;
- попробовал в деле ассемблер процессора 6502
(когда-то он использовался в первом компьютере компании «Эпл»); - написал считалочку про пиво на языках «
Эль-76 », «Юᓂ곧⎔», «Zephir», калькулятора «DC», ассемблере процессора 6502, ; - раздобыл для музея вычислительной техники «Партнёр•01.01» и несколько допотопных калькуляторов (надо бы их сфотографировать, кстати);
- впервые подключился к ФИДО,
да-да, в 2019 году! - занялся патефоном дедушки жены, удалось найти очень хорошего мастера, который смог его восстановить;
- запустил наш продукт под архитектуру POWER8, для этого пришлось изобретать нетривиальные способы сборки пакетов;
- успешно прошёл курс университета Иннополис по алгоритмам машинного обучения;
- выложил две части своих «дневников жизни», планирую заняться остальными;
- пользуясь необычным обмелением Волги в этом году, погулял по показавшейся из воды старинной Казани и поучаствовал в миниэкспедиции
военно-поискового отряда на болота в Спасском районе; - попробовал флоатинг, пока только часовую продолжительность, планирую расширить свой опыт до трёх часов;
- журнал «Форбс» взял у меня интервью касаемо одного из старых проектов;
- побывал в
офлайн-лагере , опыт оказал на меня такое большое влияние, что я до сих пор не могу осознать его полностью; - двухлетние занятия в спортзале с тренером наконец дали, на мой взгляд, очень ощутимые плоды в плане реабилитации повреждённой
когда-то на спортивной гимнастике спины;
Любящий вас, Лёв Толстой
От Льва Николаевича Толстого осталось немало аудиозаписей начала 20 века.
Часть из этого — надиктовка различных произведений, другая часть — аудиопереписка. Например, вот письмо Николаю Васильевичу Давыдову, юристу, общественному деятелю и другу Льва Николаевича:
Слышно плоховато (ещё бы — 1908 год, записано на фонограф), поэтому вот расшифровка:
Милый Николай Васильевич, опять к вам с просьбой. Прилагаю обвинительный акт, написанный против одного близкого мне человека. Прилагаю и его письмо, чтобы вам дать понятие о том… о самом человеке. Что мне делать? Мой план такой, двоякий: или самому поехать в Петербург, вызваться за… быть защитником его, или подать заявление, в котором выразить, что книги получены им от меня, что книги… если кто виноват, то я, и кого судить, то именно меня. Книги я получаю от издателей. И когда их просят у меня, то раздаю тем, кто их просит. Как поступить в этом случае? Научите меня и составьте, если можно, такое заявление или посоветуйте ехать самому в Петербург и быть защитником.
Жду ответа.
Любящий вас Лёв Толстой.
Из этой аудиозаписи мы, в частности узнаём, что Толстой называл себя Лёв, о чём я уже писал.
Слушая эти записи, никак не могу избавиться от картинки в голове, в которой Лёв Николаевич берёт со стола смартфон, открывает «Вотсапп», дальнозорко щурясь, находит в контактах «Николай Васильевич (юрист)» и записывает ему голосовое сообщение — потому что печатать долго, а зрение уже не то.
Дневник жизни №3 ★
Продолжаю перепечатывать свои дневники жизни — я уже выкладывал тетради №4 и №8, на этот раз перепечатал дневник №3. Это самый конец 1991 года, в тетради — подростковый бунт, моё бесценное мнение по развалу Союза, увлечение паранормальными явлениями, эксперименты с алфавитом и изобретение собственного способа отображать эмоции в тексте.
Казанский феномен
Сейчас очень многие говорят о возвращении
Цитата из «Википедии»:
В конце
70-х — начале80-х годов XX века в средствах массовой информации и юридической литературе СССР появилось понятие «казанский феномен». Подростки из рабочих слободок с окраин Казани объединялись в молодёжные банды, носившие имена по названиям районов или улиц, на которых проживали члены данных группировок. Они начинали «делить асфальт», т. е. захватывать территории.
Своего расцвета «казанский феномен» достиг в 1978 году, когда члены ОПГ «Теплоконтроль», более известные как
«Тяп-Ляп», организовали ряд пробегов по Казани, насмерть забивая любых встречных. Правда, после этого с группировкой быстро покончили. Нескольких членов «Теплоконтроля» приговорили к смертной казни через расстрел.
Судя по описаниям этого феномена,
Эта тема меня
Пока успел только полистать по диагонали, в самом конце углядел «Словарь казанских подростков», а там сленговое слово «автор».
Это слово мне помнится ещё со времён школьных разборок (я закончил школу
Чувствую, при изучении этой субкультуры меня ещё ждут сюрпризы.
Эколингвист ★
Нашёл совершенно бомбический ютубовский канал «Эколингвист» — парень живёт в Польше и делает ролики про различия польского и других славянских языков. Для этого он связывается с носителями и они пытаются, разговаривая каждый на своём языке, понять друг друга.
Из роликов мне показалось, что поляки и чехи понимают друг друга без особых проблем, а русскому понять польский тяжелее, чем украинцу. Правда в ролике
Когда читаешь, понимаешь, что «pomaga w leczeniu chorych» — это «помогает в лечении хворых», а «pigułki» — «пилюльки» («пилюли», «таблетки»), но на слух это воспринять значительно сложнее.
Отдельной строкой меня поразил эксперимент общения на «интерславике» («межславянском») — это полуискусственный язык с упрощённой грамматикой, состоящий из слов, которые понятны большинству носителей славянских языков.
Кажется, что даже ничего учить не надо, если вы немного знакомы с украинским и церковнославянским или знаете
Отче наш, кторы јеси в небесах, нехај свети се име Твоје. Нехај пријде кральевство Твоје, нехај буде вольа Твоја, како в небу тако и на земји. Хлѣб наш всакоденны дај нам днес, и одпусти нам наше грѣхы, тако како мы одпушчајемо нашим грѣшникам. И не введи нас в покушенје, але избави нас од злого.
Попробовать свои силы в чтении можно на сайте Википедии на межславянском.
Возвращаясь к эксперименту. В ролике болгарин, поляк и хорват пытаются выполнить задания (prikaz), озвучиваемые на межславянском. Меня очень развлекло, krasiva zabava.
Пока смотрел, тоже пытался разобраться, что за задания даются, наибольшие трудности у меня вызвал выбор пальца в одном из задании, никак не мог сообразить, какой prst у меня velik — большой или средний. Забавно, что у хорвата возникла та же проблема.
С ком приветом из 1928 ★
В последнее время
На сегодняшней фотографии — письмо, в которую была завёрнута катушка для печатающей машинки (про это ещё напишу отдельно). Обратите внимание как интересно написана буква «К».
В книге памяти Татарстана удалось найти репрессированного Трохимуса Ромуальда Ивановича 1923 года рождения, возможно это сын человека, написавшего это письмо.
Приняв эту шаткую теорию за отправную точку, на сайте «Память народа» находим подходящую кандидатуру на роль автора — Трохимуса Ивана Петровича, литовца по национальности. Место его рождения — Ленинград, совпадает с дислокацией одного заводов «Красный Октябрь» (это название упоминается в письме). На момент написания письма ему должно быть около 38 лет.
К сожалению, в рунете по этой фамилии ничего больше нагуглить не удалось. Во всемирном интернете тоже, но я подозреваю, что я просто неправильно записал «Трохимус» латиницей — не знаю как пишутся литовские фамилии, мои варианты — trohimus и trokhimus.
Добавлено позднее: на основании комментария читателя исправил национальность с латыша на литовца.
Советский метро
Удивительно, но «метро»
Ещё небезынтересная цитата об истории метро из той же книги:
Но вот в 1902 году Москва была потрясена неожиданным событием. Компания американских предпринимателей во граве с мистером Гофом получила разрешение правительства исследовать почву Москвы на предмет проведения в столице подземной дороги.
В Лондоне подземная дорога действовала уже свыше 40 лет. Первое время под землей ходил паровоз с вагонами, удушливый дым окутывал всю трассу тоннеля, все станции. Позже паровые поезда были заменены электрическими. Но названия «метрополитен» еще не существовало. Подземная дорога нанесла чувствительный удар по всем другим видам городского транспорта Лондона — дилижансам, трамваям, извозчичьим кэбам.
Подземная дорога в Парике была построена незадолго до появления Гофа в России. Строила ее фирма «Метрополитен», откуда и пошло название каждой подземки — метрополитен, или как сокращению окрестили его парижане — метро (точно так же, как трамвай парижане называют «трам», слово же «трамвай» — от фамилии строителя лондонской конки Уитрам).
Если бы не сопротивление олигархов и духовенства, метро могли проложить в Москве намного раньше — первый проект появился ещё в 1875 году и потом к идее возвращались ещё несколько раз.