Одна из вещей, которые расстраивают меня в связи с искусственно-интеллектуальной революцией это то, что когда мы научим компьютеры программировать (а все к тому идет), то они будут программировать примерно на том, что есть сейчас. Тот же Питон, тот же Джаваскрипт, тот же DOM, с которым они будут бороться. Они научатся гуглить баги браузеров, чинить питоновские зависимости, тратить ресурсы, запуская код на динамических языках и кодируя картинки в base64.
Ну и вот. Жалко ресурсов-то. Это все так неоптимально! Хотелось бы не мириться с тем, что есть, а как-то вперед двигаться, починить это сначала, а потом уже автоматизировать. Прибраться перед приходом гостей. А там, глядишь, мы и сами может тоже от этого выиграли бы.
Но этого не будет, конечно. Вот и расстраиваюсь.
Есть несколько супер-очевидных для меня правил интерфейса, которые почему-то не очевидны всем остальным. Одно из таких правил — контролы не должны перекрывать контент.
Надо бы показывать картинками, но я в вас верю, вы справитесь и так. Например, Ютуб. Смотришь видео. Нажимаешь паузу. Снизу вылазит ебала и перекрывает кусок видео. Причем, ебала прозрачная, значит, чтобы ее было видно, поверх видео сначала накладывается градиент. Зачем? Почему? Дофига места же. Экран бесконечный по вертикали. Плюс у вас куча хлама почему-то спокойно рисуется вокруг видео, а для контролов места нет?
Как надо? Рисуйте ту же полоску снизу, а не поверх. Там нужно 40 пикселей, камон, как-нибудь впихнете. Заодно ховер не нужен будет — можно всегда их показывать. Заодно градиент не нужен будет, не будет портить видео (божечки, как меня бесят эти черные полупрозрачные градиенты поверх всего). А главное — можно будет поставить на паузу и рассмотреть _контент_, то, ради чего мы сюда, собственно, пришли. Нас не интересуют ваши контролы, у нас нет цели управлять видео, мы хотим посмотреть, что нам показывают. Как бы, эээ, приоритеты?
Еще смешнее, если записать кусочек экрана высотой 100-200 пикселей и открыть запись в КвикТайме. У него панель даже к низу не прибита, и высокая как сволочь. Короче, она просто поверх видео целиком считай, по 10 пикселей контента видно в щелях по бокам и все. При этом само видео довольно маленькое, 90% экрана пустует, но нет, надо залезть своими контролами на мой контент. А ведь раньше было нормально! Но почему-то все решили, что контролы должны плавать.
И такое везде. В фотках. В интернет-магазинах. В картах. В гугл-картах, если открыть фотку заведения, все 4 угла будут заняты какими-то там контролами, а саму информацию в этих углах фото ты так никогда и не увидишь.
В телефоне — айфоновская камера показывает видоискатель на весь экран, например, с контролами поверх, собственно, видео. Да, видео в этом случае занимает большую площадь, но _выстраивать кадр_ сложнее, потому что контролы мешают. А теперь подумайте, какая у вас задача — чтобы пикселей побольше использовать или чтобы видео хорошее получилось?
То-то и оно. Не надо бояться уменьшить область контента и нарисовать контролы сбоку. Как, выглядит на первый взгляд не так секси. Зато удобнее в разы.
Самый непоянтный мне продукт — Дискорд. Понятно, что предложение выгодное — разворачивай комьюнити нахаляву, соответственно и популярность. Но интерфейс взрывает голову каждый раз.
Я тут съездил на Heart of Clojure (Сердце, получается, Кложи) и там все было через дискорд сервер. В прошлом у меня были проблемы даже чтобы инвайт принять, потому что ты открываешь ссылку, она просит скачать приложение, ты открываешь приложение, там опять ссылка на сайт, он опять просит приложение, приложение начинает обновляться... Но в этот раз более-менее безболезненно прошло.
Думал я. И тут на меня начала валиться куча нотификаций, о которых я не просил, на которые не подписывался и которые меня даже не касаются.
Ладно, думаю, наверняка надо просто пойти и какую-то настройку поменять. Настройку я не нашел (но она есть, тут мой тупняк), поэтому замьютил все каналы по отдельности.
Нотификации продолжали валиться. Потому что то ли я не все каналы видел, то ли новые добавили (я, кстати, до сих пор так и не понял). И тут стало веселее: я вижу нотификацию. Захожу в приложение. И не вижу, откуда она! То есть нигде нет красного этого ебучего кружочка.
Окей, думаю я. Прощелкаю просто все каналы, чтобы она съебалась. Нажимаю на один, второй, третий, и тут хуяк — оказываюсь на видеозвонке. Оказывается, список каналов перемешан со списком видеозвонков, выглядят они практически одинаково (отличаются темно-серой иконкой на черном фоне), и самое главное — никакого подтверждения. Ты просто нажимаешь на «канал» чтобы глянуть что там, а тебя уже подключают.
Извинился перед организаторами (я буквально ворвался в чей-то митинг! Из-за интерфейса!) и с горем пополам нашел кнопку выйти (она микроскопическая если что).
Конфа уже закончилась, и вдруг сегодня мне прилетает еще одна нотификация. Я решил уже твердо разобраться, где она и откуда. Захожу — нет канала. Т.е. я получил нотификацию от канала, в котором даже не состою! Офигенный интерфейс.
И на эту же тему — сегодня же случайно обнаружил, что у меня два непрочитанных DM-а с конфы. То есть присылать нотификации с каналов, в которых ты не состоишь, мы умеем, а присылать нотификации про директ, ДИРЕКТ блять, когда человек ЛИЧНО ТЕБЕ пишет, так у нас сразу лапки?
Серьезно, кому в голову пришло, что разумным дефолтом может быть нотификации на все сообщения во всех каналах (а не @mentions, кто хочет читать ВСЕ?) КРОМЕ прямых сообщений лично тебе.
Ну и последняя мелочь — выбранный текущий канал выделяется более светлым шрифтом, ровно как и каналы с непрочитанными сообщениями! Ерунда, но добавляет замешательства. Хочется сбросить эту «непрочитанность», а сбрасывать нечего.
Все это приправлено сверху ровным слоем рекламы. Потому что жить на что-то надо.
Такой вот у меня Discord Experience. Как ваш день?
Надо поговорить про Кложу, а не с кем, поэтому поговорю с вами.
В Кложе есть понятие кейвордов. Отличная штука, когда распробуешь. Кейворд — это interned строка, т.е. строка, которая гарантированно существует в программе в одном экземпляре. Представь себе пул этих строк, и если создаешь новую, она сначала ищет и там, и если находит, возвращает существующую. Выглядят так:
:keyword
"string"
{:uri ...
:headers ...
:body ...}
{:ring.request/uri ...
:ring.request/headers ...
:ring.request/body ...}
:user
. А Ring возьмет и через 15 версий тоже решит, что у них должен быть :user
. Конфликт-с. Но мне кажется это как добавление ключевых слов в языки программирования — проблема теоретически страшная, но почти никогда не встречающаяся на практике.let a
внутри функции f()
это совсем не тот же let a
который внутри функции g()
. Ну да, не тот, но проблем-то от это не появляется!
Читать полностью…
Был на выходных в Лейпциге, ну и надо было билет на трамвай как-то приобрести. Я, конечно, не дурак, чтобы в самом трамвае купюру в автомат совать – я же айтишник! Я скачал приложение.
Ну и в общем сообщаю вам, что билет на трамвай покупается суммарно где-то в 20 шагов примерно. Типа, надо
- зайти в Апстор,
- скачать приложение,
- подтвердить лицо,
- зайти в скачанное приложение,
- зарегистрировать аккаунт,
- сходить на почту,
- подтвердить аккаунт по ссылке (откроется браузер),
- перейти обратно в приложение,
- залогиниться,
- выбрать «купить билет»,
- выбрать способ оплаты,
- открыть сайт пэйпала,
- ввести логин/пароль,
- чтобы это сделать, надо сходить в приложение 1password и _там_ тоже ввести пароль,
- зайти на пейпал,
- подтвердить аккаунт в приложении пейпала (да, это другое, то был САЙТ),
- еще раз подтвердить лицо (спасибо, что не пароль),
- вернуться на тот временный браузер с пейпалом в приложении с билетами, т.к. конечно приложение пейпала о нем не знает,
- нажать купить,
Ну и все вроде. Изи катка.
Если посчитать, в процессе участвуют:
- Апстор
- Почта
- Приложение с билетами
- Браузер
- Приложение пейпала
То есть пять принципиально разных приложений.
Если еще посчитать, то доказывать что я это я мне пришлось пять раз. На моем собственном телефоне, между прочим!
Если коротко попытаться описать этот опыт, то это минут 5-10 очень сильного концентрированного фокуса и стресса.
И это я еще знаю, что делаю! Типа, я понимаю каждый шаг, потому что опыта в этом говне много. Интересно, как обычные люди через это все проходят. Понимают ли разницу между сайтом пейпала и приложением пейпала. Почему она вообще существует. Куда надо «возвращаться», когда ты нажал «подтвердить аккаунт» и открылся браузер. Как сходить в почту за паролем.
Но это ненормально же! Бред требовать этого от обычного человека, когда ему всего-навсего надо купить билет. Один, может быть, раз в жизни! Бред требовать пройти 20 шагов, где несколько раз надо _догадаться_, что делать дальше. Где нет большой кнопки «Дальше», а вместо этого надо _закрыть_ текущее приложение, поискать и найти другое и что-то поискать уже в нем. А потом догадаться вернуться обратно. Где экраны с приложениями летают слева направо, сверху вниз и иногда открываются друг в друге.
Отдельно не помогает, что на телефоне нет индикации открытого приложения, и ебучий минимализм запрещает просто написать «сейчас вы в почте, это окно почты». Нет, вместо этого просто белая страница с текстом и ссылками, как везде, и нужно догадываться по тому, есть ли сверху тонкая серая линия или нет, и сколько их. А чтобы сделать жизнь пользователей проще, внешний вид приложений и эти визуальные «подсказки» меняются каждый год, потому что «редизайн».
Короче, честно, я не представляю, как люди пользуются телефонами за пределами «тик-ток/убер/погода». Вроде бы идея аппсторов в том, что как раз каждый местечковый бизнес что-то сделает специально для себя, но когда просто чтобы купить билет надо 20 шагов и пять приложений, ну нет, это не может даже в теории сработать. Надо что-то чинить, ребят.
По твиттеру опять пошел какой-то хайп-трейн программирования с ИИ. Наверное, опять какому-то стартапу денег дали, а люди и рады это раздуть забесплатно.
А я до сих пор НЕ ПОНИМАЮ.
Вот чисто на прошлой неделе, чем я занимался:
Писал грамматику для Кложи для Саблайма. Там очень специфичный синтаксис, и сложная проблема, такая, что может быть один человек на планете способен в ней разобраться (он пришел мне на помощь на форуме). И в конечном итоге оказалось, что решения, кажется, нет, но можно найти неплохой компромисс. Но по хорошему надо фича реквест в Саблайм пилить.
Потом открывал попап-окошки с браузере. Вроде не бог весть какая задача, но выяснилось, что все три браузера ведут себя существенно по-разному, и об этом нигде не написано. А если и было написано, то наверняка уже неактуально.
Потом ловил и чинил баг в библиотеке Mapbox. Опять же, природа багов такова, что про них нигде не пишут — если бы на баги была документация, они были бы фичами. А ИИ, понятно, учится на том, что написано, а не на объективной наблюдаемой реальности.
И вот сейчас пилю текстовый ввод с автодополнением на CodeMirror. Не самая последняя библиотека, но достаточно редкая, чтобы ИИ не мог про нее ничего внятного ответить. Но он не молчит конечно, просто плюется своими фантазиями об АПИ, которых никогда не было и нет.
Так это. Как ИИ должен помогать кодить-то? Я тоже хочу на хайп-трейн. Нужно несложные интернет-магазины пойти делать или что?
Вообще к Тейлвинду есть еще одна претензия, которая на фоне всего остального мелочь, но зато универсальная, можно применять везде. Это сокращения.
Так вот, сокращения — отстой. Не надо экономить буквы. Не надо писать pl-0 mt-1 w-px
когда можно написать padding-left: 0; margin-top: 4px; width: 1px;
. Какая в сокращениях польза? Никакой. А вреда много.
Человеческий язык в процессе эволюции уже нашел оптимальную длину для каждого слова. То, что бы было слишком длинным — сократилось, то, что было неразборчивым или путалось — усложнилось и удлинилось. Вот ровно те самые буквы, которые мы читаем в книжках, ровно в том самом количестве и есть то, что человеку комфортнее всего.
А потом приходит программист и такой: чет padding-left длинновато, давайте писать pl вместо этого. Ну да, места ты немножко сэкономил. Но теперь глаз не может быстро считать, ему нужно останавливаться, вглядываться, включать медленное мышление. Речевые центры не задействованы, десятилетия привычек не помогают, и все ради того, чтобы какой-то Вася когда-то чуть меньше кнопок нажал.
Очевидно, что если бы язык можно было бы как-то просто и легко улучшить, это бы уже сделали. Если бы мы читали pdnglft так же легко и быстро как padding-left, то все газеты и книги уже писали бы так. Однако этого почему-то не происходит. Почему?
Все горячие головы из компьютер сайнс, кто когда-то не подумал и сэкономил на спичках, насколько мне известно, впоследствии сожалели об этом. Зато благодаря ним у нас до сих пор есть такие шедевры, как /usr
вместо /user
, referer
вместо referrer
, setjmp
, longjmp
, k8s
и много чего еще.
Я и сам побывал в этой шкуре. У меня есть библиотека для интернационализации, и мне нужен был формат для даты-времени. Я, понянто, посмотрел на prior art и чуть не сделал так же. Ну а что, yyyy
— длинный год, yy
— короткий, M
— месяц, m
— минута, mm
— минута с нулем. Все знают, всем понятно.
А потом посмотрел на это, подумал — господи, ну что за идиотизм? И сделал нормально:
(tongue/inst-formatter "{month-short} {day}, {year} at {hour12}:{minutes-padded} {dayperiod}" inst-strings-en)
Бирман снова великий. В подкасте «Думаем дальше № 23: Отделы дизайнеров с пипетками» он рассказал про концепцию дизайна как эволюции.
Много где, но особенно в больших компаниях, дизайн перестал быть осмысленной, целенаправленной деятельностью (проектированием) и превратился в эволюцию — команда пробует маленькие изменения (мутации), меряет их эффект и оставляет те, которые приводят к положительным изменениям прямо сейчас. Совсем как эволюция!
Вы все знаете миллион таких примеров. Я помню, как Букинг хвастался тем, что в любой момент времени у них одновременно проходит под сотню А/Б тестов, а мы смотрели на это и говорили: ребят, ну очевидно же фигня получается! А они — зато по данным!
Эволюция, очевидно, работает. Проблема в том, что она а) занимает много времени (но это ладно, допустим, у корпораций есть бесконечность времени), и б) позволяет найти только локальный максимум. Скажем, с помощью эволюции невозможно перейти от пропеллерного двигателя к реактивному (пример из подкаста) — каждое изменение должно быть маленьким, локальным и _обязательно улучшать показатели_. Поэтому большие компании никогда не делают новые продукты, а только покупают и развивают их.
Процесс поиска локального максимума иногда приводит к странным «багам». Например, у жирафа гортанный нерв идет от мозга вниз по шее к сердцу, заворачивается за аорту и идет обратно к гортани. Получается 4.5 метра, хотя оптимально было бы соединить напрямую. Просто у других животных шея короткая, и заворачивать или нет нет никакой разницы, а когда шея стало удлиняться, так и оставили.
В подкасте приводится пример Инстаграма — у них сейчас посты в одном месте, сторисы в другом, а рилсы в третьем. При этом периодически одно подмешивается к другому, потому что людям непонятно. Каждый из этих шагов был понятен, но результат — сложная нелогичная каша. Никто ни в какой момент не сел и не придумал, как это все должно работать вместе.
Причины тоже понятны — во-первых, большие компании боятся что-то менять. А вдруг сломаем? Никто же не знает, почему условный Инстаграм на самом деле работает. Просто когда-то сделали, запустили и полетело, а все сделали вид, что так и задумывалось.
Вторая причина — квалификация. Как и в любой профессии, новичков сильно больше, чем опытных дизайнеров, и их всех надо трудоустраивать. Но давать им в руки руль опасно — никто не знает, хорошие из них идеи полезут или странные. Поэтому им ничего на самом деле менять не дают.
Самое веселое в том, что эволюционный дизайн первым заменят нейросети, потому что он прекрасно автоматизируется. Хэй Сири, придумай мне 10 вариантов расположения надписи «3 человека смотрят этот отель прямо сейчас, а осталось всего две комнаты!». Выкладываешь, меряешь, и если что-то выстрелило — мержишь в мастер. Зачем в этом процессе хоть где-то человек? Правильно, незачем.
Будущее полно надежды как никогда.
Кложура, свет моей жизни, огонь моих чресел. Грех мой, душа моя. Кло-жу-ра: кончик языка совершает путь в три шажка вниз по нёбу, чтобы на третьем толкнуться о зубы. Кло. Жу. Ра.
Она была Кло, просто Кло, по утрам, ростом в пять мегабайт (без двух килобайт и в одном носке). Она была Кложа в длинных штанах. Она была Кложжи в школе. Она была Кложур на пунктире бланков. Но в моих объятьях она была всегда: Кложура.
А предшественницы-то у нее были? Как же — были… Больше скажу: и Кложуры бы не оказалось никакой, если бы я не полюбил в одно далекое лето один изначальный язык. В некотором княжестве у моря (почти как у По).
Когда же это было, а?
Вопрос на засыпку. Допустим, вам дали машину времени. Может отправить вас, скажем, в 2004-й год. Без обратного билета. Т.е. остаетесь там насовсем. Но времени готовиться нет, надо решать сейчас. Вы решили лететь.
Вопрос: имея все ваши знания на данный момент и представление о том, как будет развиваться индустрия в следующие 20 лет, что бы вы могли такого сделать в 2004-м, чтобы оставить след? В фантастике это популярный троп — вот только бы иметь машину времени, я бы все там поменял. А что на самом деле? Что бы вы смогли сделать, с позиции маленького человека, родившегося в стране третьего мира?
Биткоин еще не купишь. Но можно его изобрести! Смогли бы? Повторить спеку, реализацию? По памяти? А выложить, привлечь внимание, дать жизнь?
Айфона еще нет, но вы знаете, что он точно будет, и будет иметь оглушительный успех. Что бы сделали с этим знанием?
Самое простое, наверное, это Фейсбук. Уж его-то точно можно написать самому. Но там нетривиальная модель распространения, для которой неплохо бы оказаться в Кембридже, а вы в России. Как поступите?
До ИИ еще далеко, но опять же, может быть как раз тогда и нужно было как-то начинать? Но как?
Фигму смогли бы написать? Остановить уничтожение флеша? Ввести моду на плоский дизайн? Или все смотрели бы на вас как на идиота?
Предложите свой вариант.
Ну и кстати про прогресс. Одна игра, которая меня адски бесит своим концептом, это Терра Нил. Это такой чилловый сити-билдер, в котором вместо того чтобы загрязнять среду ужасными зданиями, людьми и цивилизацией ты ее наоборот, чистишь и улетаешь. Типа, прилетел, все пожухлое, почистил, все зацвело, собрал вещи и улетел.
Вот и мне месседж тут непонятен. Прогресс плохо? Цивилизация плохо? Но как бы технологии, которыми очищается среда, кто сделал? Из чего, из веток и палок что ли? Нет, из супер-продвинутых материалов и технологий.
Люди, убейте себя? Самоуничижение это вообще нездровая фигня какая-то. Почему должно быть стыдно быть человеком? С чего бы?
Природа хорошо? Но природа это то что было до прилета человека. Засохшее и пожухлое. Ну да, а кто говорил что природа это приятно и красиво? Природа никому ничего не должна. Но нет, прилетел человек и такой: природа конечно хорошо, но надо чтобы было хорошо по-другому. И давай все переделывать под себя, как ему нравится.
Короче, давно такого смешанного и неточного месседжа не видел.
Можно сколько угодно убеждать себя, что у тебя баннерная слепота, что реклама на тебя никак не действует, но достаточно пожить без рекламы месяц, и потом случайно увидеть интернет в его настоящем виде, как ты тут же начинаешь молиться на блокировщик с утроенной силой.
Со мной такое периодически происходит, и эффект разительный. Недавно поставил SponsorBlock — расширение, которое вырезает «нативочку» _внутри_ видеороликов на Ютубе. До этого жил с полной уверенностью, что блин, да мне не сложно промотать, да я и не обращаю внимания даже, что там рекламируется, может чаю схожу попить.
Но нет. Обращаю. Запоминаю. Против своей воли. И какое же это освежающее чувство — в душе не ебать, о чем там говорили минуту в середине ролика. Мне все равно это не надо.
Короче, если думаете, что вам блокировщик рекламы не нужен, то попробуйте — окажается, что был нужен, просто вы этого не знали.
Короче еще одна идея на миллион: PNG со слоями. Ну то есть не обязательно PNG, условно новый растровый формат в котором есть слои.
Потому что — ну а почему нет? В векторных картинках слои делаются тривиально. Фича мега-полезная. Добавляется тривиально. Прозрачность уже есть. Обратная совместимость бесплатная — обычный растр это просто картинка с одним слоем.
Например — скриншот экрана, в котором ты можешь подвигать или включить-выключить некоторые окна. Или например дорисовал я к какой-то картинке поясняющие стрелочки. Мне физически больно, когда их приходится вмерживать в картинку, безвозвратно ее тем самым разрушая. Ну а для каких-нибудь прототипов интерфейсов вообще кайф — нарисовал кнопку, выложил, кто-то другой подвигал ее, перекрасил, а то и вообще убрал/заменил на свою. И фон при этом в ручную не надо восстанавливать как-то.
Для условных фоток это, конечно, не нужно. Но для любой почти цифровой графики — кладезь редактируемости, переиспользуемости и интероперабельности. Еще и сжиматься будет, поди, лучше в некоторых случаях.
Понятно, что почти все растровые редакторы это умеют. Но у них у каждого свой формат — Фотошоп, Pixelmator, кто там еще. А надо именно стандартный, чтобы как PNG или WebP, у всех был и бесплатно. Общий знаменатель.
Показали, что в Гитлабе у любого токена есть expiration date:
> In GitLab 16.0, any personal, project, or group access token that does not have an expiration date will automatically have an expiration date set at one year
И меня это бесит, да, вот по двум причинам:
Первая: непонятно, что тут пытаются обезопасить и от кого. Допустим, токен у тебя украли. Злоумышленник получает доступ на год. И этот год делает что хочет. Очевидно, много чего можно сделать. Вопрос только в том, что когда токен протухнет, будет ли в этом уже хоть какой-то смысл? В чем польза? Типа ему может не хватить времени придумать какие злодеяения делать? Ладно бы 30 секунд был, но год? Это какой-то очень нерешительный злоумышленник.
Вторая причина: я вообще-то пришел в компьютеры, чтобы автоматизировать вещи и решать проблемы. И я люблю, когда проблему действительно можно решить. Не на ближайшую неделю, а так, чтобы совсем, раз и навсегда, чтобы уже не возвращаться. Потому что иначе ты сделал 10 штук каких-нибудь, и все, у тебя все время будет уходить на их саппорт, а свободного не останется.
Ну вот, а тут ты сделал проект, все настроил, автоматизировал, все чики-пуки, по гит коммиту пуш и деплой, заебись. Пошел заниматься другими делами. Потом приходишь через год копирайт поправить, а там: ой, версия виртуалки сменилась, нода устарела, у экшнов новый АПИ, все старое мы задепрекейтили и даже успели сансетнуть, и сверху этого еще и токен протух.
Первое, понятно, решается линукс-машиной, которую ты никогда не апгрейдишь (гусары с докером: молчать! На самом деле мне нужны еще и мак и винда, так что приходится жрать говно и регулярно апгрейдиться). А вот токен не решается! Более того, годы прошли, ты ничего не помнишь, и именно в этот момент тебе говорят: разбирайся опять че там как сделано было, вспоминай на какие сайты надо зайти и какой ритуал проделать чтобы сгенерить новые. Кстати, у нас новый дизайн!
Получается, что байты вечны, но все компьютерное гниет быстрее картошки. Ученые до сих пор ломают голову, как так вышло.
Фигма показала редизайн своего UI, называется UI3.
Когда-то Фигма очаровала меня элегантной простотой своего первого интерфейса, UI1. Все на месте, все под рукой, ничего не шумит, разложено аккуратненько. Очень свежо смотрелось на фоне Адобе, где просто каша из наросшего за десятилетия говна, которую никто никогда не чистил. Оказывается, дизайн-тул может выглядеть прилично!
Потом выкатили UI2, и вот к нему были вопросики. Большим решением было поднажать на минимализм и убрать рамки у вообще всего. То есть просто цифры и текст висят в воздухе, иди привыкай, где куда тыкать. Привыкаешь, конечно, а что делать? Например, у слоев в панели слоев убрали стрелочки, которые показывали группы вложенности. Появляются только по запросу (ховеру). Зачем? Почему?
Этот редизайн научил меня, что с минимализмом можно играть, но не нужно дожимать его до предела. Когда начинается гадание, где какой контрол, это уже хуйня какая-то, а не минимализм. Кстати, на презентации UI3 они сами эти же проблемы перечислили. Говорят, пользователи не понимают, где что. Ну епт.
Ну и вот теперь UI3. Респект за то, что не боятся все встряхнуть и переосмыслить — без этого рано или поздно получился бы новый Adobe.
Самое заметное изменение — что панели теперь «плавают над контентом», а не прилеплены к краю экрана. Бирман уже успел написать, что «алло, они таким образом больше места занимают, а не меньше». Моя первая мысль была такая же, но потом я пошел рефлексировать дальше.
Что ни говори, а у панелей, плавающих поверх контента, есть некий appeal, привлекательность. Бестолково, но ощущается прикольно. Ощущается, что места больше стало. То есть если твоя цель набрать классов — решение самое верное. Ну и эффект новизны, то-се. Это вторая мысль.
Третья — про саморефлексию. Непонятно, что мне мешает любить эти новые ходы. Там еще менюшки теперь как в макосе, когда выделение текущего пункта внутри не от края до края, а как бы вложенным прямоугольником. Опять же — понятно — модно. Но хорошо ли? Красиво? Мне не нравится, но это потому что я старый? Или правда некрасиво? Есть ли у меня какой-то вкус, или я просто упертый дед, для которого со времен Windows 95 ничего не улучшилось? Мне кажется, что улучшилось, потому что есть вещи, которые мне нравятся, но эта вот нет. Короче хз.
Ну и четвертая — про то, что в общем-то печально, что Фигма пошла на поводу у трендов. Раньше она их задавала, а теперь просто «все делают скругления и мы сделаем скругления как у всех». Я, когда на них смотрю, ничего не чувствую (ну, разве что «чет шумит больше обычного»). А потом представляю митинг, где десять дизайнеров выводят этот макет на проектор и у каждого под столом эрекция сразу: ууу скругления!!!
Кстати, весь остальной брендинг так и остался угловатым. Надо бы обновить!
Последня часть про эксперименты. У ребят есть процесс — если есть идея, они ее тестируют. Классная штука, но вещи, которые у них провалились, немного эээ очевидные? Типа, если убрать подписи к полям, пользователи теряются. Если спрятать контролы за Show more, пользователям не нравится. Контролы в попапе не нравятся. Когда контролы прыгают, тоже не очень.
Ну как бы да? Круто иметь подтверждение, но а чего вы ожидали? Но может в большом коллективе это единственный способ существовать — у каждого есть мнение, и чтобы всех заткнуть, недостаточно просто еще одного — нужны данные.
Но вроде по итогам они что-то там перегруппировали более логично, так что респект.
Кстати, никого не бесит, что Align left/center/right находятся в свойствах объекта, хотя по сути это инструмент? Теперь еще и Create component & Co уехали в свойства, хотя тоже вроде бы действия. Не вижу, почему бы все не свалить в панель инструментов?
Еще интересно, с плавающими панелями, куда уедут Ruler-ы? Под панели?
Кстати, панели же теперь можно ресайзить! Еще чуть-чуть и до перетаскивания додумаются. Мне всегда было жалко, что слои занимают целую колонку.
Но это все придирки, конечно. Лучше все равно ничего нет, да еще и бесплатно.
Тут вышла Балатро под Айос, я решил одним глазком глянуть, ну и заодно попробовать гЕйМиНг нА мАкЕ™. Начал с ноута — скачал, запустил — работает. Играю. Получаю ачивки.
А потом бац – захожу в ачивки, а там 0 из 31. То есть внутри игры они зарабатывались, а в геймцентр не попадали.
Ладно, думаю. Попробую на телефоне. Скачала, запустил — работает. Играю. Ачивки пошли! И даже сейв подтянулся. Только почему-то нет звука.
Но на телефоне тесновато. Идеальный форм-фактор для игры про перекладывание карт — конечно же айпад! Я сначала расстроился, потому что это айпад жены, и придется играть от ее имени. Но потом вспомнил, что в геймцентр можно залогиниться отдельно! Отлично! Скачал (бесплатно, через ЭпЛ-сЕмЬю), запустил — работает. Аккаунт мой подключился, ачивки видно. Только в самой игре прогресса почему-то нет.
Почесал я репу и пошел гуглить. Оказалось — мало перелогиниться в геймцентр, надо еще в айклауд. Удобно, ничего не скажешь. Все предусмотрели. В айклауд я перелогиниваться не стал конечно (это вообще все на айпаде поменяет, а он, как я говорил, не мой), зато звук есть!
В порядке полноты эксперимента, решил еще на Эпл ТВ поставить. Скачал, запустил — работает. Контроллер, говорит, подключи. Ну подключил. Звук есть. Прогресс есть, причем без айклауда как-то? В геймцентр я правда не понял как попасть, а внутри игры игра начала считать ачивки заново. Но тут я уже никого не виню — вряд ли кому-то придет в голову, что их игру будут запускать на телевизоре.
Так что с геймингом в Эпл экосистеме все хорошо. И денег просят немного — всего 6.99 в месяц.
Кстати у меня же была идея как Слак улучшить. Плоский чат это классно, но в нем не найдешь ни конца ни начала мысли. Поэтому нужно ввести промежуточный уровень — темы. Создаешь в канале тему и в реплаях ее обсуждаете.
Примерно как треды сейчас, только если бы люди всегда отвечали в тредах, и никогда следующим сообщением. Это, кстати, можно делать и сегодня, и я вас к этому призываю — это Слаковый этикет.
Вот если бы это принудительно на уровне интерфейса сделали, стало бы совсем хорошо.
Что Киберпанк (игра) великий, конечно, вам рассказывать не надо, но вот просто один пример.
Как и у любой ААА игры, у Киберпанка есть концовка, в которой показывают мультик. Казалось бы — ну мультик, что там такого? Ну даже несколько. Но мне выносит мозг, насколько хорошо он снят. В том смысле что ему нужно донести какую-то эмоцию, и он делает это одновременно и аккуратно, но и точно, и мощно. Все выразительные средства грамотно работают в унисон. Я много кино смотрю, и даже для кино это редкость, так что когда по-настоящему штырит, это несложно заметить.
Все концовки в целом примерно одинаково грустные, но давайте возьмем для примера концовку с космонавтом. В ней Ви продался/лась и продолжает фигачить контракты за деньги. Его/е отправляют в космос на ограбление казино, ну и в общем-то игра заканчивается на перелете через открытый космос между капсулой и космической станцией с казино.
А теперь чисто киношные моменты. Во-первых, космос. Смотрите, все игра проходит в Найт сити. Там есть на что посмотреть, и намеки на мир вокруг, но в целом все равно ощущение замкнутой коробочки, песочницы. И чтобы показать, что история _закончилась_, надо было придумать что-то, что находится вне этой песочницы и непохоже ни на что внутрии нее. Т.е. еще раз — космоса нигде в игре нет, его (и концепцию летающих в нем казино, и дизайн, все вот это вот) придумали только ради финального ролика, причем всего лишь одно из. Неплохо, а?
Во-вторых, почему космос? Почему не прилететь сразу на казино? Зачем этот перелет? Ну очевидно потому что одиночество — Ви остался/лась совсем один/на, и что может это лучше подчеркнуть? Заодно еще и ощущаешь себя песчинкой в море — мир большой и безразличный, а ты в нем ничего не значишь. Как я говорил, выразительных средств много, но бьют они все в одно и то же место.
В-третьих, важный момент с камерой. Вся игра происходит от первого лица — ни в каких игровых ситуациях и даже кат-сценах ты не видишь себя со стороны. Ты переживаешь абсолютно все от лица Ви, что очевидно очень хорошо работает для игры. Но в финальной сцене происходит крутой трюк — камера впервые показывает тебя со стороны. Эффект — ну как будто ты дух, который вышел из собственного тела и смотрит на него перед тем, как вознестись на небо. На этом не акцентируется внимание, это выглядит как просто монтажная склейка, но ты шкурой это чувствуешь, как это важно, после ста часов геймплея. Еще более важно — после того, как камера разделяется с персонажем, они уже больше не сольются. История Ви закончилась, вот, посмотри на него последний раз и иди домой. ДАЖЕ КАМЕРА ЕГО/Е БРОСИЛА.
Там есть еще понятные коннотации типа прыгнуть с головой в бездну, неопределенность по поводу сразу он себя застрелил или это самоубийство with extra steps, ну и все остальное на уровне, но еще раз повторю — все сделано максимально мощно, до сих пор мурашки.
Это, вообще-то говоря, редкость для кино даже, а уж для видеоигр и подавно. Хотелось бы как-то дискурса про настоящую кинематографичность в играх, но пока мы на уровне «Horizon/Last of us это пик того что возможно» мы далеко не уйдем конечно. Пусть те кто делал Киберпанк в кино уже пойдут что ли, сил нет следующего Ведьмака ждать.
Про обновления: настраивал вчера новый комп. Ну я человек простой — поставил макбук рядом, посмотрел что у меня за программы там и все то же самое скачал. Какие-то существенно скакнули вперед, оказывается, а я и не знал. Ну скачал самое последнее, понятно.
Главное наблюдение: а знаете, мне и на старых версиях было неплохо. В большинстве случаев я никак не вижу, что изменилось.
Опять же, я человек простой — если мне показать окно, что вышла 17.2.4, а у меня 17.2.3, я спать не смогу пока не обновлюсь. Но если такое окно не показывать, то, оказывается, мне вполне норм. Комфортно, спокойно.
Из любопытного против обновлений: в kitty отвалились шрифты. Раньше они не проверяли их и все работало прекрасно, а теперь «проверяют на моноширинность» и отказываются работать. Кому от этого хорошо непонятно. Но хорошо что есть Эйрдроп и старая версия.
Короче, я понимаю плюсы автообновлений конечно, но и плюсы у «жизни в лесу» тоже есть. Какую версию скачал в первый раз такой и пользуешься всю жизнь — а почему нет, собственно? Если все устраивает и всего достаточно.
Кстати попробовал сегодня Claude 3.5 Sonnet, натравил на свой плагин для Саблайма и попросил сделать фичу. Получилось не очень (сначала совсем нонсенс, потом просто несколько нерабочих версий), пока мне не надоело и я не доделал уже сам.
Но — фича-то сделана! Может в этом и есть польза, садишься делать, он лепит фигню, ты такой: а ну отойди, дай покажу как надо. И делаешь. Типа, на слабо берет.
По-моему гениально.
Как и каждый из нас, я люблю подкасты и слушаю что-нибудь почти каждый день. Чаще всего это какие-то местечковые штуки — айтишники бубнят что-то, друзья собрались по приколу, что-то такое.
Но иногда меня выносит и во внешний мир. Подкасты явно стали явлением — уже целые фильмы и сериалы про них снимают, они очень плотно сели в культуру (не в последнюю очередь потому, что почти все американцы проводят час-два в машине по пути на работу).
Ну и иногда попадется какой-то такой подкаст, с «настоящим» продакшном, миллионами слушателей, ну вы знаете. Кто-нибудь советует выпуск, и я соблазняюсь попробовать (кстати, расстраивает, что приложения как будто не особенно оптимизированы на случай «хочу послушать один конкретный выпуск». Ну Overcast по крайней мере, Apple Podcasts то вообще даже просто для нормального использования не оптимизирован).
Короче. Я офигеваю, что чуваки в «богатых» подкастах не могут просто сесть и поговорить. Там обязательно редактор сделает «красиво», с перебивками, музыкой, всей фигней.
Но больше всего меня добивает, когда интервью перебивается комментариями ведущего. Причем не в разговоре, а как бы «поверх». Типа:
Ведущий (воис-овер): Сейчас Эндрю расскажет нам о том, как он придумал Zig.
Эндрю (разговор): Ну так вот, как я придумывал Zig.
Но это не часть разговора. Реплика ведущего именно что записана потом. Нафига, спрашивается?
При этом в самом разговоре ведущий тоже, конечно, есть:
Ведущий (воис-овер): Сейчас Эндрю расскажет нам о том, как он придумал Zig.
Ведущий (разговор): Эндрю, расскажи, как ты придумал Zig?
Эндрю (разговор): Хорошо.
Но особенно добивает, когда ведущий так же, воис-овером, подводит итог. Типа:
Эндрю (разговор): Ну вот так я Zig и придумал.
Ведущий (воис-овер): Вы только что послушали, как Эндрю придумал Zig.
Выбивает из контекста пипец как. Своей банальностью и тупизной в первую очередь. Типа, алло, я мысли умного человека пришел послушать, а не пересказ ведущего. Зачем мне та же мысль второй раз, повторенная сразу после первой, в чужом пересказе? С интерпретацией я сам справлюсь, спасибо, не надо мне помогать.
Как-то надо бы подкастерам намекнуть, что никто не ходит к ним послушать ведущих, ходят послушать гостей. Если бы ведущий из себя что-то представлял, то он сам бы ходил куда-то гостем, или подкаст без гостей вел. Но ведь это не так.
Ну и нафига тогда?
Давайте расскажу, как Tailwind по-нормальному должен быть устроен. Идея писать свойства прям в компоненте в принципе нормальная, как минимум с точки зрения разработчика — захотел паддинг у кнопки — написал паддинг у кнопки прям в кнопке. Никуда ходить не надо, все рядом. Красота.
Да, разметка пухнет, но допустим мы с этим окей (надо, на самом деле, еще подумать будет, что с этим делать).
Теперь следующий шаг: большую часть свойств, в принципе, можно уже и писать. Прямо в style атрибуте, прям обычным старым добрым колхозным CSS. Как деды завещали.
Но нельзя писать всякие ховеры и медиа-запросы. Что с этим делать? А нужно просто сделать вид, что можно! То есть технически в голом CSS/HTML нельзя написать <a style=":hover { color: red; }">
или <body style="@media max-width: 600px { ... }>"
. А берем и делаем вид что можно. И пишем. И работает.
Ну то есть как работает. Тут, понятно, потребуется препроцессор. Но он у нас и так есть — Tailwind умеет все то же самое через свой пиджин-синтаксис на классах, то есть там ровно такой же шаг нужен.
В итоге функционально мы ничего не потеряли. Задача решается, сложность реализации такая же, а сложность системы в целом уменьшилась — не нужен вот этот вот язык с .mt-77.pd-284.fg-[#flkjlkfds]
, не нужно его учить, не нужно знать как он мапится на CSS. Нужно знать и учить одну вещь, а не две. Копи-пейст компонентов из примеров работает ровно так же. То есть стало строго лучше.
Ну что, есть такое уже? Наверняка есть. Как называется?
Одно из неочевидных правил, о которых я как-то не задумывался даже: интерфейс не должен скроллиться. Контент может, а интерфейс нет. Он должен сразу весь на экране быть.
Это правило, которое мы все негласно понимали и соблюдали до недавнего времени. Даже в мобилках, где места мало и вроде бы сам бог велел, старались все-таки табы сделать, между которыми можно мнгновенно переключаться. За исключением, может быть, каких-нибудь Settings, где только список опций на 14 экранов.
А потом случилось какое-то помешательство, народ насмотрелся на веб, где с одной стороны вроде бы кнопки/меню, а с другой это все завернуто в скролл-контейнер верхнего уровня и часто проматывается целиком. И подумали, что так можно.
Один из самых ярких нарушителей — System Settings в Ventura. Было как – открываешь System Preferences и видишь сразу все вообще возможные иконки. Кликаешь на одну и проваливаешься в, собственно, настройки. Там иногда тоже пара-тройка экранов, и тогда внутри табы. Но любая опция, которая тебе нужна, сразу в прямой доступности и на фиксированном месте. И ее, блин, видно! Эплы даже само окно System Preferences научили менять размер под текущую панель, чтобы не дай бог скролл не появился.
А стало так: слева список панелей, справа выбранная панель, и все, блин, скроллится! То есть ничего сразу не видно, и оно чуть что дрожит и ездит туда-сюда. Вместо солидной и качественно сделанной вещи ощущение дешевой подделки.
Но ощущение еще ладно, но иногда внизу скролла спрятаны реально нужные опции. Например, Wifi. Сверху переключатель вкл/выкл, потом текущая сеть, и после них длинный список «других сетей». Ладно, думаешь, наверное он так до конца и идет. Но нет! Если промотать два-три экрана вниз (а мотается весь интерфейс целиком, как веб-страница, т.е. переключатель и текущая сеть, например, в этом случае уезжают), ВНЕЗАПНО под ним окажется еще два переключателя, кнопка подключения к сети по имени и кнопка Advanced. Но об этом в жизни невозможно догадаться! Если у вас есть длинный список всякого говна, он должен идти последним элементом, а не в середине.
В старом интерфейсе, понятно, список сетей тоже был. Но он был элементом со своим собственным скроллом, так что его высота была ограничена и ты видел, что идет после него тоже. Но это какая-то мудрость древних, современный UI/UX-мозг не может это осмыслить.
Другой момент сравнимого позора — интерфейс печати, которые в той же Ventura переделали. Было как — ну квадратное окно с табами, типа, Media & Quality, Layout, Paper Handling и т.д. А стал опять проматываемый интерфейс. Но в этот раз даже хуже — они все сложили в один длинный вертикальный список, который да, скроллится. Но пункты в этом списке еще и свернуты по умолчанию! Т.е. ты и поскроллить нормально не можешь, и на пункты нормально посмотреть не можешь. Тебе надо И скроллить, И целиться в маленький шеврон, разворачивающий группу. И все это ездит туда-сюда и раздвигает соседние пункты, т.е. ничего не фиксировано и постоянно меняет положение. Ужасно.
Кстати, какой-то здравомыслящий человек в Эппле где-то нашелся, потому что кнопка «Печать», собственно, самая главная, вынесена из скролл-контейнера. Если уж следовать принципу «делаем все максимально идиотско и неправильно», то она должна была бы быть в конце скроллящегося списка и ее не должно было быть видно изначально. Но, может, пользователи возмущались, поэтому испортить диалог получилось не на 100%.
Правило все еще действует — контент скроллится, интерфейс нет. Это удобно, это логично, это кайфово. Просто на Эпл не надо ровняться, они больше пургу гонят посленднее время.
Если зайти на Google точка com в Файрфоксе, увидишь 5 ворнингов и одну ошибку. Если зайти в Хроме, увидишь один ворнинг и один эксепшн где-то в минифицированном коде (другой). Если зайти в Сафари, увидишь два эксепшна. Это все без экстеншнов и адблокеров.
И это конечно не только на Гугл точка ком, это, я уверен, почти везде (кроме моих сайтов, конечно). Когда я работал в веб-компании, мы собирали эксепшны с фронта, и их поток был постоянный и ненулевой даже на абсолютно корректно работающем и не сломанном приложении. У нас даже был «приемлимый» уровень, ниже которого мы не обращали внимания.
Когда я написал об этом в Твиттере, мне ответили, мол, а что ты хотел? Любой сайт так работает сейчас. Типа, это норма.
Но это же плохо? Если это несущественные ошибки, и с ними все работает, то они не должны репортиться как ошибки? А если существенные, то, получается, даже Гугл не может написать веб-страничку _с одним единственным полем ввода_ и не сесть в лужу. На что тогда надеяться разработчикам действительно сложных приложений?
Если сравнить это с бэкендом, то бэкенд относительно несложно написать абсолютно корректно, по крайней мере так, чтобы никто не умирал каждую минуту и настоящие ошибки и проблемы было видно. А фронтенд что? Сломан?
Вопрос, который не дает мне покоя: почему ни в одном языке программирования нет встроенного типа «Таблица». Массивы есть, хэшмапы есть, а таблиц нет. Упущение?
Не, можно конечно сделать массив хэшмапов, но это дорого. Можно массив объектов, это дешевле, но все равно с оверхедом и скучновато — ничего интересного не придумаешь. Это как мапу делать из списка таплов — формально интерфейс такой же, но затея довольно бесполезная.
А что бы хотелось? Ну, в первую очередь индексы встроенные, наверное. Чтобы можно было table.orderBy(column)
и это бесплатно.
Во-вторую, понятно, джоины.
В-третьих, понятно, фильтры.
В-четвертых — сериализацию и ленивую подгрузку с диска. Опциональную — in-memory вариант должен остаться обязательно, хотя бы ради виртуальных таблиц, которые возникают после джоина.
Ну и дальше всякие мелочи уже типа take, drop, select, ну как обычно. Причем — я, может быть чего-то не понимаю, конечно – но вроде с таким интерфейсом как-то и SQL не нужен получается. Любой запрос можно на методах собрать.
Единственное, констрейнты как-то не очень понятно как тут сделать. Но может и пофиг. А вот переходы по foreign ключам, как в графовых базах, хотелось бы конечно удобно сделать.
Как человек опытный, я уже предвижу, что вы скажете. Поэтому давайте скажу за вас.
«Такое должно быть в библиотеке». Ну вот нет. Это такая же фундаментальная вещь, как массив и хэшмапа. Прикиньте, массив был бы в библиотеке? Нет, это должно быть именно в языке, потому что тогда появляется возможность разным другим библиотекам общаться через этот тип. А если это сторонняя зависимость, то сразу начнется разброд, разные версии, несовместимости и все, идею можно закапывать.
«Может, на диск сохранять все-таки не надо?» Надо. Мне немножко поднадоело, что база данных нужна практически любой программе, но при этом практически любой язык программирования эту очевидную потребность игнорирует. Мы все знаем, как хорошо, когда в языке есть батарейки, и можно спокойно сходит в интернет, распарсить zip, посчитать sha512 хэш без сторонних библиотек. Так вот, хранить данные тоже должно быть удобно! И это в сто раз более частая задача, чем условный zip или http.
Когда я учился, были популярны ORM-ы. И утверждалось, что они необходимы, потому что решают «Object-relational impedance mismatch». Типа, языки они больше про объекты, а база про таблицы (рилейшены). Ну и все страдали и жрали кактус. Кто-то пытался делать объектную базу.
Но может быть решение-то гораздо проще? Может, надо просто таблицы на уровне языка поддержать. Потому что — а почему нет?
Как-то давно в Твиттере обмолвился, что мол, наука это тоже религия. Не все поняли, но мне кажется тема интересная.
Мы все знаем, что наука основана на других принципах — повторяемость эксперимента и предсказательная сила.
Первое — если ты сделал эксперимент, то любой другой человек может его повторить. Звучит отлично в теории и на уровне условно школьного курса работает. Проблема только в том, что этого никто не делает на практике. Ну типа когда вы последний раз проверяли, не знаю, законы Ньютона? Или уравнения Максвелла?
Да, хочется думать, что многое что ты делаешь каждый день косвенно их проверяет. Я тоже так думаю. Но наверняка-то мы этого не знаем! Например, гравитация работает подозрительно непохоже на то, что обещает наука — металлический мяч явно падает быстрее, чем перо. Конечно, у науки и на это есть сложное и запутанное объяснение, как и у любой конспирологической теории. Или — правильно — религии.
Короче мы конечно видим вокруг себя прогресс и пользуемся его плодами, но если бы это все создавалось волшебниками в башне, мы бы не сильно заметили. Мы этим просто... пользуемся. Никто из нас не сможет разобрать/воспроизвести процессор, так что он может хоть на мане работать. О, вы засунули в проц еще пять миллиардов транзисторов? Просто вдумайтесь: пять миллиардов! Это даже представить невозможно. А мы такие — охотно верю! Работайте дальше, вот мои 200 долларов.
Со всякими медицинскими штуками та же фигня — мы просто верим людям в халатах, вся разница только в том, что у докторов они белые, а у священников серые.
Что там еще? В космос слетали? Атом расщепили? Ну это все красивые _картинки_. Я в жизни ни разу не видел ракету, не говоря уже об атоме. Информация о достижениях распространяется в книгах, через вторые-третьи-четвертые руки, а не непосредственным наблюдением. Ну чем не священные тексты?
На самолете, кстати, летал, но даже там — во-первых, ответ на вопрос почему он летает _максимально_ запутанный и в итоге звучит больше как конспирология, а во-вторых кривизну Земли чет не заметил. То есть, насколько я знаю лично, из собственного опыта, она вполне может быть и плоской.
Случаи, когда я воспроизводил какой-то научный факт непосредственно, я могу по пальцам пересчитать. Например, первый раз когда я увидел Юпитер в телескоп. Сам. Своим глазом. Меня так штырило! Потому что понимаешь, насколько до этого ты видел планеты только и исключительно теоретически, в виде картинок.
Второй случай был видосом на самом деле, то есть даже тут с непосредственностью заминка. У Folding Ideas есть видео, где он смог заснять кривизну Земли на камеру у очень длинного озера. Опять же — штырило очень знатно, хотя это уже вторые руки как бы. Надо будет как-нибудь попробовать воспроизвести самостоятельно.
А так — по факту — наука для большинства людей, кто непосредственно ей не занимается каждый день — это на 99% вера. Просто авторитеты другие. Вешают себе иконы с портретами Энштейна и Дарвина на стену, а потом говорят — вы не понимаете, это другое!
Но я все равно в науку конечно, просто не строю иллюзий насчет ее принципиальных отличий от веры в бога и магию. Вот такую вот религию я себе выбрал, а вы?
Когда-то давно, когда по земле еще ходили мамонты, а я учился в университете посреди сибирской тайги, я баловался любительскими видосиками. Купил видеокамеру — одну из последних на MiniDV кассетах, потому что прочитал где-то, что цифра еще не очень хороша и вообще сомнительная история. Не угадал.
Ну и надо было мне эти видосики куда-то выложить. Выбор, опять же, был неочевидный — Ютуб с Вимео только начинилсь, а Гугл пытался зайти с Гугл Видео. Ну я подумал — те двое нонеймы какие-то, а Гугл это целый Гугл. Тогда его еще все любили, потому что он реально нормальный был.
Дальше вы знаете что произошло — Гугл купил Ютуб, а их собственное Видео поболталось как говно в проруби, пока не сдохло. С тех пор я скептически отношусь к любым предложениям Гугла, особенно бесплатным. Сейчас это конечно анекдот, общее место, но вот я об этом 15 лет назад знал уже.
Это я к чему — Гугл решил закрыть goo.gl. Зачем — непонятно, сложно представить, что он хоть какую-то нагрузку создает и что его поддержка хоть чего-то стоит. А вот для сайтов возрастом 10+ лет это еще один гвоздь в крышку гроба.
Короче повторюсь опять: не верьте Гуглу, не любите Гугл, не смотрите на Гугл как на образец хоть чего-то хорошего. Те времена давно прошли. Мув он.
Пользуясь случаем, передаю привет пользователям Виндоус и напоминаю, что антивирус надо обновлять регулярно.
В твиттере чел показывал, как придумывал напоминалку для авторизации, и в том числе показал код, как я понимаю, на Tailwind. Написано примерно такое:
<div class="bg-[#f2fdfd] border-[#e5fafa] text-[#0c4445]...
Тут спросили, чем мне не нравится тейк «дизайнеры всегда все делают хуже».
Отвечу: тем что он бессмысленный. Он чисто логически невыполним. Хуже чем кто? Чем те же дизайнеры. То есть есть дизайнеры, которые делают получше, и есть те, которые похуже. Ну так и что, так везде, это банальное утверждение.
Если бы дизайнеры всегда делали только хуже, самой оптимальной стратегией было сидеть на условном Windows 95 самой первой версии, без любых патчей, и никогда ничего не обновлять. Но почему-то вы так не делаете, да? Может быть потому что дизайнеры все-таки сделали что-то лучше? Например, в Windows 2000 серый цвет интерфейса стал теплее и приятнее. Не слышал, чтобы кто-то на это жаловался.
Ладно, давайте попробуем проинтерпретитовать вопрос. Может быть, имелось в виду, что дизайнеры что-то меняют, а человеку не нравятся изменения? Типа, я привык, а вы меняете.
Этот тейк мне просто тяжело воспринимать серьезно. «Ой, кнопку передвинули в другое место, что же теперь мне, переучиваться?» Ну это смешно. Тут явно заложена обида какая-то или недовольство жизнью, но не объективный аргумент. Те же люди спокойно мигрируют каждый день между десятком программ, сотней сайтов и ничего, как-то справляются.
Не, может быть что и правда что-то сильно сломали. Бывает. Критикуйте плохие изменения! Я сам первый в очереди. Но только именно плохие! Не надо делать это априори. Это пораженчество. Потому что дизайнеры делают и лучше тоже. И мы хотим, чтобы они делали лучше. ВЫ хотите этого тоже.
Наверняка в интерфейсе, которым вы пользуетесь, есть какая-то бесячая штука, и если придет дизайнер и починит, вы будете рады.
Есть штука, которую вы не замечали, но ее тоже могут пофиксить. Тогда вы не заметите.
Есть штука, которая не вызывает проблемы у вас, но вызывает проблемы у кого-то еще. Вас это может взбесить, но камон, ребят. Эмпатия! Поставьте себя на место другого человека. Плюс, объективно, вам либо все равно, либо стало лучше, вам просто не нравится что что-то меняют.
Наконец, дизайнер может прийти и реально, объективно сделать хуже. Никто не застрахован, все мы люди. Штука тут в том, что чтобы были возможны предыдущие пункты, должен быть возможен и этот. Или все, или ничего. У вас на работе есть правило «коммитить только код без багов, код с багами не коммитить?» Нет? А почему?
Поэтому позиция «просто сделайте и больше никогда ничего не трогайте» мне не нравится, я хочу отличать хорошие изменения от плохих, не хочу грести все под одну гребенку. И я хочу, чтобы хорошие изменения случались! Но для этого, к сожалению, нужно разрешить все менять.
Каждый раз, когда мой сайт попадает на Hacker News, все начинают обсуждать форму. Сначала был желтый цвет и всех бесил. Сейчас, кажется, привыкли, но теперь бесят курсоры. Об этом половина комментариев, люди находят и специально пингуют меня в соцсетях, чтобы об этом сказать.
Хотя казалось бы. Ну не нравится тебе. Отвлекает. Ну так для этого бог дал тебе Reader Mode. Нажми одну кнопочку — буквально — одну — и сделай себе хорошо. Не нужно никуда ходить. Не нужно никому ничего писать. Не нужно баталии никакие вступать, переубеждать никого не нужно. Ультиматумов ставить и ставить всех остальных в известность. Ничего этого не нужно.
Достаточно — всего лишь — нажать одну кнопку и сделать себе хорошо. Самому себе. Прямо сейчас. Тривиально.
Но люди, конечно, не делают.