Три новые старые статьи
Свой собственный сайт появился у меня в ноябре 2000 года, кажется по адресу bolk.chat.ru. Позже мы познакомились с Алексом Экслером, который предложил хостится у него по адресу bolk.exler.ru,
Естественно моё присутствие в интернете началось не в 1989 году, но и до двухтысячного года
Недавно, перевёрстывая некоторые старые заметки начала
Точные даты публикаций, к сожалению, неизвестны, но я восстановил примерные, ориентируясь на дату появления моих заметок на сайте
Что нового в JavaScript версии 1.3 от Netscape
Найди картинку. Неизведанные возможности
Блоки try… catch… finally… в JScript 5
Cookie в PHP 7.4
Обнаружилась очень странная проблема у меня на сайте — некоторые комментаторы стали подписываться с плюсом между именем и фамилией. В первый раз я решил, что у человека это вышло случайно или, может, это
Выяснилось, что плюс появился сам собой, люди его и не думали ставить. Так я понял, что столкнулся
В чём примерно дело, понятно стало почти сразу — в вебе пробел иногда кодируется как «+», видимо ошибка
Проблема воспроизводится у тех комментаторов, которые оставили свой первый комментарий до того, как мой сайт перешёл на ПХП 7.4. В этой версии сменился способ кодирования пробела в «куках» (см. на скриншоте) — был +, стало %20.
В принципе, можно вернуть
if (strpos($_SERVER['HTTP_COOKIE'], '+') !== false) {
parse_str(strtr($_SERVER['HTTP_COOKIE'], ['; ' => '&']), $_COOKIE);
}Но хорошо бы внедрить в движок блога код, который будет перекодировать такие куки у пользователей.
FFI: баг не будет исправлен?
В пхпешном FFI есть баг — можно, вызывав сишную функцию случайно изменить значение совершенно других переменных
Очень не хочется это признавать, но похоже тот баг, который я обнаружил в реализации FFI (интерфейса к языку Си) в ПХП, исправлен не будет. Собственно, на это мне давно указал один из читателей в комментариях к прошлой заметке на эту тему, но мне всё не верилось.
В тикете, который я завёл по проблеме, один из разработчиков языка написал, что придерживается мысли, что это преднамеренное проектное решение. Не думаю, что это действительно так, наверняка получилось случайно, но как всё поправить, не снизив существенно производительность модуля FFI, — неясно.
Видимо, придётся жить с тем, что есть.
В прошлый раз, в качестве временной меры, я предлагал использовать str_repeat (или эквивалент) для того, чтобы разорвать запутанность двух переменных и таким образом предотвратить неожиданное их изменение. Это плохой приём, но я его задумывал в качестве временной меры.
Но раз это навсегда, давайте избегать сторонние эффекты правильно. Тот же читатель предлагает более корректный способ:
Первый параметр memcpy должен быть указателем на отдельно выделенную память достаточного размера. И в FFI есть метод для выделения памяти: FFI::new. Его и надо использовать вместо str_repeat.
Таким образом правильная работа с указателями должна выглядеть примерно вот так:
function memcpy(?string &$dst, string $src):void
{
$len = strlen($src);
// изготавливаем тип, в котором уместится копируемая строка
$type = FFI::arrayType(FFI::type('char'), [$len]);
// выделяем место под изготовленный тип
$destination = FFI::new($type);
FFI::cdef('char *memcpy(char *dst, const char *src, size_t len);')
->memcpy($destination, $src, $len);
// преобразуем область памяти в строку
$dst = FFI::string($destination, $len);
}
$rock = "ROCK";
var_dump($rock); // «ROCK»
memcpy($rock, "SOCK");
var_dump($rock); // «SOCK»Что тут происходит?
Мы хотим вызвать сишную функцию для копирования одной строки в другую. В месте, куда мы собираемся копировать, должно быть выделено достаточное количество памяти, мы её выделяем методом FFI::new, передавая ему на вход специально изготовленный тип — указатель на массив однобайтовых символов длиной c копируемую строку.
После копирования преобразуем область памяти в пхпешную строку. Память, выделенная при помощи FFI::new, освободится автоматически.
«Пурген»
«Пурген» — ещё один
В СССР «Пурген» использовали, кстати, не только как слабительное — девочки смешивали его с канцелярским клеем (от чего он становился цвета фуксии) и красили им ногти, а мальчики делали «невидимые чернила», которые проявлялись от контакта с лимонным соком или тем же канцелярским клеем.
И вот, на одном из чердаков, среди обрывков других бумаг, нашёлся клочок с рекламой «Пургена» компании «Доктор Байер». Сохранность была похуже, чем вы сейчас видите — пришлось дорисовать нейросетями рамку слева и сверху.

Подпись владельца компании на бумагах на «Пурген», 1908 год
Я было подумал, что производитель, упомянутый тут, — известная сейчас компания «Байер» (поэтому его и взял), но нагуглил более полную версию рекламы:
Никуда негодную поддѣлку и фальсификаты содержатъ всѣ тѣ коробки, которыя не снабжены синей бандеролью съ русской надписью и на которыхъ внизу на крышкѣ не помѣщена фирма Dr. Bayer és Társa Budapest. Коробка 65 коп., во всѣхъ аптекахъ.
Компанией «Dr. Bayer és Társa Budapest» (с венгерского «Доктор Байер и партнёр, Будапешт») управляли, по всей видимости, довольно известные в то время у себя на родине фармацевты — сначала Анталь Байер, потом его сын — Анталь
Автоматы газировки
Из «Фейсбука», из поста про коронавирус и многоразовые стаканы в советских автоматах газированной воды, хочу вынести интересное воспоминание о временах СССР. Текст ниже не мой.

Стакан газированной воды без сиропа стоил 1 копейку, с ним — 3
Знавал я в те далёкие времена весьма приблатнённого товарища, в обязанности которого входило обслуживать эти автоматы. Помню, некоторые тонкости из его рассказов. Выручку они принимали весом. Ссыпая в пластмассовое ведро и взвешивая безменом (молодому поколению поясню: вес монет СССР 1 коп — 1 грамм, 3 коп — 3 грамма).
Возили полный багажник «семёрки» гранёных стаканов в упаковке. Цена которому была 7 коп. Целый день крутились по району, снимая выручку, и выставляя новые стаканы на автоматы. Поскольку их стабильно воровали любители выпить на природе. А если случалось чудо, то в конце смены стаканы они забирали и протирали «тройным» одеколоном. Целая наука.
Поскольку это была конкурентная среда, товарищи эти блюли стандарты «фирмы». Пытаясь в выгодную сторону отличаться от конкурентов. Так вот, у каждой «бригады» был свой рецепт сиропа для газировки за 3 коп. Варили его сами. Из карамелек.
Специальная должность была для этого. Человек старался, проявлял творчество и фантазию. Хранили свой фирменный рецепт, из каких конкретно карамелек варят и соотношения ингредиентов — не хуже, чем
Столетние семена
Ещё до карантина исследовали небольшой командой один деревянный дом в городской черте — смотрели ремонтопригодность и искали артефакты, которые хорошо бы сохранить, если дом пойдёт под снос. Нашли массу всего, некоторые вещи довольно любопытные, одна из них — пакетик семян дыни.
Судя по орфографии и бумагам с датами, которые лежали рядом, пакетик начала двадцатого века, точнее — нулевых годов, то есть ему более ста лет.
Реставратор, который был с нами, взял семена себе — попробовать прорастить, вдруг получится? К сожалению, не получилось — контрольная группа из семян огурца уже пустила корешки, а эти как лежали, так и лежат, видимо окончательно погибли.
У нас ни у кого не было опыта с настолько старыми семенами, так что попробовать было интересно. Впрочем, если бы
Кстати, реклама «Восточной флоры», где был пакетик был куплен прошлым владельцем, легко находится на пятнадцатой странице издания 1907 года «„Вся Волга“. Коммерческій справочникъ и общій
Оттуда мы узнаём, что в магазине был громадный выбор пальм, араукарий и цветочных растений, полный ассортимент цветочных, огородных, сельскохозяйственных и других семян, а так же адрес магазина — Николаевская площадь, дом Головиной (с адресацией тогда в Казани было всё очень плохо). Дом, кстати, существует и поныне, современный его адрес — Лобачевского, 6/27.
Управление увлажнителем
Один из читателей в комментариях под заметкой о климатических датчиках Сяоми подсказал хорошую идею — настроить автоматизацию так, чтобы при открытии окна увлажнитель в комнате выключался. А то есть проблема — начинаю проветривать, влажность моментально падает и увлажнитель трудится впустую.
У меня как раз есть один свободный датчик открытия двери/окна, который шёл в комплекте с хабом, я всё не знал куда его применить.
Наклеил в спальню на балконную дверь (окно там не открывается). При открытии или закрытии двери датчик подаёт сигнал хабу по протоколу «ЗигБи», а хаб умеет программироваться на исполнение различных сценариев автоматизации.
Создал два сценария: выключение увлажнителя, если дверь открыта более минуты и включение, если закрыта. Увлажнитель той же фирмы «Сяоми», поэтому проблем увязать всё вместе не возникло. Кстати, мы им настолько довольны, что заказали сегодня второй, пока цены не поползли за долларом. Как раз начался апрель и мой ежемесячный бюджет на «умный дом», исчерпанный в прошлом месяце, возобновился.
Восстановление фотографий
Попробовал на днях программу для восстановления фотографий нейросетями, которую все очень хвалят. В качестве объекта для эксперимента взял одну из фотографий прабабушки с двумя двоюродными бабушками. Она хорошо подходит — изначально не очень качественная и крепко побита временем за почти 80 лет.
Я всё ищу того, кто бы мог взяться за её восстановление вручную, но никак не найду подходящую кандидатуру. Посмотрим чем мне может помочь искусственный интеллект.
Всю фотографию смотреть смысла не имеет, я выделил характерный кусок — одно из лиц. Если смотреть абстрактно, результат потрясающий — слева оригинал, справа «восстановленное» изображение: убран шум, многократно увеличилась чёткость, появились детали.
Проблема только в том, что слева и справа два разных человека, похожих, но не идентичных. После обработки, глаз увеличился и раскрылся, губы стали полнее, скулы — у́же, появилась чересчур взрослая, чёткая бровь, изменилась форма носа, лицо стало более «мальчиковым». Понятно почему так — нейросеть запомнила очень много кусочков
Поскольку с этой программой сейчас многие балуются, должен сказать, что такие изменения есть на большинстве фотографий, если не на всех. Беда в том, что пользователей результат устраивает, искажениями они готовы пренебречь. Мне кажется, это неправильно и нечестно по отношению к тем, кто на фотографиях.
Технологии совершенствуются, пройдёт совсем немного времени, и эти недостатки будут устранены, поэтому хочу призвать хотя бы не избавляться от оригинала — позже по нему можно будет восстановить фото с бо́льшей достоверностью.
Пока эта программа и ей подобные — игрушка на раз, поиграть и забыть. Но как демонстрация того что искусственный интеллект сейчас умеет делать с изображениями — очень здорово.
Карантин
Страна движется к карантину — в столице уже ввели, у нас в Казани, слухи обещают, введут завтра. Весь день с дочкой никуда не выходили, только жена выезжала за продуктами, говорит на улице народу мало, почти все — в медицинских масках.
Сегодня работали в режиме дежурств (работают только дежурные, у нас такой режим принят в праздники), с завтрашнего дня будем работать удалённо всем офисом. У нашей компании это первый опыт, думаю будет сложновато. С учётом того, что садики закрыты и дома у многих дети, которые требуют внимания, у меня большие сомнения в эффективности такой работы. Жена теперь тоже на удалёнке, так что нас ждут те же проблемы, — дочка у нас, конечно, умница, но рабочий день наедине с собой она проводить не привыкла.
Наш садик, кстати, в отличие от большинства, предлагает хоть
Не до конца понимаю будет ли это работать на самом деле, но сказали, что есть успешный зарубежный опыт. Если получится, это конечно снимет часть проблем.
Лавровый лист завода им. Семашко
Вкратце: на снимке раннесоветская этикетка лаврового листа 1924—1931 годов
В этом году
Например, разбираю чердачные артефакты. В этот раз из кучи выудил на свет божий вырванную
Как видим, лавровый лист произведён государственным

Роман Романович Кёлер — промышленник, основатель российской фармацевтической промышленности,
Роман Романович открыл свою фабрику в 1882 году, положив таким образом ни много ни мало начало фармацевтическому производству в России. Продукция предприятия Кёлера была удостоена высших наград
В 1918 году предприятие национализировали, а в 1928—1932 года перепрофилировали и модернизировали, был прекращен выпуск парфюмерных и косметических изделий. Фабрика несколько раз меняла названия и в настоящий момент известна как ОАО «Мосхимфармпрепараты» им. Н. А. Семашко».
Надпись «Госмедторгпром» («Государственная торговля медицинским промышленным товаром») — акционерное общество химической промышленности, объединяющее пять заводов, включая, как легко догадаться им. Н. А. Семашко. Существовало оно всего несколько лет, что очень удачно, потому что даёт этикетке довольно узкую временную вилку — 1924—1931 годы.
«Санистероль»
Сегодня пять часов провёл на чердаке одного из заброшенных домов, находок много, часть успел помыть, расправить, атрибутировать, очень доволен, только устал, как собака.
В одной из притащенных в ворохе газет увидел рекламу противомикробного средства «Санистероль»,
В те же годы он, видимо, славы не снискал — название почти не встречается в интернете, за исключением
Оттуда мы узнаём, что средства «Санистероль» и «Санадерма» принадлежали Симону Цивьяну, который выпускал их в Женеве. Предприятие Цивьяна производило шампунь, крем, рисовую пудру, мыло, лосьон для волос, средства для гигиены кожи, зубную пасту и порошок, антисептик, косметику и парфюмерию.
Правда я не уверен, что это одно и то же средство — в моей вырезке «Санистероль» американский, впрочем в газетах чего только не пишут!
Детская частная жизнь ★
Вкратце: есть ли у вас
Раньше мы очень много снимали дочку на видео — как она играет, гуляет, делает
Сейчас дочь всё чаще запрещает — «папа, не снимай, не хочу». Конечно я останавливаюсь и отснятое стираю. Тенденция, разумеется, продолжится, вплоть до полного вето, хотя это и грустно, — возможно взрослой ей захочется взглянуть на себя в детстве, и она будет жалеть об этом запрете.
Но эти видео — история
Теперь же я задумался над тем как и что писать о дочке тут — как она отнесётся к написанному, когда вырастет и существует ли уже такое явление как травля одноклассниками/одногруппниками за выложенное родителями в интернет?
Те, чьи похождения родители выкладывали в «Инстаграмм» в самом его начале, уже учатся в третьем классе, а блоги вообще существуют более 20 лет! Их фигуранты уже могут и своих детей позорить
Расскажите что вы считаете возможным выкладывать на публику о своих детях, а что у вас под запретом? Были ли конфликты с детьми на эту тему? Была ли травля сверстниками по мотивам того, что вы выкладывали? Хочу изучить чужой опыт, прежде чем вырабатывать
Климатические датчики
В составе «умного дома» у нас в четырёх помещениях есть по климатическому датчику (для измерения температуры и влажности). Честно говоря, когда покупал их, не предполагал, что мы будем так часто ими пользоваться.
После установки датчиков выяснилось, что с климатом дома у нас проблема — очень жарко (часто выше 25°) и сухо (менее 25%). Конечно мы делали проветривание и у нас есть увлажнители, но первое мы делали бессистемно, а вторыми пользовались нерегулярно — проблема с влажностью не всегда ощущается, ориентироваться не на что.
В то же время поддерживать естественную влажность важно — в условиях низкой влажности не работает слизистая носа, которая защищает нас от части бактерий и микробов. Для этого она выделяет слизь, содержащую три защитных белка́: лизоцим, разрушающий клеточные стенки бактерий, интерферон, запускающий в организме противовирусные реакции, и лактоферрин, обеспечивающий иммунный ответ клеток.
В принципе, чтобы понять есть ли проблема с влажностью, можно сверяться с состоянием собственного носа — если внутри образуются «корочки», то влажность надо поднимать. Но я так и не научился обращать на это должное внимание.
Температура воздуха дома, насколько я знаю, влияет на качество сна и на общее самочувствие. Стоит поддерживать её в рекомендованных пределах, но я пока не успел понять есть ли
В итоге, теперь мы постоянно смотрим на датчики, чтобы понять когда стоит открыть окна и не пора ли залить воду
Люк Ржевского Л-М завода
Под ногами жителей многих российских городов лежат мало кем замечаемые канализационные люки, заставшие ещё царизм. Казани повезло куда меньше — тут насколько старых люков нет вообще, в основном лежат современные, но иногда встречается
На этот раз моё внимание привлёк люк, выпущенный Ржевским
ГОСТ
Выпустивший люк Ржевский
РСФСР МЖГС — расшифровывается как Министерство
В итоге получается временной промежуток с 1947 по 1954 год.
Переименование улиц
Понимаю, что уже сильно запоздал с этой мыслью, но в голову пришло, захотелось записать. В борьбе с советским прошлым переименованием улиц, вполне можно было бы подыскивать на те же фамилии других людей. Сэкономили бы на табличках и людей не напрягали бы сменой регистрации.
Не всегда это возможно конечно, но в большинстве случаев, думаю, получится. Например, если
Советская махорка
Сегодня повезло выбраться на один из чердаков, улов ещё надо разобрать, но уже видно, что в основном там малоинтересные бумаги. Зато вынутый из кучи наугад смятый грязный комок, после чистки сухой зубной щёткой и мытья пульверизатором, оказался пачкой махорки 1925 года. Через пять лет ей исполнится 100 лет!

Махорка — смесь измельчённого листа и стебля растения, называемого махорка, имеющего в своем составе алкалоид никотин.
Судя по упаковке, мне попалась пятидесятиграммовая пачка махорки, выпущенная в 1925 году Моршанской махорочной государственной фабрикой. Моршанск — это город на севере бывшей Тамбовской области, административный центр Моршанского района.
Моршанская табачная фабрика открылась в 1882 году, владельцами её были купцы Белоусов и Дмитриев. Уже в начале 20 века она была включена в реестр крупнейших предприятий губернии. После 1917 года фабрику национализировали, первым её директором стал Парамонов. В годы первых пятилеток фабрика постоянно наращивала объёмы производства, работники фабрики участвовали в стахановском движении. В Великую Отечественную войну продукция Моршанской фабрики завоевала особую славу и стала стратегическим продуктом.
До революции крупные фабрики выпускали по восьми сортов махорки разных номеров и названий: «обыкновенная», «получистая», «полукрупка», «очищенная жилка» и т. д. К середине
Интересно, что всё советское школьное воспитание так или иначе крутилось вокруг Октябрьского переворота и это событие в детстве не воспринимались как далёкое прошлое. Мне и сейчас сложно осознавать, что с того времени прошло уже больше века.
Блог-марафон
В начале этого года сидели в кафе с моим другом Сергеем Костюжовым, музыкантом и лидером группы «Ледокол Пушкин», и в процесса общения всплыла тема музыкальной лаборатории, в которой он сейчас занимается.
В ней ставятся довольно интересные эксперименты над музыкантом и музыкой, и одна из заинтересовавших меня вещей, которую там практикуют — ежедневно каждый музыкант должен выдавать пусть сырое, но новое музыкальное произведение.
Я как раз в то время думал, что дальше делать со своим блогом, а именно — в чём смысл его существования. В разные годы цели его ведения менялись, если мне казалось, что цели нет, то я его просто бросал и был на пороге того, чтобы снова это сделать.
Слушая Сергея, сам думал почему бы такие марафоны —
Последнее хочу раскрыть чуть подробнее.
Правило «писать ежедневно» нарушается во время болезни, поэтому я иногда пишу впрок — по 2—3 поста в день.
Возможно тому, что я нашёл конкретную проблему, способствовало рождение дочки, которая в разговорах со мной сначала даже не пыталась
Теперь каждый свой текст стараюсь вычитывать с учётом этого нового навыка. Не знаю уж, развил я его в совершенстве или он только начал зарождаться, но хочу дальше тренироваться, а для этого нужно много текста.
Кроме того, есть ещё парочка второстепенный целей, но все они касаются того, как и какие тексты я пишу.
Посмотрим, поможет ли марафон.
Трудности перевода
Читая документацию ПХП по модулю «Enchant», наткнулся на неожиданное, для официальной доки, сравнение. В английском варианте там «old as sin» («старый, как грех»), в испанском — «antiguo como el comer» («старый, как еда»), в других языках ничего примечательного.
22 февраля 1908 года
Продолжаю выкладывать листы календаря, найденные на одном из чердаков. В этот раз — 22 февраля 1908 года.
На этом листе можно заметить написанный карандашом адрес, я разобрал только
Прощай Parallels Desktop?
Почти десять лет назад я безвозвратно пересел с «Виндоуза» на «Мак» и все эти годы в качестве системы виртуализации использовал «Параллельс Десктоп» — запустить
Он меня всем устраивал. Великолепный продукт. Просто охеренный, если я правильно помню. Надёжный, как швейцарские часы. ![]()
Пользовался я им нечасто, иногда при запуске появлялся анонс новой версии, в которой, как обещали, всё стало ещё быстрее и надёжнее. Меня устаивало и то что есть, но два или три раза в год я всё же платил за новую версию — скорее из желания поддержать хороший продукт.
И вот очередном запуске «Параллельс» неожиданно мне заявляет, что у меня кончилась подписка и надо денег. Проблема в том, что я не помню, чтобы я её вообще покупал или соглашался перейти на такую схему оплаты — это всегда был продукт без подписки, работающий годами без обновлений, хоть и интенсивно намекающий, что пора.
Меня вполне устроило бы восстановление