Канал Ильи Бирмана
13.2K subscribers
5.28K photos
154 videos
21 files
3.41K links
Заметки, советы, находки

Чат для обсуждения тем из канала (офтоп нельзя):
https://t.me/ilyabirman_chat_2

Классический заблокированный чат канала (там творится дичь):
https://t.me/ilyabirman_chat

Разместить рекламу:
ilyabirman@ilyabirman.ru
Download Telegram
Доллар в регвыражениях не всегда означает конец строки

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

Есть регулярное выражение (для примера):
/(some|any)thing$/i


Доллар, уверен я, означает «конец строки». Выражение должно проверять, что строка заканчивается на слово something или anything в любом регистре. Но вот оно иногда срабатывает, даже если строка не заканчивается на него! Я в отчаянии уже проверяю впрямую, что строка заканчивается на g или G, и точно вижу, что она не заканчивается. А выражение срабатывает!

Замечаю, что это происходит, если в конце выражения стоит возврат каретки. Думаю: какого хрена? У меня же написан доллар сразу после g, никаких возвратов каретки там! Модификатора m, который разделяет текст на отдельные строки, нет. Может, он как-то там по умолчанию включился, и надо его, наоборот, отключить?

От безысходности иду читать документацию:
https://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Никакого антонима модификатору m не нахожу. Читаю про сам m:

m (PCRE_MULTILINE)
By default, PCRE treats the subject string as consisting of a single «line» of characters (even if it actually contains several newlines). The «start of line» metacharacter (^) matches only at the start of the string, while the «end of line» metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set).

Что? Что ещё за нахрен D?

D (PCRE_DOLLAR_ENDONLY)
If this modifier is set, a dollar metacharacter in the pattern matches only at the end of the subject string. Without this modifier, a dollar also matches immediately before the final character if it is a newline (but not before any other newlines).

Как же можно было такую дичь придумать? Исправляю регулярное выражение:
/(some|any)thing$/iD


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

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

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

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

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

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

Оправдания не имеют значения, и по идее надо сразу переходить к предложениям: что теперь делать-то? Но все мы живые люди, и иногда очень хочется объяснить, почему что-то не получилось. Если вы просто начнёте оправдываться, клиент будет думать, что решать созданную вами проблему вы не собираетесь. Поэтому нужно хотя бы сказать: «Я хочу объяснить, почему не получилось, и потом, если позволите, расскажу, как предлагаю исправить ситуацию».

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

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

2. Уменьшаю масштаб на один шаг ⌘-минуса (обычно помогает на таких сайтах). О, слова про «бест юзер-экспириенс». Да куда уже бесте́е! ⌘W
В прошлом году сделали с Ромой Мочаловым обновленьице схемы челябинских трамваев, и она уже висит в трамваях и на остановках повсюду:
https://ilyabirman.ru/chelyabinsk/trams/2023/

В галерее — эволюция за четыре года. Клёво, что пучки худеют: дублирование маршрутов постепенно устраняется. Сами трамваи тоже всё приятнее, а пути — всё обособлённее.
Мало кто помнит, но на первом Айфоне домашний экран ещё не листался, и иконки в нём нельзя было расставить по-своему. Иконка «Айтюнса» была стрелкой вниз и указывала на иконку «Айпода» — приложения с музыкой. Типа там скачиваются песенки и попадают в Айпод.
Сегодня ещё поразгребал фрагменты интерфейсного курса, дошёл до 75-го:
https://ilyabirman.ru/meanwhile/all/ui-course-frags-1-75/

От № 51 до № 75 — свежедобавленное, посмотрите.

Если всё смотреть лень, особенно рекомендую № 54 про маковскую скриншотилку, № 55 про соответствие между логикой и внешним видом, № 62 про клиента, который хочет фигню, № 66 про исследование Эпла и № 71, где я запрещаю выравнивание по центру.

Ещё раздел «Бизнесовое и продуктовое» пополнился полезными видосами.
Прикол, в Ярославле стырили нашу трамвайную экипировку. При этом передний квартет наклеили криво, «вынос» сделали какой-то свой по мотивам оригинала, а наклейку «Открыть двери» зачем-то испортили, выровняв текст по правому краю. Интересно, как к ним макеты просочились. Не надо так.
Audio
Думаем дальше № 4 — «Квота на пять истерик в год» c Сергеем Стеблиной

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

0:00 — Фолоу-ап: Серёжа дорисовал схему метро Амстердама → https://steblina.myportfolio.com/amsterdam-metro-map
7:28 — Мощный секрет рисования пучков (попытайтесь понять на слух)
13:20 — Как не бояться экспериментировать и «ломать» хрупкие макеты
16:22 — Фолоу-ап: Адоби и неуважение к пользователю
24:12 — Скилл распознавать мудаков → https://t.me/ne_znal_ai/1695
35:19 — Срочность отпадает естественным путём
37:31 — У Ильи ощущение шаббата от 1 января
46:50 — Если чужой дизайн — говно
54:44 — Суперспособность Артёма Горбунова
57:45 — Кто такой арт-директор

Все выпуски:
https://thinkon.mave.digital

РСС, чтобы подписаться в подкастном приложении:
https://cloud.mave.digital/51724
Мигающие гирлянды

Гирлянда не должна мигать. Она должна просто гореть постоянным приятным светом. Или, в крайнем случае, очень плавно переливаться между приятными цветами.

Обычно у гирлянд есть разные режимы, между которыми можно переключаться кнопочкой. Это ради бога, но изначальным режимом должен быть не мигающий. Кому нравится мигание — пусть настраивает режим, а я хочу просто включить в розетку и наслаждаться праздником.
В посиделках в конце семинара, когда уже все работы разобрали, участница спрашивает про плакат о синтаксисе, где его купить. Я нахожу новость и заодно ещё рассказываю про бумагу, которая горит. 5 минуток:
https://www.youtube.com/watch?v=o2DjvI6nVts

Последние дни идёт новогодняя акция, где в том числе продаётся и этот плакат:
https://bureau.ru/

И идёт запись на февральский интерфейсный курс, и сейчас скидка из-за ранней записи максимальная — 20%. Всё про курс, отзывы и кнока записи:
https://bureau.ru/courses/ui-online/
Коллеги, прошу прощения, что отрываю в рабочее время по рабочему вопросу.

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

Спасибочки-чмоки!
А что там по другую сторону Ла-Манша? Маршрутоуказатель и автобусные остановки Парижа:
https://ilyabirman.ru/meanwhile/all/paris-bus-stops/