Позднее Ctrl + ↑

Аудио по четвергам: Below The Surface

Какая мощь, давно такого не было:

Milo Raad: Below The Surface

Пишешь такой техно, учишься-стараешься, думаешь, что вроде неплохо получается, наконец, а потом слышишь такое и думаешь: ну, лет десять мне ещё надо поучиться.

Саундклауд

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

Думаем дальше № 24 — «Выпрыгивает из монитора, настолько он жёлтый» с Ромой Шаминым

С Ромой Шаминым пытаемся разобраться, кто из нас больше любит жёлтый цвет.

Все выпуски подкаста:
Эпл · Ютюб · Я.Музыка · Гугль-подкасты · Мейв · РСС для подкастного приложения

0:00 Тарификация шрифтов и тарификация Эгеи
6:16 Случай с Фонтстендом
8:42 Илья и Рома хотят иметь порядок в цветах, но ни RGB, ни Lab, ни HSL, ни LCH с этим не помогают
20:49 «Восприятийная одинаковость» и OKLCH → oklch.com
22:50 Честность модели OKLCH, ограничения мониторов и пришельцы
28:09 Илья про физический смысл цвета, волны и колбочки
31:42 Чем Илью смущает OKLCH и чем особенны жёлтый и фиолетовый
35:19 Рома о преимуществах OKLCH: доступ к цветам P3, предсказуемые свойства в генерируемом дизайне при невозможности контроля каждого случая
39:48 Генерация палитры с нужными свойствами, ховеры и тональные градиенты
48:07 Илья вспоминает госты и борется за индивидуальные права жёлтого цвета, а Рома хохочет
52:52 Ещё раз о плюсах OKLCH, будущем в Фигме и браузерах и образовательной ценности
1:02:56 Красивые градиенты на ЦСС
1:05:17 Ужас цветовых профилей и проблема двух разных одинаковых цветов
1:15:17 Илья фанат RGB, не признаёт CMYK, не верит в одинаковые цвета при печати, а Рома рассказывает секрет компании Пантон

См. также:

Отношение к изменениям в языке

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

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

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

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

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

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

А учитывая, что у меня есть некоторая аудитория, я могу ещё и перетянуть её на свою сторону. Так бы вы, может, не заметили беды с «то что», а я обратил на неё внимание, и вы уже можете не просто подчиниться, а выбрать: принимать ли это в свою речь или отвергнуть. И даже если это изменение почему-то «естественно», вы тоже сможете сознательно не принять его, вчитав в такой выбор метасообщение «мне не всё равно».

Когда, комментируя очередную заметку о языке, вы снова пишете, что язык определяют носители, и объявляете бой «прескриптивистам» (в моём лице), вы как бы говорите: «я не хочу выбирать сам, я хочу подчиниться случайным процессам». Вы же не выражаете даже несогласие с моим выбором, вы выражаете несогласие с самим правом выбирать, демонстрируете нежелание пользоваться собственным таким правом. Дело-то ваше, но я буду и дальше предлагать вам выбор.

Как работают отложенные публикации в Эгее

Смысл «отложенности» с точки зрения веб-программирования

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

Допустим, автор запланировал выход заметки на 15:00. Как добиться, чтобы в 15:00 заметка вышла? Веб-сервер умеет отвечать только на запросы, он не умеет по собственной инициативе просыпаться и что-то начинать делать. И тут почему-то многие разработчики начинают думать в сторону крона — планировщика запуска задач по расписанию.

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

Чтобы заметка вышла в 15:00, в 15:00 ничего не должно произойти, буквально ничего. Потому что что вообще значит «вышла»? Допустим вот сервер может проснуться в 15:00 и начать действовать, что он должен сделать-то? Отправить эту заметку на случайный айпи-адрес?..

Сама фраза «заметка должна выйти в 15:00» означает только одно: на все запросы, сделанные начиная с 15:00 нужно отвечать сайтом, где уже опубликована эта заметка. Если на сайт кто-то зайдёт в 14:54, а потом кто-то в 15:19, то заметку нужно будет показать по второму запросу, вот и всё.

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

Доработка системы кеширования

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

А тут нам нужно сделать, чтобы кеш каким-то чудом в 15:00 удалился несмотря на то, что автор ничего не редактирует. Разумеется, в 15:00 мы ничего делать не будем; решать этот вопрос мы будем в 15:19, когда читатель обратится за заметкой.

Но откуда мы узнаем, что именно запрос в 15:19 потребует пересборки кеша, а на тот, что был в 14:54, можно ещё отвечать из кеша? Ведь время публикации заметки хранится в базе данных, а если мы будем ходить в неё на каждый запрос для проверки, то это обессмыслит само существование кеша!

Чтобы решить эту задачу, пришлось реализовать запланированное устаревание кеша. Рядом с кешем на диске хранится файл с датами-временами, в которые кеш должен устаревать. Каждый раз, когда пользователь планирует выход заметки на будущее, эти дата-время записываются в этот файл. Перед тем, как выдать данные из кеша, Эгея смотрит: а нету ли в файле дат-времён устаревания даты-времени из прошлого? Если есть, значит кеш устарел, и его надо удалить, а уже потом собирать страницу по-честному, из базы.

Таким образом фича планирование заметок на будущее фактически сводится к фиче планирования устаревания кеша.

Каш

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

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

Ещё улочка:

Много где вместо улиц — лестницы:

Это вроде парковка в самом центре:

Горизонт очень завален:

Классная тряпка:

Продажа ковров:

Хамам:

Дверь, светильник и знак:

Табличеньки:

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

С видом на гору:

Фотографии из поездки в марте 2022 года. Слетайте в Каш!

На интерфейсном курсе: настраиваем толщины линий

Осмысленно выбранные толщины линий делают иллюстрацию понятнее и красивее. Исправляем на примере окна. 3 минуты с семинара курса:

Также есть на ВК-видео.

Это фрагмент № 148 онлайн-курса «Пользовательский интерфейс и представление информации». Записано на курсе 27 октября 2023 года.

Сегодня — последний день записи на курс, который пройдёт с 31 августа по 29 сентября.

Почитать о курсе

Программа, отзывы, запись

Что послушать — 73

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

Вот что я слушал в последнее время, что мне понравилось:

  1. Сергей Кулинкович на радио Москва-ФМ. Про Николая Иронова и роль нейросетей.
  2. Сэм Харрис о фактах и ценностях. Ещё один его спич про объективность морали. Очень понравилась мысль о том, что разность взглядов на мораль не мешает изучать её объективно точно так же, как разность взглядов на физику не мешает изучать объективно её, и что на конференцию о моральных вопросах можно даже не пускать сторонников людоедских взглядов.
  3. Виленская у Дудя, который иноагент. На 24:33 понравился термин «сложная звуковая вертикаль». Да, это как раз самое интересное в музыке и есть! Но я совершенно несогласен с противопоставлением гармонического и тембрального слуха, как будто это разные, но равноправные аспекты. Мне кажется, это просто разная глубина. Мелодия на поверхности, доступна любому, все могут подпевать; гармония сложнее; тембр — ещё сложнее. Большую часть истории музыки тембр вообще не был предметом целенаправленного сочинения, а был просто следствием физического устройства музыкальных инструментов, так что большинство людей вообще не приучены искать в нём идею и смысл.
  4. Подкаст чудес. Якубович у Серёжи-микрофона. Классный!
  5. Ева Эльфи: самая популярная порно-актриса из РФ. Всегда приятно слушать нормального человека, которому никто не насрал в мозги.

Синхронизация — это сложно (на примере заметок Эпла)

Заметил любопытный баг в синхронизации заметок у Эпла, который иногда приводит к потере данных. Представьте, что у вас есть файл с таким списком, скажем, покупок:

  • помидоры
  • сыр
  • молоко
  • колбаса
  • орехи

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

  • помидоры
  • орехи

После магазина заезжаете на кофе, открываете ноутбук, там ещё старый список:

  • помидоры
  • сыр
  • молоко
  • колбаса
  • орехи

Вспоминаете, что ещё надо купить сметану, дописываете её рядом с молочкой:

  • помидоры
  • сыр
  • молоко
  • сметана
  • колбаса
  • орехи

Тут ноутбук ловит местный вайфай и синхронизируется. Вхуж:

  • помидоры
  • орехи

Куда делась сметана? А просто просралась! Видимо у Эпла так устроена логическая модель этих списков, что я удалил «диапазон элементов» и тот факт, что в него позже добавилась сметана, ни на что ни повлиял, диапазон удалился вместе со сметаной? Ну или я добавил сметану в как бы уже удалённый диапазон? Фиг знает, но такую лажу я ловлю уже второй раз.

Кроль и вольный стиль

Есть разные способы плавать: брасс, кроль, баттерфляй. А ещё есть плавание «вольным стилем» — это когда плывёшь как хочешь. Спортсмены всегда хотят кролем, потому что так быстрее всего, но в результате многие думают, что «вольный стиль» — это некое альтернативное названия кроля. На бытовом уровне ошибка несущественная, но в случае с Эплом это тупняк на ровном месте:

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

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

Кладь и убор

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

«Головной убор» — похоже, из той же серии. Какой ещё бывает «убор»?

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

Ранее Ctrl + ↓