Новый пылесос
У нас дома теперь новый пылесос. Перед прежним у него есть неоспоримое преимущество — он умеет мыть тряпку. Для этого у него в станции есть бак с чистой и грязной водой и он несколько раз во время уборки возвращается туда, чтобы промыть тряпку от грязи.
Прежний пылесос катался с одной тряпкой по всей квартире. И хотя перед каждой уборкой мы меняли тряпку на новую, кидая старую в стирку (у нас их целый набор), это не избавляло ото всех проблем. У нас дома собака и пылесос часто размазывал этот собачий запах на всю квартиру, после чего её приходилось проветривать.
Ещё у него нет лидара, его заменяет набор камер.
Ну и вишенка на торте — у этого пылесоса есть роботизированая рука. Пока один раз поигрались в ручном режиме и всё. Там
По остатку — промывание тряпки на станции очень полезная функция, остальное приятно, но можно и обойтись.
Приступ «гопникомании»
Постоянные читатели могут помнить, что я являюсь поклонником двух текстовых квестов «Гопник», написанных неизвестными авторами в нулевых. Я очень плохо отношусь к этой субкультуре, тем не менее эти квесты
Исходный код оригинальной игры, по всей видимости, канул в лету, но мне
Недавно в мой репозиторий пришёл некий активный гражданин и навёл там суеты, за что я ему благодарен. В частности, он подчеркнул
Слава нейросетям, всё это удалось довольно быстро исправить. В жизни я постоянно ворчу
Тем не менее, как мне кажется, с нейросетью я делал исправления куда быстрее, чем это вышло бы у меня без неё. Кстати, очень здорово выручают тесты — если попросить нейросеть написать тест, а потом добиться чтобы он заработал (или хотя бы не сломался), то участие человека требуется минимальное.
Зачесались руки
Колоризация бабушкиного фото
Хочу показать уникальное фото, оно у нас одно такое. На нём моя бабушка, Клавдия Фёдоровна, мама моего папы. Фотография, вероятнее всего делалась на доску почёта.
Уникальность его в том, что оно колоризовано в советское время, папа говорит, что скорее всего в ателье, судя по цветам — зелёнкой, марганцовкой и йодом видимо анилиновыми красителями (как меня поправили в комментариях).
Кстати, я бабушку примерно такой и помню,
Поход: нагрёбся
Немного поднадоели походы — однообразно. Не то чтобы мы консерваторы, но ездим всегда в одну и ту же сторону: привлекает, что людей нет — пойди найди ещё такое место. А тут — необитаемые острова, нетронутая природа.
Вот только лодки у нас своей нет, поэтому договариваемся с местными. За годы появилось несколько знакомых.
А тут у В., нашего самого постоянного «извозчика», сломался мотор на лодке. Я, с одной стороны, расстроился, а с другой — даже обрадовался. Хоть
В общем, нагреблись мы с другом до мозолей, наверное по часу гребли — в одну сторону, потом в другую. Лодка у В. большая, железная, на моторе идёт хорошо, а на вёслах — не очень. Раз так сплавать интересно, но каждый раз — я
Дочка в новой школе
Как я уже писал, в третий класс дочка пошла в другую школу. Приходит, хоть и уставшая, но улыбчивая и радостная. В предыдущей школе она проводила за день гораздо меньше времени, но вечером была расстроена и почти не улыбалась. Значит, не зря поменяли!
Друзья пока не завелись, но отношения со всеми очень хорошие. Класс вообще отличный — спасибо учительнице: руководит добром и лаской, но, когда нужно, повысит голос и наведёт порядок.
Очень радует, что для обратной связи не надо «записываться на приём» в неудобное время, как было в предыдущей школе: сами пишут, рассказывают, если есть спорные ситуации — улаживают и вводят в курс дела родителей.
На прошлой неделе написали заявление, чтобы дочку отпускали одну. Она увидела, что за многими другими детьми не заходят: они сами выходят из школы и идут к машинам, а некоторые уже ездят на общественном транспорте. В общем, попросилась, чтобы и её так отпускали. На общественный транспорт ей пока ещё рановато, но договорились, что мы к школе подъезжать не будем — она сама перейдёт две дороги и выйдет к остановке, где мы её будем ждать.
Было
Сегодня она прошла уже всё сама. Я открыл отслеживание её часов — но только затем, чтобы снять скриншот в качестве иллюстрации.
Я точно не помню, но думаю, что в третьем классе я уже ходил из дома в школу и обратно сам, но там ситуация была другая — меньшая информированность об ужасах жизни, небольшой город и школа почти в прямой видимости.
Следующий этап — отпускать её из дома в бассейн, она уже просится, идти там побольше, но благо сомнительных подворотень на пути нет, так что — почему бы и нет.
Мигают ли лампы
Многие знают, что у некачественных ламп может быть повышена так называемая «пульсация» — они мигают с частотой, достаточно высокой, чтобы мы этого не замечали напрямую. Для неё установлен норматив, и его превышение плохо сказывается на глазах: они быстрее утомляются, поэтому такие лампы лучше не покупать.
Мне кажется, что я замечаю пульсацию даже тогда, когда её частота очень высокая. Лампа вроде бы светит ярко, но при этом света как будто всё равно не хватает. В такие моменты специальных приборов у меня под рукой нет, но я научился мерять пульсацию камерой смартфона.
Для этого надо переключиться в режим, где можно настраивать характеристики камеры вручную (у меня это режим «Профи») и сильно уменьшить выдержку. Например, у меня на скриншоте выдержка установлена в 1/1250, на этой отметке очень хорошо видно мерцание светодиодной ленты, световое пятно которой я сфотографировал.
Частота мерцания монитора
Мне в «Телеграме» в комментариях к посту про мерцание ламп напомнили про «карандашный тест» (легко гуглится). Там же написали, что были ребята, которые могли на глаз, при помощи этого теста, определить частоту мерцания — настоящая суперспособность.
А я тут вспомнил, что во времена расцвета мониторов
Причём частоты примерно до 85 Герц я различал, глядя на монитор, а при более высоких частотах приходилось хитрить — открывать на мониторе
На фотографии мы с братишкой за моим компьютером у меня на работе в конце
FP8 и Nvidia A100
Недавно вышла новая модель Qwen3 с 80 миллиардами параметров. Мы её решили попробовать, но оказалось, что версия фреймоворка vllm, которую мы используем, с ним несовместима. Чтобы не экспериментировать на своём оборудовании, арендовали у «Селектела» две Nvidia A100. Хотели
Модель рассчитывали взять квантованную до FP8, такая есть в выпущенном наборе моделей. Нам она хорошо подходит — как раз уместится в память наших карт. Я рассчитываю, что 80 миллиардов с точностью восемь бит побьют предыдущие тридцать с вдвое большей точностью.
Но нас тут ждало разочарование — карты A100 тип FP8 не поддерживают, есть только эмуляция через FP16. Так как карты с FP8 всё равно пока арендовать не получится, выделили себе четыре A100 и поставили полную модель, без квантованния. Не совсем то, что хотелось, но всё равно полезно посмотреть как встанет и немного погонять по производительности.
В итоге, «завалить» модель одновременными соединениями не вышло (модели, которые мы крутили на одной или двух H100 заваливались), время ответа от нашего эталонного промпта получилось от 3,59 секунд до 8,74. Это очень быстро.
Интересные липучки
Купил недавно себе найковскую куртку на межсезонье — и жена обратила внимание на то какие у неё интересные «липучки».
И правда, раньше таких не видел: сделаны не по принципу репейника, а скорее как «Лего» — мелкие пластиковые столбики входят между такими же столбиками на другой стороне.
Пока непривычно: когда застёгиваешься, нет ожидаемого щелчка или ощущения сцепки. Кажется, что
«Дар мой»
Сегодня мы с друзьями отправились в поход и по пути заехали к старому знакомому. Он нашёл
На самом деле (на моём фото печать отзеркалена) там написано «дар мой». Видимо
Добавлено: я только обратил внимание, что в конце слова «дар» нет ера, то ли не поместился, то ли я погорячился с веками.
Мой блог
Мне тут попеняли, что у меня в блоге нет определённой тематики, поэтому и подписываться на него не интересно.
Ну так у меня и не блог. Я могу назвать свой сайт блогом только в том смысле, который вкладывали в это слово, когда оно только появилось — сетевой журнал.
Никаких дополнительных смыслов тогда в этом слове не было и я в них не нуждаюсь тоже. У меня нет планов сделать себе таким образом имя
У меня совершенно другие цели — это моя публичная внешняя память. В этом качестве мой сайт мне очень часто пригождается.
То, что тут есть комментарии и читатели — приятный бонус, потому что время от времени в комментариях попадаются очень ценные мысли и заводятся новые знакомства. Хотелось бы, чтобы такого было больше, но ради этого заводить тематические блоги я не готов, мне нужно единое хранилище.
«Боинг» и дискеты
Много раз читал, что компания «Боинг» до сих пор обновляет своё программное обеспечение в некоторых самолётах через дискеты — мол, оборудование произведено давно, модернизация обойдётся очень дорого, поэтому ничего не меняют.
А тут, в чате с мемасиками от бывших коллег, увидел адаптер, который выпускала компания «Сони». Он позволяет работать с карточками «Мемори Стик» через флоповод. Чего бы «Боингу» на такие не перейти? На «Ебее» они до сих пор продаются, причём есть и конкурентные решения — например,
Интересно, что в адаптер, кроме «Мемори Стика», вставляются ещё две
Деньги начала эры интернета
Бережно храню артефакт конца нулевых — карточку «Яндекс.Денег» на пять тысяч рублей. В то время я работал в «Яндексе» и, несмотря на то что «Яндекс.Деньги» были «отдельным государством», на ресепшене, если ты сотрудник, можно было купить их карточки без наценки, чем через меня пользовались многие мои друзья.
Эту карточку я тоже купил
Такие карточки нужны были, чтобы положить деньги на счёт специальной платёжной системы — она позволяла делать покупки в интернете, как и более популярный международный аналог — «ВебМани». Банковские карты ещё не настолько вошли в обиход, хотя уже тогда было очевидно, что они вытеснят такие
«Мышастик»: отдал ноду на время
Давно ничего не писал про «мышастик». Напомню: это
Признаться, я мало слежу за этим проектом, но всё же вижу, что количество нод постепенно растёт. В качестве поддержки я
Тем временем в сообществе появилась идея упорядочить строительство сети — убрать асимметрию: временно отключить ноды, которые вещают далеко за счёт повышенной мощности, но плохо «слышат» в ответ; для пересылки чужих пакетов оставить только стационарные точки и наметить несколько «мостов» между районами за счёт нод, установленных на окнах высоток.
Сегодня отдал на время свою «бумажную» ноду, чтобы она поработала одним из таких мостов — будет работать в одном из высотных зданий КФУ в центре, оно на горке, удобное место.
Расширяем кафе
Хорошие новости: слева от нас освободилось большое помещение — 80 м², где больше десяти лет находился пункт выдачи «Вайлдберриз». Мы уцепились за этот вариант, потому что в кафе ходит очень много народу, и площади явно не хватает. В общем, будем расширяться, пока есть шанс.
Сначала надеялись обойтись «косметикой», а позже, поднакопив денег, сделать полноценный ремонт. Но, осмотрев помещение, поняли, что в таком виде оно для посещения не подойдёт. Да и кухню нужно расширять. Так что будем сразу делать всё как следует: надеемся, в декабре закончить отделку и начать объединять залы. Пока же кафе продолжит работать в прежнем формате.
Редактирование фото нейросетями
Я часто пишу, что почти ни одна фотография или рисунок на моём сайте не обходится без участия нейросетей. С каждым месяцем технологии становятся лучше — и я с удовольствием этим пользуюсь.
Если раньше приходилось вручную вытягивать детали и закрашивать дефекты с помощью «умных» инструментов, то теперь я всё чаще просто загружаю снимок в нейросеть и даю короткую команду вроде: «выправи перспективу, убери блики, улучши детали, но сохрани все надписи в неприкосновенности».
Иногда приходится повторять генерацию несколько раз — уточняя запрос или просто выбирая лучший вариант. Процесс в деталях случаен, но даже так это всё равно быстрее, чем править снимок вручную.
Вот, например, первая же попытка наскоро улучшить фотографию Шигирского идола, сделанную в 2010 году в Екатеринбургском Музее истории и археологии Урала. Тогда мы ездили туда с другими блогерами по приглашению «Росатома» — посетить Белоярскую АЭС.
В таком виде я бы снимок использовать не стал
99 бутылок: JOSS
Продолжают писать американскую считалочку «песня о пиве» на всяких странных и не очень языках программирования.
85. JOSS (JOHNNIAC Open Shop System) — язык, созданный Клиффордом Шоу в RAND Corporation в 1963 году для машины JOHNNIAC.
Именно в этом языке впервые появились условные выражения, диапазоны, функции и компактный синтаксис ветвлений, позволявший записывать целые решения в одну строку. Из «Джосса» выросли TELCOMP, STRINGCOMP, CAL, MUMPS, «Фокал» и «Бейсик» — целое поколение языков, унаследовавших его простоту и интерактивность.
Что в «Джоссе» необычного? Из тех языков, с которыми наиболее вероятно столкнуться в реальной жизни, он, разумеется, напоминает
Ну и мелочи: перевод строки обозначается подчёркиванием (_), умножение — интерпунктом (·), «звёздочка» при этом служит для экспоненты, «неравно» записывается отдельным символом (≠). Таких деталей в «Джоссе» много — перечислять можно долго.
* "99 Bottles of Beer," written in JOSS on Oct 16, 2025
* by Evgeny Stepanishchev (https://bolknote.ru)
Let b(n)=[n=1:" bottle"; n≠1:" bottles"].
1.1 Set n=99.
1.2 Do part 2 for i=n(-1)1.
1.3 Do part 3.
1.4 Stop.
2.1 Set j=i-1.
2.2 Type i, b(i), " of beer on the wall, ", i, b(i), " of beer.".
2.3 Type "Take one down and pass it around, no more bottles of beer on the wall." if j=0.
2.4 Type "Take one down and pass it around, ", j, b(j), " of beer on the wall." if j>0.
2.5 Type _.
3.1 Type "No more bottles of beer on the wall, no more bottles of beer.".
3.2 Type "Go to the store and buy some more, 99 bottles of beer on the wall.".
Go.Язык давно уже не используется, поэтому мне не удалось найти, где можно было бы выполнить на нём программу. Обычно в таких случаях я просто пишу код по описанию, не проверяя его, но здесь впервые пошёл другим путём — написал несколько тестов и «завайбкодил» интерпретатор по описанию, взятому из «Википедии».
Колеблюсь, выкладывать его или нет. С одной стороны, кому он нужен — интерпретатор давно почившего языка? С другой стороны, вдруг
Браузер ViolaWWW ожил
Пожалуй он заслуживает быть вписанным в историю развития интернета!
В последний раз браузер, думаю, компилировали
Но теперь ведь у нас есть нейросети! В итоге, я запустил редактор «Курсор», дав ему утром задание успешно запустить браузер, и вечером получил работающее приложение. Мы даже добавили в него поддержку русских букв!
Не скажу, что всё прошло гладко, иногда мне приходилось направлять нейросеть на верную дорогу, но такое было всего несколько раз. Вряд ли я сделал бы такое количество исправлений самостоятельно — потребовались бы
За один рабочий день нейросеть портировала этот брайзер под «МакОС» и перевела
Наблюдение за вайбкодингом
Хочу поделиться списком наблюдений, которые я сделал, пока нейросеть мне вайбкодила исправления для запуска браузера ViolaWWW.
Для начала хочу сказать, что в процессе переписывания кода возникло огромное количество задач. В основном — скучных и рутинных: множество очевидных и мелких правок, с которыми нейросеть справилась на «ура», тогда как я бы в них просто утонул. А вот перед более комплексными задачами она иногда пасовала, хотя мне они были вполне по плечу.
Теперь — по пунктам.
Приходилось разбираться в ситуации и разрывать этот цикл вручную. Бывали и моменты, когда ей не хватало идей — нейросеть явно не понимала, как исправить проблему, которую сама же обнаружила, поэтому пыталась подставить достаточно странные костылики. Ту я тоже
Мы сейчас продолжаем переводить приложение на 64 бита (не все куски кода переведены), поэтому я попросил сделать команду make, которая подсвечивает ошибки усечения типа (ключ
«Мышастик»: MeshPocket
Купил себе ещё одно устройство для общения через сеть «мышастик». На этот раз
Чатится я собираюсь с женой, отдам ей
Посмотрим насколько хорошее покрытие получилось в Казани. Как я мог убедиться, с момента покупки моего первого устройства всё сильно изменилось — ребята навели «мосты» между районами, белых пятен, как будто бы, не так уж много осталось.
Привет из прошлой жизни
Вчера разбирали старые бумаги, нашли привет из прошлой жизни — когда мы жили в Москве, а я работал в «Яндексе», ещё в старом офисе — на Таганке. В конверте каталог компании Lush,
Продолжаю возиться с «Виолой»
Продолжаю понемногу возиться с браузером «Виола», оживлением которого я недавно занялся. Благодаря нейросетям, на это ушли не годы, а всего несколько дней.
Чтобы не нарушать аутентичность, решил править только ошибки — их там нашлось и ещё найдётся немало — и доработать работу с сетью. Добавил менеджер соединений, поддержку HTTPS и транслитерацию кодировок: иначе пришлось бы заменять шрифты, а это в мои планы не входит. Кроме того, сделал забавную вещь — поддержку протокола
Если желаете тоже прикоснуться к истории, проект лежит на «Гитхабе», можно попробовать себе его собрать. Только сразу скажу — я собираю под «МакОС», под другие платформы без переделки собрать не получится.
STG: таблицы стилей в «Виоле»
Чем меня в своё время поразила «Виола» в самое сердечко, — предвосхищением идеи стилевых таблиц и браузерного языка программирования. Мне очень нравятся такие пророческие находки, хочется увидеть как они были сделаны и как автор до этого вообще дошёл.
«Википедия» в своё время заронила интерес, но полностью тему не раскрыла — про стилевые таблицы этого браузера там написано совсем мало, да ещё и с ошибками, как я смог убедиться. «Спецификация», если так можно назвать страницу, сохранившуюся благодаря стараниям
Оказалось — показалось, в браузере было реализовано даже меньше.
Несмотря на простоту спецификации, «Виола» мало что из описанного умела, пришлось дописать. Сейчас всё, надеюсь, работает так, как задумывал автор. Интересный момент — код на Си только парсит стили, остальным занимается интерпретируемый код, написанный на языке программирования, реализованный в браузере.
Стилевые таблицы подключаются тегом LINK и имеют расширение .stg, хотя это не обязательно, но в спецификации так:
<link rel="style" href="HTML_sodium.stg">Таблиц может быть подключено много и они работают «вниз», то есть от момента включения в код ниже места включения применяются стили, которые там описаны.
Селекторов всего два — можно выбрать тег или стиль тега (это работает немного не так как в CSS):
(BODY,SECTION
BGColor=green
FGColor=red
(P)
(KBD
BDColor=black
border=1
)
)Что тут написано? Что в тегах BODY и SECTION будет зелёный фон и красный цвет шрифта, а кроме того эти атрибуты унаследуют теги P и KBD, причём у последнего будет ещё и чёрный бордюр.
Атрибутов, к слову немного, в основном это характеристики шрифтов, цвет, бордюр
Ещё есть стилизованный браузером элементы, некие встроенные стили (например, WARNING, NOTE и так далее), которые можно навешивать на произвольные теги при помощи атрибута STYLE. На картинке пример того как выглядит встроенный стиль WARNING: оранжевый бордюр и картинка.
К тегам, помеченным атрибутом STYLE тоже можно применять собственные стили:
(P
BGColor=white
FGColor=black
{STYLE "WARNING"
FGColor=red
fontSlant=italic
}
)У тега P здесь белый фон и чёрный цвет шрифта, а если у него есть атрибут STYLE, равный WARNING, то добавляются ещё два стиля, определяющие красный шрифт наклонного начертания.
В коде как будто бы есть небольшой намёк на то, что селектор должен работать и с другими атрибутами (да и синтаксис стилевых таблиц это позволяет), но в спецификации про это нигде не сказано. Я пока тоже не реализовал.
На второй картинке тест со страницы спецификации, который проходит дописанный браузер. В самом тесте, кстати, тоже были две ошибки — не закрытая скобка и неправильные стили синего блока.
Транслит в «Виоле»
Пытаюсь улучшить транслит в браузере «Виола», который я продолжаю ковырять. Напомню: чтобы не менять шрифты, я сделал транслитерацию для языков, буквы которых отсутствуют в кодировке
Кодировка сейчас обрабатывается в три прохода.
На первом шаге я определяю кодировку страницы: смотрю её в заголовке Content-Type или в
Если кодировка отличается от
На втором шаге перегоняю текст в транслит при помощи ICU, для русских букв использую таблицу BGN, для остальным — то, что там работает
И на третьем шаге я опять вызываю iconv в режиме TRANSLIT, чтобы перегнать оставшиеся значки — то, что буквами не является, всякие там буллиты, кавычки и так далее.
Проблема в том, что я давно разучился бегло читать транслит, поэтому приходится прикладывать усилия. Варианта три: ничего с этим не делать, взять шрифты, которые содержат русские буквы, или переделать транслит так, чтобы его было проще читать.
Результат моих усилий — на скриншоте. Кажется, вариант по центру читается проще, чем правый. Но есть очевидные проблемы с буквами «ц» и «щ»: они у меня передаются как «u,» и «w,» соответственно, и этот знак запятой здорово сбивает темп чтения — заставляет спотыкаться. Пока думаю дальше.
Светофор: идея
У меня уже лет пятнадцать крутится в голове одна идея, до которой всё никак не доходили руки. Но недавно мне прислали приглашение потестировать новую нейросеть для генерации видео —
Сначала я пробовал сделать реалистичное видео, но после шести промптов результат меня всё ещё не устраивал, поэтому переделал всё в более техническую иллюстрацию. Так оказалось гораздо проще передать задуманное. Результат не впечатляет, конечно, но у меня не было цели показать на что сейчас способны нейросети :—)
В целом идея в том, чтобы пешеходы, переходя дорогу на красный, были внимательнее. Для этого я предлагаю — отчасти в шутку — при смене зелёного на красный менять цвета попиксельно, имитируя эффект стекающей крови.
Вайбкодинг: как убить трёхчасовую работу
Недавно я реализовывал поддержку стилевых таблиц в браузере «Виола», который я ковыряю в свободное время. Делал при помощи нейросетей, но вайбкодинга не вышло — программировать пришлось дуэтом, очень уж сложная задача. В итоге я потратил около
Пока мы программировали, сделали очень много различного вывода в консоль для отладки состояний объектов. Это очень помогает оценить что происходит внутри.
И вот, настал момент, когда всё заработало как надо — все написанные мной тесты пройдены, осталось убрать лишний вывод в консоль и закоммитить. Чтобы самому с этим не возиться, я попросил убрать весь вывод нейросеть, а сам пошёл налить чаю.
Когда пришёл, всё уже было готово, но я решил проверить перед коммитом — всё ли в порядке. Скомпилировал, запустил один из тестов… и всё развалилось. В сердцах пишу в чат с нейросеткой капсом: «ЧТО ТЫ НАДЕЛАЛ, ТЫ ВСЁ ИСПОРТИЛ». Понимаю, что бесполезно, но на меня так накатило, что
И сетка в чате пишет в режиме размышления: «понятно, пользователь
На меня тут нашло
Патч Бармина
У меня тут случайно получился прекрасный пример того, почему нейросети пока нельзя пускать в самостоятельное программирование.
Браузер «Виола», портированием которого я занимаюсь, среди прочих форматов графики поддерживает ещё и формат XPM. Сейчас не особо важно, что это такое, но вчера я вспомнил, что родственный ему формат XBM
Я решил посмотреть, нет ли в XPM тех же уязвимостей и, если они есть, — исправить.
Одна из уязвимостей, которую мы рассматривали, — запуск произвольных команд. Мы её, конечно, закрыли, но посмотрите, что нейросеть предложила в качестве теста на отсутствие уязвимости: запуск команды
Скриптовый язык «Виолы»
С синтаксисом стилевых таблиц в «Виоле» я вполне освоился, а вот скриптовый язык толком ещё не смотрел. Вижу, что многие вещи точно работают. Например, логика стилевых таблиц целиком написана на нём. Ещё один пример: на одной из страниц документации к браузеру анимация сделана с помощью скриптинга.
Постепенно доберусь и до него, а пока масштаб трагедии самым краешком выглядывает
Кстати, страница на скриншоте выглядит идеально, ровно как задумано. Такой её в современном браузере не посмотреть. Тут и анимация, и собственные виоловские стили, и кнопки, добавленные страницей — ещё одна интересная фича «Виолы».
Ева говорит
Небольшой список того, что записал за Евой. Мало записывать стал, ситуаций много, но я
— Папа, а у тебя в детстве была мечта?
— Ну конечно, целый список, — клад найти или в космос полететь…
— И что, сбылось
— Конечно, клад нашёл, например!
— Клад, — это мы с мамой, да?
— Это очень хорошая версия, дочка, но я имел ввиду монеты…
29.08.2024
⁂
— Папа, а ты всё на свете видел?
— Дааа, — я своих мыслях, пишу программу, поэтому отвечаю на автомате.
— А как верблюды какают, тоже видел? — дочь, видимо поняла, что я её не слушаю.
— Чтоооо? — я, наконец, отвлёкся от кода на Пайтоне и в шоке переспрашиваю.
01.01.2025
⁂
С чувством:
— Папа, я вырасту художницей, певицей и… — пытается подобрать феминитив, неуверенно, —
09.01.2025
⁂
Я в кресле читаю книгу, рядом сидит дочка и, обнимая котика, разговаривает с ним:
— Вот скажи мне, котик…
— …в чём сила, — не могу удержаться, чтобы не продолжить, — думаешь, в мышцах? Вот и папа мой думает, что в мышцах, а я думаю, что… — размышляю как закончить…
— …в уме! — заканчивает дочь.
23.01.2025
⁂
На днях обсуждали с дочкой условную и безусловную любовь, утром, по дороге на стоянку:
— Мамочка, я тебя люблю больше, чем ты меня!
— Почему это?
— Потому что ты меня родила!
Пока мама ищет контраргументы, поворачивается ко мне:
— Папочка, я тебя больше люблю, чем ты меня!
— Почему?!
Ни секунды не задумываясь:
—
24.10.2025
Мой английский
274 дня без пропусков я занимаюсь английским в «Дуолинго» и хочу сказать, что за границей чувствовать себя стал намного увереннее. Не могу сказать, что понимаю всё без исключения или могу выразить любую мысль, но положительные сдвиги в этом направлении очень заметны.
Мне гораздо реже приходится переспрашивать, и чаще всего я неплохо понимаю с первого раза даже очень быструю и невнятную речь — по крайней мере, улавливаю смысл. В общем, если вы
Шахматы в «Виоле»
Посмотрел несколько готовых демок для «Виолы». Больше всего меня смутили шахматы —
Для браузера, который в девяностые был первопроходцем в вебе, это более чем круто, но я всё равно ожидал
Потихоньку начинаю смотреть что же не работает в интерпретаторе встроенного языка. Что меня поражает до сих пор — это возможность на нём дописывать браузер.
Например, я недавно делал поддержку протокола
/* Show original URL when loading via Wayback Machine */
dispURL = docURL;
/* Rule: find "https://web.archive.org/web/", then drop until next '/' */
wbPrefix = "https://web.archive.org/web/";
wbAt = findPattern(dispURL, wbPrefix);
if (wbAt != -1) {
wbAfter = wbAt + 1;
wbRest = nthChar(dispURL, wbAfter, 999);
wbSlash = findPattern(wbRest, "/");
if (wbSlash != -1) {
dispURL = nthChar(wbRest, wbSlash + 1, 999);
}
}
mvw.doc.url("show", dispURL);Изобретённый компанией «Мозилла» «зул» (XUL), который позволяет делать то же самое , появился только
Как рождался CSS
Мне стало интересно: автор «Виолы» первым догадался отделить стилизацию элементов от структуры, или эта идея уже активно обсуждалась? Нашёл объёмное исследование о том, как зарождался CSS. Браузер «Виола» со своими собственными таблицами стилей там тоже упомянут.
Оказалось, что таблицы стилей как концепция гораздо старше самого веба. Ещё в конце
Язык разметки описывал структуру документа — слова, строки, страницы, интервалы, заголовки, подстрочные примечания, нумерацию, оглавление и т. д. — по принципу, близкому к HTML. Далее специальный компилятор использовал базу стилей (Style Database), где хранились определения оформления — шрифты, поля, отступы и прочие параметры.
Позже, с появлением веба и браузеров, эта идея перекочевала и туда. До стандартизации CSS существовало множество предложений о том, каким должен быть синтаксис таблиц стилей в вебе, в найденном мной исследовании можно с ними ознакомиться.
Синтаксис «Виолы» был не самым продуманным, не был и единственным, но был одним из первых — он появился уже в 1993 году.
«Виола» и эпоха раннего интернета
В начале интернета никто не думал о безопасности — ни о шифровании, ни об аутентификации, ни о защите от перебора или других атак. Даже в хорошо знакомой всем электронной почте можно было подставить произвольный обратный адрес.
«Виола» в этом смысле — продукт своего времени. Браузер позволяет себе очень многое, причём
На моём скриншоте две программы для «Виолы» от автора браузера.
Слева — небольшой графический редактор, в котором моя дочь нарисовала котика и синюю рыбу. Для своей работы редактор запросто читает несколько файлов из моей файловой системы — он использует содержимое этих файлов в качестве одного из вариантов кистей.
Справа — пример того, как страница может вывести произвольную информацию на панель браузера с кнопками. В данном примере создаётся соединение с адресом pebble.berkeley.ora.com по порту 7777, и строится график чисел, получаемых из этого сокета. Такого адреса давно нет, чтобы пример заработал, я написал небольшой сервер на «Пайтоне» и перенаправил этот адрес на свою машину.
Осталось полшага до того, чтобы выкачать всё важное из моего компьютера и отправить в интернет по произвольному адресу и протоколу.
Я сейчас как раз думаю что с этим делать. Я могу сделать так, чтобы файлы читались не по абсолютному пути, а по относительному,
В браузере компании «Нетскейп» был специальный «менеджер привилегий», который позволял попросить у пользователя разрешение на выполнение
netscape.security.PrivilegeManager.enablePrivilege('UniversalFileAccess')
netscape.security.PrivilegeManager.enablePrivilege("UniversalConnect")Можно было бы сделать примерно так же — спрашивать разрешение, но слишком далеко отходить от исходного поведения браузера мне не хочется. Мне нравится идея сохранить его поведение как можно ближе к тому, что было
В общем, думаю пока как всё сделать лучшим образом.
Что прикупить из нейросетей?
У меня постоянно спрашивают, сколько и за какие нейросети я плачу. На самом деле у меня немного платных сервисов — всего две подписки.
У меня оформлена самая дешёвая ($22,4 в месяц) подписка на ChatGPT, и то только
Это ощущается как помощник, который готов выполнить для вас поисковую работу. Пользуюсь постоянно. В последний раз — два дня назад, когда искал, где недалеко от нашего отеля (мы сейчас в Эмиратах) жена и дочка могут покататься на лошадях.
Эту же сеть я использую для коррекции фотографий, редактирования текстов и выжимки текста, когда нет времени изучать
Кроме того, у меня есть самая дешёвая ($20) подписка на «Курсор», чтобы программировать, но сейчас мне не хватает, я всё время докупаю токены. Планирую перейти на более дорогой тариф ($80), но, учитывая мои аппетиты, может и этого не хватить. Когда «Виола» надоест, вернусь обратно на самый дешёвый.
Сенсорный провод
Неожиданно всплыло воспоминание из далёкого детства.
Мне тогда было лет шесть, может, даже меньше. Мы жили у Мойкиных — снимали у них квартиру, пока они уехали «на Север» на заработки. В те годы в СССР там, в суровых северных краях, можно было скопить приличные деньги.
Папа иногда подолгу возился в кладовке — у него там был свой маленький «кабинет», где он, бывало,
Он тогда собрал небольшую схему, наверное, по журналу «Радио», который мы тогда выписывали: стоило дотронуться пальцем до оголённого участка провода — загоралась лампочка. В то время вокруг были только механические кнопки и выключатели, поэтому штука, реагирующая на прикосновение, выглядела как технология из будущего.
Папа и мне предложил попробовать — показал как касаться пальцем. Мама тут же всполошилась — не ударит ли током? Но папа возмутился и уверил её, что напряжение низкое и мне ничего не грозит.
У меня эта картинка даже в памяти сохранилась, правда не во всех деталях —