Остатки и наблюдения из Каша

Что там осталось? Уличная табличка:

Другая уличная табличка:

Надпись:

Вид из окна:

Вид на море:

Ещё один:

Люк:

Обед:

Наблюдения — это просто всякие штуки, типа, «о как можно!»

Какой-то знак про жестовый язык:

Знак о турецких скоростях с необычно простым обозначением населённого пункта:

Невообразимое ограничение в 82 км/ч:

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

См. также первую часть

Тому назад

Слышу такое повествование:

Но вернёмся на 5 недель тому назад...

И что-то мне в этом режет слух. Не знаю, почему, но мне кажется, что можно сказать «это было пять недель тому назад», но нельзя вернуться на пять недель «тому назад», на пять недель можно вернуться просто «назад». Что думаете?

Понятно, что слово «тому» тут в принципе лишнее, но такое уж выражение устоявшееся. Однако кажется, что в приведённом примере оно не работает.

Аудио по четвергам: 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. Ева Эльфи: самая популярная порно-актриса из РФ. Всегда приятно слушать нормального человека, которому никто не насрал в мозги.

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

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

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

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

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

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

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

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

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

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

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

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

Ранее Ctrl + ↓