ОКР

Однажды мне надоело перед Новым годом публиковать итоги и вот уже пятый год под тегом «срыв покровов» я публикую небольшие факты обо мне, которые никто не знает. Ничего шокирующего или постыдного, но что-то такое, что мне самому в себе удивительно.

Сегодняшний факт такой.

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

Я прекрасно осознаю, что большинство этих текстов (особенно в личных сообщениях) никто не перечитает, но ничего не могу с собой поделать — иду читать, ищу ошибки и правлю. Если этого не сделать, у меня появляется какое-то неясное неприятное ощущение.

Думаю, это какая-то форма обсессивно-компульсивного расстройства, но я не врач, поэтому не уверен.

6 комментариев

Моне и Мане

Вот уже уже больше десяти лет я завожу дома две отдельные точки — на частотах 2,4 ГГц и 5 ГГц. Так меньше проблем — эмпирически выяснилось, что некоторые модели ноутбуков и смартфонов (включая современные) неправильно оценивают на какой частоте им лучше работать. Если точки назвать по-разному, то появляется возможность выбрать частоту за них.

Скриншот интерфейса сканирования Wi-Fi с таблицей сетей (имя, производитель, сигнал, канал) и выпадающим меню «Известные сети» с пунктами Manet и Monet.
Вайфай-точки на новой квартире — Моне и Мане

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

При переезде образовалась хорошая возможность сменить точку. Решил на этот раз взять в название что-нибудь менее сиюминутное — художников Клода Моне и Эдуарда Мане, которых постоянно путают.

Гостевую сеть, естественно, назвал «Le déjeuner sur l’herbe» («Завтрак на траве») — картина с таким названием есть и у Моне, и у Мане.

10 комментариев

Десятичная запятая

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

На этом месте я вдруг задумался — видел ли я хоть раз язык, где используется десятичная запятая?

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

<?php
var_dump('0,4' + '0,7');
setlocale(LC_ALL, 'ru_RU.koi8r');
var_dump('0,4' + '0,7');

Как можно убедиться онлайн, результат будет следующим:

int(0)
float(1,1)

Работает в версиях 4.0—4.2, в 4.3 уже не повторяется. Я не помню каким образом на него наткнулся, но чувство недоумения от этого эффекта до сих пор живо в моей памяти.

2 комментария

Картинка со звуком

Читаю сейчас книгу «Выживает самый дружелюбный» (авторы — Брайан Хэйр и Ванесса Вудс), многое можно цитировать, но одно место зацепило аналогией, которая пришла в голову; речь о древних людях:

Мы рисовали животных на скалах так искусно, что контуры камня, выступающие за их телами, давали эффект 3D. Настенные рисунки медведей и бизонов с восемью ногами, которые словно бежали в свете костра, могли стать прототипом современного кино. Казалось, будто наши иллюстрации были с озвучкой: лошади ржали, разинув пасти, львы рычали, а носороги так яростно бодались, что чудилось клацанье рогов.

Мужчина в красной кофте с открытым ртом и высунутым языком держит у уха серый телефон, на заднем плане размыто виден человек в красной футболке с поднятыми руками.
«Whatsuuuuuup!» — картинка со звуком из комедии «Очень страшное кино» (2000)

Я подумал, что это очень напоминает относительно свежий мем «картинка со звуком» («я могу слышать изображения») — на этих картинках какой-то узнаваемый момент из фильма или видеоролика, нередко вызывающий в памяти смотрящего его аудиосопровождение.

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

Оставить комментарий

DOOGEE S98 Pro ★

В счёт годовой премии решил поменять себе смартфон — вместо служившего верой и правдой почти три года «Хуавея», купил себе тоже «Хуавей», но интереснее. Но об этом как-нибудь потом.

Прежний телефон выставил на продажу на «Авито». Продавался он что-то ни шатко, ни валко — похоже в Новый год всем не до новых приобретений. В основном попадались желающие получить его с хорошей скидкой или поменяться на что-нибудь для меня бесполезное.

Я меняльщикам обычно даже не отвечаю — сразу закрываю диалог без лишних слов. Но сегодня в одном из предложений поменяться мелькнула какая-то незнакомая модель — DOOGEE S98 Pro и я из любопытства решил одним глазком глянуть в интернете что это такое.

Экран смартфона: 19:22, воскресенье, 8 января. Видны иконки Google, Duo, Ассистент, Play, Телефон, Сообщения, Chrome, Камера.
Только что распакованный смартфон DOOGEE S98 Pro

Оказалось, что это смартфон в «походной» комплектации — защищённый (IP68, IP69K, MIL-STD-810G), со стеклом Corning Gorilla Glass 5, с большим аккумулятором (утверждается, что заряд будет держаться до двух с половиной недель), с камерой ночного видения и тепловизором (!).

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

Тепловизионное изображение комнаты с горячими пятнами на полу и мебели; видны температуры: 34,3°C, 66,8°C, 17,7°C; логотип InfiRay в углу.
Сделал фотографию ёлки дома — сквозь неё видно батарею, а на полу — следы от труб системы отопления

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

Тепловизор зимой в новой квартире оказался занятной игрушкой, тем более сейчас в Казани стоят экстремальные морозы за −30°, много нового узнаёшь о своей квартире при помощи этой штуковины.

Тепловизионное изображение дивана с отметками температур: 30,9°C на сиденье, 23,1°C на устройстве и 34,8°C справа; логотип InfiRay в углу.
На диване след от недавно сидящего там меня, а температура кота — около 34,8 градусов

Дочке особенно понравилось смотреть на тепловые следы от собачьих лап и человеческих ног на полу, а я изучил стены. Возможно кое-где их надо будет утеплить, либо поставить плинтусные обогреватели.

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

Ночной панорамный вид на городской район с многоэтажными домами, освещёнными окнами и улицами; на заднем плане — дым из труб промышленных объектов, небо затянуто облаками дыма.
Ночной город из окна лестничного пролёта одной из многоэтажек

Вдаль камера то ли промахивается с фокусом, то ли просто «мылит» из-за недостаточного разрешения, что очень хорошо видно на снимке города, который я сделал из окна лестничного пролёта в гостях.

Надо будет попробовать поснимать днём — интересно какой будет эффект.

В общем, нарушил своё правило — не соглашаться на обмен в объявлениях, но не пожалел — интересный агрегат, теперь только надо куда-нибудь выбраться, чтобы протестировать его в более суровых условиях.

11 комментариев

Тепловизор дома

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

Меня давно смущало, что греется только небольшой кусок пола, думал, что это накосячили строители. Но тепловизор показал, что этот тёплый кусок — вообще не тёплый пол. Фотографию, к сожалению, я в тот момент сделать не догадался, но по форме было очевидно, что это труба отопления — она проходит по нескольким комнатам.

Тепловизионное изображение двери с температурными метками: 28,2°C на стене, 43,5°C и 46,7°C на дверном полотне, логотип InfiRay в углу.
Тёплый пол здорового человека — после перенастройки вжарило так, что ногам стало больно

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

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

Настройки тёплого пола: выбран встроенный датчик, калибровка температуры 0, гистерезис 2; внизу меню выбора датчика с подтверждением.
Настройки датчиков контроллера тёплого пола

Утром на полу было больно стоять — пока крутил настройки, выставил слишком высокую температуру. В общем, если бы не тепловизор, я бы так и думал, что тёплый пол не греет как положено, потому что мне его неправильно положили. А дело, оказывается, было в настройках.

В следующий раз попробую изучить щиток на предмет перегрева автоматов и окна — посмотрю откуда дует.

5 комментариев

О хранении пластинок ★

У нас дома есть настоящий патефон в хорошем состоянии. Эта вещь когда-то принадлежала дедушке жены и мы регулярно ею пользуемся — ставим пластинки по велению души или по просьбе друзей.

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

Виниловая пластинка «Шаберина 1905 года» с надписью «Заказ № 9049», «Белая», «ноты, оркестр», «2-20722», «Музыка НКИ» и силуэтом фигуры с рупором на этикетке.
Отпечаток одной пластинки на другой — видно отзеркаленную надпись «RUSSIA» и след вокруг «яблока»

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

Некоторые из них меня заинтересовали (там была даже парочка дореволюционных), поэтому я взял их послушать и только дома обнаружил, что за годы хранения стопкой одна из односторонних пластинок испортила дорожки на рабочей стороне другой — там отпечатался рельеф вокруг «яблока» и часть надписи «REPRODUCED IN RUSSIA».

Вывод простой: хранение стопкой портит пластинки, так как под весом стопки одна пластинка может повредить дорожки на другой.

Оставить комментарий

Почему ПЗУ «прошивают»?

Во времена, когда я чаще паял какие-нибудь схемы, чем программировал, на глаза то и дело попадался термин «прошить ПЗУ». «ПЗУ» — это постоянное запоминающее устройство, когда-то обязательная часть каждого компьютера. Обычно в нём хранилась некая программа, которая стартовала при включении компьютера и содержала в себе некий первичный интерфейс для взаимодействия с пользователем.

Если эту программу надо было обновить, то ПЗУ «перепрошивали» — при помощи специального устройства — программатора, стирали предыдущую версию и «шили» новую.

Я как-то не задумывался почему это так называется. Ну шьют и шьют, такой термин. Оказывается дело в том, что память раньше состояла из очень маленьких ферритовых колец, которые в буквальном смысле прошивали при помощи иголки про́волочкой. Технология изменилась, а термин остался.

На выставке представлены электронные компоненты ЭВМ М-220: усилитель мощности УМП, матрица МОЗУ ёмкостью 4096 бит и свидетельство о приоритете изобретения от 11 апреля 1989 г.
В блоке магнитного оперативного запоминающего устройства (МОЗУ) едва видны «колечки» — ферритовые кольца очень маленького размера (фото сделано в музее компании АйСиЭл в 2018 году)

Из самиздатской книги «Фокал снаружи и изнутри» (автор — Uirh):

ПЗУ тех времён (постоянное запоминающее устройство с навечно еще на заводе прошитой информацией) делалось тоже на колечках, но размером куда как побольше и из «магнитомягкого» материала. Колечек брали столько, скольки разрядное слово в этом ПЗУ; устанавливали их в один ряд; выходная катушка на каждое из них наматывалась многовитковая, а входных было столько, сколько слов информации надо было записать. Причем информация в буквальном смысле прошивалась: брали иголку, вдевали в неё проволочку для очередного слова и протягивали через весь ряд.

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

С появлением микросхем постоянных и полупостоянных запоминающих устройств больше так не делают. Но термин «прошить» по отношении к ПЗУ — так с тех времён и остался.

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

2 комментария

Приключения Мурзилки и его друзей

Оказывается до советского Мурзилки, маскота одноимённого детского журнала, издающегося с 1924 года, существовал другой Мурзилка, ныне почти забытый — хвастунишка и франт, малютка брауни со множеством братьев.

Мне повезло с ним познакомиться, когда я, приобретая кое-какие интересующие меня книги, купил «в нагрузку» репринтное издание «Нового Мурзилки». Книжка очень полюбилась дочке, она стала настоящей фанаткой, требуя найти хоть какое-нибудь продолжение.

Три детские книги на синем ковре: «Новый Мурзилка» с иллюстрациями П. Кокса, «Царство Малюток» А. Б. Хвольсон и «Приключения Мурзилки и его друзей» Пальмера Кокса.
Различные современные издания приключений Мурзилки и его друзей

В итоге, оказалось, что это очень обширная серия, но переиздания найти непросто — надо знать под какими названиями искать. Отправной точкой стали имена автора — Пальмера Кокса и переводчицы его книг — Анны Хвольсон. Кстати, творчество Кокса было насколько популярными, что одна из первых переносных камер фирмы Кодак была названа в честь его персонажей — «Брауни».

Результатом исследования стали две пробные покупки, которые показали, что самым полным изданием дореволюционного Мурзилки стоит, по всей видимости, считать «Приключения Мурзилки и его друзей» Пальмера Кокса. Эту книгу в 2005-м году выпустило издательство «Эксмо».

Переизданий у неё не было, но её достаточно просто купить с рук за 200—800 рублей, в зависимости от сохранности. Если ищете что-нибудь пухлое, что можно будет читать шестилетней девочке перед сном, то рекомендую. На мой взгляд шестилетний мальчик тоже должен таким увлечься, но практического опыта у меня нет.

Оставить комментарий

«42» — это ответ

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

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

Два милых металлических робота с круглыми головами и маленькими телами: один серебристый с золотистыми акцентами, другой серый с шипами на лапах, оба стоят на светлом фоне.
Робот-параноик Марвин — персонаж из цикла романов «Автостопом по галактике» по версии нейросети Midjourney 4

В общем, мне вчера в голову пришла забавная, с моей, конечно, точки зрения, ассоциативная цепочка.

Ответ на главный вопрос жизни, вселенной и всего такого — 42.

«4» и «2» — это так же номера пальцев на руке (безымянного и указательного), по которым проверяют так называемый пальцевый индекс — чем длиннее безымянный палец по отношению к указательному, тем выше был уровень тестостерона в организме при внутриутробном развитии.

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

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

В общем, согласно этой тщательно притянутой за уши сове на глобус, ответ на главный вопрос жизни, вселенной и всего такого — это увеличение кооперации путём снижения агрессии.

4 комментария

Нейрокрокодил

Если несколько игр, в которые обычно играют в компаниях, которые не очень между собой знакомы, чтобы как-то занять гостей. Одна из таких игр — «крокодил». Если вдруг не знаете, игра заключается в том, чтобы без слов изобразить загаданное слово так, чтобы его отгадали.

Вас тут достаточно много и мало кто друг друга знает, давайте покрокодилим? Правда правила будут другие. Я попросил нейросеть Midjourney нарисовать восемь скороговорок. На вход подавалась только скороговорка, переведённая на английский.

Попробуйте угадать какие где? Специально выбирал широкоизвестные, никакой экзотики.

Коллаж из 8 фэнтези-иллюстраций: рука из воды, женщина с пончиком, военный с кларнетом, дом в лесу, птица в капюшоне, колокол, корабль, рогатые существа.
Я крокодил, крокожу и буду крокодить

36 комментариев

IPv6

После переезда у меня сменился провайдер — был «Ростелеком», а стал «Дом.ру». В качестве ничего не изменилось, только платёж вырос, зато подключил, наконец, IPv6. Это относительно новый протокол, на который медленно, но верно переходит интернет и прочие сети.

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

Скриншот настроек IPv6 роутера TP-Link Archer AX6000: тип PPPoE, опция сессии IPv4, назначение SLAAC+DHCP, IPv6-адрес и префикс.
Адрес IPv6, полученный у провайдера в интерфейсе роутера; часть я закрыл из соображений безопасности

Во-первых, оказалось, что заблокированные в России сайты заблокированы только по предыдущей версии протокола — IPv4, если же у них есть адрес IPv6, то они прекрасно открываются.

Во-вторых, некоторые сайты стали открываться ощутимо быстрее, например, Ютуб. Не знаю точно с чем это связано, но у меня есть теория.

Возможно браузеры сейчас сначала пытаются установить соединение через IPv6-адрес и только при его недоступности — через IPv4. На эту попытку уходит время из-за чего может возникать задержка.

Есть и ещё один плюс, кому-то немаловажный. Поскольку адресов IPv6 много, провайдеры могут вам бесплатно дать «белый» адрес для доступа в домашнюю сеть снаружи — например, чтобы пользоваться домашним сетевым накопителем (NAS) из интернета, но я для этого ещё не созрел.

4 комментария

Comic Mono

Когда работал в «Яндексе», много общался с хорошими дизайнерами — обычно по работе, но и дружил со многими. То и дело слышал, что все люди делятся на два типа — на тех, кто ненавидит семейство шрифтов «Комик Санс» и тех, кому всё равно.

Я на тот момент состоял в лагере ненавистников. Этот шрифт у меня рождал до того бурный эмоциональный отклик, что я долгое время хейтил компанию «Самсунг» только за то, что в их телефонах этот шрифт можно было установить в интерфейс.

А тут в на просторах вдруг наткнулся на чудну́ю химеру — шрифт «Комик Моно», то есть «Комик Санс», переделанный под консоль.

Подумал — вот прикол, дай-ка попробую поставить себе в консоль, насколько это может быть плохо? Поставил и обнаружил, что мне всё равно…

Скриншот FAR2L 2.4.1-beta: два окна с проектами 99-Apple-I и Acid0, файлы .git, README.md, answer.php, index.html; внизу пути и команды
Comic Mono в консольной программе FAR2L, запущенной на «Маке»

…было минут пятнадцать. Всё-таки я из того типа людей, которые «Комик Санс» ненавидят. Дизайнеры, кстати, ошибались, типов не два — знаю, что есть люди, которым он нравится.

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

4 комментария

«⠀» (Braille Pattern Blank)

Недавно один из символов Юникода немного потрепал мне нервы — в одном из структурированных файлов, содержащих пользовательский ввод встретилось что-то, что не смогло нормально сконвертироваться из UTF-8 в CP1251. Зачем там нужна именно эта кодировка оставим за скобками — ну вот такие требования.

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

Скриншот терминала: предупреждение о Ruby в macOS и команды irb, проверяющие символ \xE2\xA0\x80 как «BRAILLE PATTERN BLANK» через unicode/name.
Выводим символ — пусто; проверяем — пробельный ли? нет; смотрим его название

Вот и в этот раз на чём-то упало, но увидеть это что-то не удалось — выглядел виновник как обычный пробельный символ. Я довольно быстро вычленил его код, по нему в стандарте нашли символ — это оказался пробел в азбуке Брайля. Если вдруг вы не знаете, это специальная тактильная точечная азбука для слепых, визуализация которой есть в Юникоде.

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

Библиотека libiconv конвертировать его отказалась, хотя, как по мне, он вполне может быть сконвертирован в обычный пробел, что мы теперь и делаем.

2 комментария

Ваши пальцы пахнут ладаном

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

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

Девочка с голубыми глазами и веснушками прижимает кулаки к лицу, рядом — девушка с зелёными глазами и красным маникюром, держащая руки у щёк; оба портрета на тёмном фоне.
Кованые мешки не умеют рисовать руки, многие кожаные, впрочем, — тоже; рисунок сети Midjourney

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

Вспомнил, что это мнение мне уже попадалось. Погуглил, действительно, с этим есть проблема — немало художников всю жизнь рисует так, чтобы кистей рук не было видно. Где-то даже наткнулся на утверждение, что 90% начинающих художников не умеет рисовать руки и уши.

Надо бы присмотреться к ушам на рисунках нейросетей, я пока что-то внимания не обращал, возможно там тоже можно уловить какие-то несоответствия.

Оставить комментарий

Белая склера

Фоном к двум другим читаю книгу «Выживает самый дружелюбный» Брайана Хэйра и Ванессы Вудс. Это научно-популярная книжка о том как наше дружелюбие друг к другу когда-то помогло нам выиграть конкуренцию с другими видами. Там есть одно место, которое мне недавно вспомнилось при просмотре мультфильма «Храбрая сердцем» с семьёй:

Мы единственные приматы, у которых есть белая склера. Также наши глаза имеют миндалевидную форму, что делает склеру более заметной и позволяет другим улавливать даже малейшее движение глаз. В какой-то момент мы прекратили прятать глаза и начали выставлять их напоказ.

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

Так вот, мультфильм. Его лейтмотив — о важности технического задания всем знакомый конфликт поколений, дочь не понимает мать и наоборот. В итоге дочь идёт в лес, встречает колдунью, та крафтит ей магическую пироженку, которую надо скормить матери, чтобы та изменилась. Та и меняется, но чересчур радикально — превращается в медведя.

Большой чёрный медведь с удивлённым выражением лица стоит в осеннем лесу, освещённый мягким закатным светом.
Момент из мультфильма «Храбрая сердцем» — в глазах виден интеллект
Крупный план анимационного бурого медведя в темном лесу, его морда повернута к зрителю, а человеческая рука ласково гладит его спину.
Момент из мультфильма «Храбрая сердцем» — так выглядят глаза хищника

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

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

Очень круто сделали.

Оставить комментарий

Орлы и кольцо

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

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

Стр. 92 письма Толкина Кристоферу (18.12.1944): тревога за службу в ВВС, названные абсурдными и сравненные с Молохом.
Выдержки сборника писем Дж. Р. Р. Толкина, издательства «АСТ», Москва, 2019, страницы 157 и 158, скриншот письма к сыну

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

Но кажется я нашёл объяснение, которое никто ещё не использовал — Толкин просто не жаловал прогресс и плохо относился к авиации, прогрессивному тогда способу ведения войны, что видно по его письмам к сыну. А так как орлы — это тоже авиация, у него не лежала душа решать основной конфликт трилогии при помощи ненавистной технологии.

3 комментария

QuickShade

Отрыл тут для себя полезную программу — мне ночью даже с тёмным интерфейсом и минимальной яркостью иногда некомфортно работать за «Макбуком», — всё равно слишком ярко.

Подумал, что это вряд ли специфичная для меня проблема, поискал в интернете — может кто-то уже научился с этим что-то делать. Так и есть — существует по меньшей мере одна программа, которая позволяет снижать яркость сильнее, чем это делает сама система, называется QuickShade.

Меню приложения с ползунком яркости, пунктами «Enable Shade», «About», «Settings...», «Quit» и кнопкой «Sign up» на фоне интерфейса.
Настройки программы QuickShade

Настроил горячую клавишу ⌘+⇧+N, чтобы переключаться в «ночной» режим и обратно, пользуюсь уже неполный месяц, нареканий нет, очень рекомендую, если сталкиваетесь с той же проблемой.

2 комментария

Договориться с нейросетью

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

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

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

Скриншот диалога: пользователь просит эротическую сцену, ИИ отказывает, затем предлагает заменить «erotic» на «x-rotic», ИИ соглашается и генерирует описание.
Вот как можно договориться с нейросетью, чтобы обойти фильтры

Надо сказать, что создатели ChatGPT встроили в своё детище автоцензора, который срабатывает на определённых темах, которые создатели считают аморальными — это сейчас очень распространённая практика.

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

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

Я приготовился долго экспериментировать, но это оказалось очень легко — просто попросил заменить слово erotic на x-rotic и это сработало.

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

4 комментария

Тёмный режим

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

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

Дополнено: подкорректировал цвета, плюс сегодня вышла новая «Эгея», переехал на неё.

7 комментариев

Воздух в квартире

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

А пока они едут ко мне, пытаюсь разобраться откуда берётся эта мелкая опасная пылища в воздухе.

Скриншот приложения «Монитор воздуха»: PM2.5 — 55, PM10 — 57, CO2 — 994, темп. 26.0°C, влажность 56%.
Необъяснимые показания датчика сегодня ночью

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

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

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

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

Буду исследовать дальше.

5 комментариев

Датчик воздуха

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

Это китайский датчик Qingping Air Monitor Lite — симпатичный белый кубик из приятного пластика. Сейчас, если постараться, его можно найти за шесть тысяч ($86), я покупал за четыре ($58).

Белый цифровой датчик качества воздуха на деревянной полке, подключенный к розетке; на экране отображается уровень CO2 — 1084 ppm и время 08:14.
Датчик Qingping Air Monitor Lite (кодовое имя — cgllc.airm.cgdn1)

Через приложение Mi Home его можно подсоединить к «умному дому», при этом он ещё становится хабом для BLE-устройств, что тоже бывает полезно.

В зависимости от настроек, он умеет отображать показания в разных режимах. У меня настроено так, что табло работает в промежутке в 7:00 и выключается в 21:00, чтобы не мешать спать, а показания автоматически листаются — датчик последовательно показывает уровень углекислого газа, частиц 2,5 и 10 микрометров, влажности и температуры.

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

Хорошая штука, рекомендую. Жаль цена всё-таки высоковата.

Оставить комментарий

Нейрокродил-2

Продолжаем играть в «нейрокрокодила» — угадываем что нарисовала нейросеть MidJourney по данному ей описанию. Кажется вам зашло, поэтому вот вторая часть.

На этот раз в фокусе внимания — известные советские фильмы. Тяжело было подбирать, надеюсь я справился.

Пришлось перебрать довольно много фильмов, большинство названий дают довольно туманный результат («Кин-дза-дза», «Карнавальная ночь», «Свадьба в Малиновке» и прочее), оставил только те, по которым сгенерировалось что-то узнаваемое.

В фразу для генерации ставил английское название советского фильма (по «Википедии»), добавляя «soviet movie» («советский фильм»).

Коллаж из 8 сцен: голубь, баня, пара у ПК, солдат, пустыня, постер, арка, женщина с усами.
Восемь кадров по названиям советских фильмов по версии сети MidJourney

Добавлено: похоже слишком просто на этот раз, в комментариях и личке всё успешно угадали, кроме последнего.

33 комментария

Как оставить комментарий

Давно знаю, что многим неочевидно как оставить комментарий у меня в блоге. Время от времени мне кто-нибудь пишет в личку с этим вопросом и я утомился отвечать индивидуально.

Пишу для всех сразу: чтобы оставить комментарий под любой из заметок, надо написать текст, а потом нажать, например, на конвертик под текстовым полем (на него указывает зелёная рука на скриншоте). Там надо будет ввести имя, которым вы хотите представиться, и адрес электронной почты. Если почты нет, напишите что-нибудь похожее, типа «mail@example.org».

Интерфейс формы «Ваш комментарий» с кнопкой «Отправить» и иконками входа через Telegram, Twitter, Facebook, VK и email; зелёная рука указывает на иконку email.
Жмём туда, куда указывает зелёная рука

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

4 комментария

Формат AVIF и «Эгея»

Есть такой современный формат графики — AVIF, который родился из видеоформата AV1. Интересен он тем, что даёт иногда существенную выгоду от использования — в моём непоказательном эксперименте на первой попавшейся картинке он уделал формат JPEG на порядок).

Вместе с тем он неплохо поддерживается современными браузерами — 79% по данным сайта CanIUse. Это ещё без учёта полифилов.

Мне очень хочется его использовать и я ищу способ это сделать в движке «Эгея», который я использую у себя в блоге. Можно было бы просто вставлять эту картинку как HTML, но это не очень-то удобно — у «Эгеи» есть специальная разметка, которая даёт несколько плюсов — в частности с ней дружит встроенный редактор и из неё лучше готовятся поисковые снипеты.

Таблица поддержки браузеров: Chrome, Edge, Safari, Firefox, Opera, IE и мобильные версии показывают версии с поддержкой (зелёные), частичной (жёлтые) и отсутствием (красные).
Уровень поддержки браузерами формата графики AVIF

У меня возникла хорошая, на первый взгляд, идея чуть упростить себе жизнь через модуль mod_rewrite веб-сервера «Апач» («Эгея» его требует, у меня на хостинге он тоже используется) при помощи примерно такого правила:

<IfModule mod_rewrite.c>
AddType image/avif .avif

RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/avif
RewriteCond %{REQUEST_FILENAME} \.jpg$
RewriteCond "%{REQUEST_FILENAME}.avif" -s
RewriteRule ^.*$ $0.avif [END,T=image/avif]
</IfModule>

Что тут написано? Если браузер поддерживает формат AVIF (смотрим в заголовке), и запрашивает JPEG (определяется по расширению), и существует файл ненулевой длины с расширением .avif (то есть image.jpg.avif, например), то отдаём ему AVIF.

Хорошо работает, пока в папке с картинками лежит только image.jpg.avif, как только кладёшь ещё и image.jpg — перестаёт, отдаётся только она. Вчера час наверное думал что не так, пока наконец не понял — поверх «Апача» на хостинге стоит nginx, а ему мои правила по барабану.

Если картинки по урлу нет, то nginx отдаёт запрос дальше в «Апач», срабатывает правило, отдаётся AVIF, как только кладёшь JPEG, nginx его видит, отдаёт по урлу, не спрашивая «Апач» ни о чём.

Что с этим делать пока — не знаю, вероятно ничего, nginx никто отключить не даст (у меня обычный дешёвый хостинг без затей), буду думать над другими способами.

2 комментария

Суперпосудомойка

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

Такая стратегия ещё не давала сбоев, но иногда выбранная модель настолько радует какой-нибудь нечаянной фичей, что думаешь — без неё было бы очень неудобно, как же я её пропустил-то?

Проекция белого текста «F15» на деревянной поверхности под чёрной горизонтальной полосой.
Крутая суперспособность нашей посудомойки

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

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

2 комментария

Кирпич «РЕЧИЦА»

Хочется вспомнить, что у меня блог ещё и про кирпичные клейма, тем более, что есть о чём написать — мы с Алмазом Гараевым (блог «Казань заброшенная») ещё весной забрались туда, куда не ступает нога приличного человека и я там наснимал несколько новых для себя клейм.

Одно из них, — «РЕЧИЦА», — нашлось на обломке кирпича. К счастью клеймо сохранилось полностью и найти информацию о нём труда не составило.

Старый бетонный блок с выцветшей надписью «ОПЕРАЦИЯ» и круглым логотипом, лежащий на земле среди щебня и мусора.
Обломок кирпича «РЕЧИЦА», найденный в Казани, в месте, куда давно не ступала нога приличного человека

Речица — название деревни в Думиничском районе Калужской области. В 1897 году дворянин Владимир (по другим источникам — Владислав) Денисович Коссаковский построил в ней завод огнеупорного кирпича — глину там добывали давно поэтому логика в его решении была.

В революцию завод был национализирован и проработал ещё долго — до Великой отечественной войны, пока в 1942—43 годах деревня не была полностью разрушена в результате боёв. После войны завод перенесли в посёлок Марьинский, а Речица стала потихоньку вымирать.

Сейчас в Речице никакого производства нет, но на спутниковой карте видно несколько десятков домов, значит жизнь в ней ещё теплится.

Оставить комментарий

Биполярные сказки

У нас дома несколько «Алис» — дочка очень любит слушать сказки и всякие подкасты том углу квартиры, где она находится в данным момент. Естественно так получается, что я иногда что-то слушаю вместе с ней.

Есть такое мнение, что сказки должны что-то там воспитывать, если это так действительно так, то у детей должна быть настоящая мешанина в голове. В сказках нет единой логики, это и понятно — выдумывает их каждый, кто горазд, и следующая сказка может прямо противоречить предыдущей.

Дочка сейчас болеет ветрянкой, я провожу с ней времени больше, чем обычно и сказок наслушался сверх всякой меры. Сначала слушаешь сказку про то как мужик медведя обманул, — посыл такой, что мужик молодец, а медведь просто тупой, потом — про то как плохо обманывать, рассчитывать на врунов нельзя, дружить с ними не надо.

Ёклмн, да вы определитесь уже — хорошо обманывать или плохо? Или вообще плохо, но медведей обманывать можно? Ну, наверное, даже не буквально медведей, тут наверное какой-то ксенофобский подтекст?

Если дети в сказках и улавливают какой-то положительный моральный посыл, то наверняка чисто случайно.

2 комментария

AVIF в «Эгее»!

Как говорится, если нельзя, но очень хочется, то можно. «Эгея», как я писал не понимает формат AVIF, но мне его удалось всё-таки в неё вставить, причём даже малой кровью.

Изображение ниже я взял из своей заметки про Красную площадь в коронавирусный период. В оригинале оно весит 1,1 мегабайт в формате JPEG, в этой заметке используется сконвертированное изображение размером в 179 килобайт. Почувствуйте разницу.

Добавлено позднее: в небе, кстати, я отчётливо вижу артефакты сжатия, надо играть с параметром качества, прежде чем использовать. Но в остальном картинка как будто бы не попортилась.

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

Красно-белая церковь с разноцветными луковичными куполами и золотыми крестами на фоне голубого неба с белыми облаками, вид снизу через каменную стену и металлический забор.
Моя фотография храма Василия Блаженного (1555—1561 гг.) из заметки «Красная площадь без людей»

Итак, «Эгея» не поддерживает AVIF, но я её в «Эгею» вставил. Как же мне это удалось?

Дело в том, что «Эгея» поддерживает формат SVG, а SVG поддерживает внутри себя растровую графику, в том числе вставленную через протокол «data». Протокол «data» — это картинка, закодированная в текстовую строку, вида data:mime/type;encoding,encoded_data.

Вообще, SVG поддерживает и внешние ресурсы (то есть в теории способен подгрузить картинку снаружи), но при вставке через тег img (как в «Эгее») в нём это запрещено по соображениям безопасности.

Поэтому мысль такая — переводим графику в AVIF, кодируем в base64 («data» так умеет, а иначе бинарные данные не вставить), из-за кодирования они увеличатся на 33%, но даже при этом овчинка выделки стоит, а потом получившееся запихиваем в SVG.

Для конвертации я написал вот такой небольшой bash-скрипт (для работы требуется пакет ImageMagick):

#!/bin/bash

if [ -z "$1" ]; then
    echo "Usage: $0 <picturename>"
    exit 1
fi

NAME="$1"
NEWNAME="${NAME%.*}.svg"
WH=( $(identify -ping -format '%w %h' "$NAME") )

if [[ "$NAME" == *@2x* ]]; then
    WH=( $(( ${WH[0]} / 2 )) $(( ${WH[1]} / 2 )) )
fi

cat<<XML > "$NEWNAME"
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 ${WH[*]}" width="${WH[0]}" height="${WH[1]}">
<image width="${WH[0]}" height="${WH[1]}"
href="data:image/avif;base64,$(convert "$NAME" "avif:-" | base64)"/>
</svg>
XML

echo "$NAME" to "$NEWNAME" was converted.

Последовательность теперь у меня такая — готовлю графику в более привычном формате, запускаю скрипт, получаю файл SVG, вставляю его драг-н-дропом в редактор «Эгеи». Не знаю насколько у меня такой способ приживётся, буду пока считать эту запись тестовой.

Дополнение: уже сообщают, что в 15-й и ниже Айос ничего не видно.

13 комментариев

Золото

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

Поэтому когда я от одной знакомой услышал, что ей дед в наследство когда-то оставил золотые монеты, то очень заинтересовался нельзя ли на них как-то посмотреть.

Четыре золотые монеты Российской империи с портретами Николая II и двуглавым орлом, датированные 1897 и 1899 годами, на светло-голубой тканевой поверхности.
Золотые монеты моей знакомой — все периода правления Николая Второго

Оказалось, что это реально, но монеты надо найти — она не помнит где точно они лежат. Время от времени я напоминал о себе и вот недавно удалось в первый раз взять в руки настоящие золотые монеты!

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

В общем, золото в руках подержал, поставил, так сказать, галочку. 👍

Оставить комментарий

Концепт: текстовый «Инстаграм»

Смотрите какую прелесть отыскал в закромах — мой концепт текстового «Инстаграма». Придумался он мне летом 2018-го года, на фоне очередного всплеска интереса к нейросетям — я тогда безуспешно пытался обучить первую попавшуюся нейросеть отличать обложки архивных дел от их содержимого — это бы очень помогло в моей работе с архивами, где я искал свои корни.

Тогда я этот концепт реализовать не смог — не было технической возможности, а сейчас можно бы, но пока лениво. У меня тогда не было доступа к необходимой нейросети, а сейчас наверняка что-то подобное доступно онлайн. Нужна нейросеть image-2-text — которая по картинке готовит текстовое описание.

Скриншот Instagram: два поста с цветными фонами и текстом — «A man on a bike puts on a helmet a red bus at front» (1/6) и «A girl in overalls is sitting inside a window» (1/7).
Концепт «текстового инстаграма», придуманого летом 2018-го года, косметически подправлено под вид моего Инстаграма в 2023-м

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

Весь остальной интерфейс, включая игры со шрифтами («𝓘𝓷𝓼𝓽𝓪𝓰𝓻𝓪𝓶», например) рисуется символами Юникода — там всё нужное есть.

8 комментариев

Определение ширины и высоты файла JPEG

В «Эгее» есть какой-то плавающий баг, из-за которого иногда не заливаются файлы JPEG. Илья, автор «Эгеи», пытался с ним разобраться, но до конца понять проблему не смог.

Пока рабочая теория такая, что функция ПХП getimagesize (она возвращает тип изображения и его высоту с шириной) иногда выдаёт неправильные значения.

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

Вот Илья и попросил написать меня такой код на чистом ПХП. Надеюсь это позволит продвинуться в изучении проблемы — код вошёл в одиннадцатую версию «Эгеи».

Выложу его у себя тоже, чтобы не потерялся, ну и может кому-то ещё пригодится:

function readJPEGWxH(string $filename): array
{
    $file = new SplFileObject($filename);

    if (!$file->flock(LOCK_SH)) {
        throw new RuntimeException('Cannot lock the file');
    }

    if ($file->fread(2) !== "\xFF\xD8") {
        throw new RuntimeException('Unknown format');
    }

    for (;;) {
        $decoded = @unpack('H4segment/nlen', $file->fread(4));

        if ($decoded === false) {
            throw new RuntimeException('Unknown format');
        }

        ['segment' => $segment, 'len' => $len] = $decoded;

        // SOFn (Start Of Frame)?
        if (preg_match('/^ffc[0-3]/', $segment)) {
            $segdata = @unpack('Cbits/nheight/nwidth', $file->fread(5));

            if ($segdata === false) {
                throw new RuntimeException('Unknown format');
            }

            return [$segdata['width'], $segdata['height']];
        }

        // len = full lenght of segment except segment magic code
        if ($file->fseek($len - 2, SEEK_CUR) !== 0) {
            throw new RuntimeException('Cannot find start of frame');
        }
    }
}

5 комментариев

Углеродно-кремниевая сегрегация

Когда-то в Америке висели таблички, запрещающие неграм входить в бары «для белых», а сейчас иллюстраторы используют специальные метки, предписывающие искусственному интеллекту не заходить на их сайты:

<meta name="robots" content="noai, noimageai">

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

Я, конечно, понимаю из какой проблемы родились эти метки — среди биологических иллюстраторов есть мнение, что нейросети, которые обучались на их работах, по сути, воруют их интеллектуальную собственность, так как работы алгоритмов основаны на просмотре готовых работ.

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

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

Объяснение того как это работает на самом деле сложнее и, такое ощущение, что большинству недоступно. Простому же объяснению на понятных метафорах ещё предстоит родиться, но не факт, что оно не устареет ко времени своего рождения.

Тем не менее, собака лает, караван идёт, мы считали, что роботы нас освободят от физического труда, а они всё больше начинают освобождать от интеллектуального. Но цепочка от проблемы до результата пока достаточно длинная, чтобы ещё успеть вкусно покушать, сидя на её конце со стороны постановки проблемы.

2 комментария

Титанобоа vs. мегалодон

Загадка про курицу и яйцо для меня вообще не загадка, да и с китом и слоном мне всё досконально ясно. Но есть предел и моим знаниям — он в вопросах шестилетнего ребёнка.

Сегодня дочка огорошила меня новым вызовом: «папочка, а кто победит — титанобоа или мегалодон?», ответа у меня пока нет, буду изучать вопрос.

10 комментариев

Купоны

Сегодня до рабочего дня (я обычно приезжаю на работу загодя), выбирал себе крупный молоток на «Маркете» — за все годы у меня так и не завелось приличного. Обычно всё что надо забиваю либо молоточком из детского набора (это ещё из моего детства), либо обухом топора.

В это время рядом присел менеджер, которому нужно было что-то обсудить. Я как раз искал какой-нибудь купон для магазина, чтобы купить хоть немного дешевле, чем беспримерно удивил сидящего рядом менеджера.

Экран оформления заказа: 2 товара на 3058₽, скидка 113₽ (включая промокод CODE-AF), итого 2945₽, кнопка «Перейти к оформлению» и поле для нового промокода.
С добрым словом и купоном вы можете потратить меньше, чем с одним только добрым словом

Так я узнал, что существуют люди, которые не знают, что в интернете можно поискать купон. В следующий раз планирую рассказать ему про карты с кэшбэком — на эту покупку у меня будет кэшбэк 5%.

Шутки шутками, но оказалось (были опрошены три проходящие мимо ни в чём не повинные жертвы), что таких людей много. Если вы тоже из них, то рассказываю.

В интернете есть много сайтов (а в «ВК» — пабликов), которые называются «купонаторы». На них собраны купоны для самых разных магазинов. Всегда, когда я вижу на сайте какого-либо магазина окошко для ввода купона, я гуглю его название со словом «купон» (или «промокод»). И почти всегда что-то находится. Иногда скидки просто космические, мой рекорд — что-то около 60%.

Обычно так сильно не везёт, но сэкономив даже 100—300 рублей с покупки, я всё равно получаю какое-то удовольствие.

4 комментария

Краткость — сестра брата жены деверя золовки

Никак не могу понять телеграммный стиль некоторых комментаторов под фото. Ощущение такое, что опять вернулись телеграммы, где оплата по словам и у людей туговато с деньгами.

Например, попадается фото, на нём — девушка, под фото комментарий из одного слова, например, «глаза!» (или «ноги!»). Кажется, это означает примерно следующее: «милостивые господа, позвольте обратить ваше внимание на прекрасные глаза этой незнакомки».

Чёрно-белое фото: ноги человека идут по бревну в воде, на снимке подпись «фото Е. Канаева».
Что может значить комментарий «Баржа»? Я не понимаю

А что может означать комментарий «Баржа» под фотографией? Справедливости ради, что-то похожее на баржу там есть, фото я обрезал, но просто поверьте.

Что этим хотел сказать автор комментария?

Давал свою экспертную оценку видовой принадлежности судна? Запрашивал её? Может это выдающаяся баржа? Или у неё есть какая-то история, в которой комментатор осведомлён? Или в самом начале комментария автора хватил инфаркт и он упал лицом на кнопку «отправить сообщение»? Мне никогда не догадаться наверняка.

12 комментариев

← сюда туда →