11699
Ведет @nikitonsky. Рекламы нет
Посмотрел доклад Ильи Бирмана про резиновые сайты. Он там говорит, мол, делайте резиновые, а то некоторые переключаются на мобильную версию при размере окна меньше 1440 пикселей, а у меня монитор 1024 всего.
Но самое интересное произошло в секции вопросов. Образовался чувак, оперирующий статистикой, и стал даже не спрашивать, а спорить. У нас, говорит, тут же не дураки сидят.
Во-первых, говорит, вы показывали сломанный сайт Альфа-Банка (он вместо ресайза уходит за границы экрана). Так вот, говорит, я проверил, у меня все работает. Как будто это что-то объясняет! Баг это не когда у всех не работает в 100% случаев, точно так же как работающая программа это не когда у кого-то одного что-то получось сделать один раз (хотя, судя по качеству современного софта, кажется, что люди постепенно переходят на это значение). Если у кого-то (одного, не у всех) что-то когда-то (один раз, не каждый) сломалось, то все, баг есть, разбирайтесь. Если есть скриншот, то тем более, о чем тут спорить, вот нож, вот понятые. Если что-то не работало, а после перезагрузки заработало, то нет, это не normal operation, это иди разбирайся и чини! Этот аргумент называется «у меня такая же нога, но не болит».
Во-вторых, он набросился на мобильные версии. У нас, говорит, не дураки же тут сидят. Мы смотрим на статистику и видим, что огромное количество пользователей приходит с планшета. Огромное, говорит. Прям несколько раз повторил. Не маленькое, не небольшое. Огромное. Ну и вот, говорит, для них мы и переключаемся в мобильную версию на 1024 пикселя. Для них, говорит, мы и делаем и гамбургер меню, и формы вертикальные, и все остальное, за что мы любим мобильные интерфейсы. Тут, признаться, нет логического перехода (или я не понял, где он) — мы видим планшетных пользоваетелей, поэтому делаем вывод, что они хотят мобильный интерфейс — но где-то он должен быть, потому что в чем иначе вопрос и почему эти две вещи идут одна за другой?
Но юмор не в этом! Я очень удивился, когда услышал, что пользователей с планшетов (не телефонов, планшетов!) ОЧЕНЬ много. Прям очень. Пошел проверил. Ну полтора-два процента, как я и ожидал. При этом десктопных — сорок пять. То есть чел не просто оперировал статистикой, он придумал (!!!) сам себе такую статистику, которая объясняла его действия, но расходилась с реальностью на порядки.
Это история не про то, что статистику можно нагнуть для своих целей. Это история про то, что можно просто сказать «статистика, данные», никуда не смотреть и делать любую дичь. Просто как заклинание сказать и вперед.
А также про то, что иногда там все-таки дураки сидят. Даже в таких уважаемых заведениях, как банках.
Самая тупая фигня на свете — это экраны над стойкой в ресторанах быстрого питания или над стойками с едой в кинотеатрах. Обычно это ряд из телевизоров, на которых крутят разные позиции из меню, красивые картинки, цена, смотришь на них, думаешь — да, выглядит классно, хочу! А они через секунду хоп — и поменялись на что-то другое. Иногда твоя реклама выскакивает на другом экране, и ты крутишь головой влево-вправо, пытаясь ее найти и дочитать. А иногда нигде не выскакивает, и ты стоишь грустный: сегодня не кушаю.
В чем тут идея? Ну, понятно, те, кто ставил экраны, хотели гибкости и технологичности. Не надо перепечатывать меню, когда появились новые позиции, или цена поменялась, или что-то временно закончилось. Просто натыкал на компике и вуаля.
Потом выяснилось, что одно и то же на экране долго показывать нельзя — выгорает. И решили каждые 10 секунд что-то новое показывать. Не начинать же думать с нуля, экраны-то уже заказаны.
Ну и уже в третью очередь подумали о пользователе. Пользователь подходит к кассе, показывает на экран, а говорит «мне вот это». А оно хоп — и сменилось! И оказывается, что он показывал на какашку. Все смеются. Или смотрит на экран, начинает читать, а ему хоп — и выключают экран. Опять смешно. Или он пытается понять, что вообще бывает. Ну тут можно даже не пытаться.
В общем, люблю, когда обо мне заботятся.
Ладно, нормальный пост. Кто-то спросил, что у меня за шрифт на скришноте из Википедии — Fontwerk Case Text — но это не важно. Важен лайфак: в браузере можно зайти в настройки и поменять дефолтные sans-serif и serif шрифты на что-то более приличное.
Обычно там какой-то кошмар типа Гельветики, Ариала или Таймса Нью Романа. Собственно из-за этого сайты когда-то и начали делать веб-шрифты: чтобы смотрелось не так убого.
Однако если поставить хороший, то, во-первых, можно кайфануть на сайтах, которые свои шрифты не используют по перформанс или стилистическим соображениям (Википедия та же, или Грампи), а во-вторых на некоторых сайтах я прям стал писать юзерстиль, который отключает им шрифты, если мой sans-serif выглядит лучше. И он часто выглядит!
Какой шрифт поставить? Начните с IBM Plex Sans, а дальше разберетесь.
Ребята! У меня новости. Я решил больше не делать хуйни.
Я проанализировал все предыдущие случаи хуйни и понял, что хуйня случалась, когда я ее делал. А зачем нам хуйня? Нам хуйни не нужно.
И решил не делать.
Читаю статью, как одно из более симпатичных маковских приложений — Рэйкаст — пало смертью храбрых (переписывается на Реакт), и там традиционное:
> Hiring. Finding engineers who can work on React, TypeScript, and Node is much easier than finding engineers with deep AppKit experience.
И, ну, во-первых, это яблоки и апельсины. Нанять поверхностного инженера всегда легче, чем инженера с глубокой экспертизой. Уверен, что нанять инженера с глубокой экспертизой в Реакте сложнее, чем с неглубокой в АппКите. Звучит, если честно, как будто Реакт это индульгенция нанимать обезъян с лопатой: с АппКитом мы себе такого не позволяли, а с Реактом уже как-то пофиг.
Во-вторых, в каком мире вы живете вообще, что это за инженеры такие, которые с одной стороны якобы крутышы в Реакте, а с другой не смогут разобраться в любой другой технологии за неделю или две. Ну типа, блин, АппКит, я уверен, не мед, но и не китайская грамота: все языки работают примерно одинаково, платформы делают одно и то же, конкретные названия гуглятся. Первые два, ну три языка учить тяжело, а потом уже без разницы. Мы в 2014-м компанию целую собрали из людей без опыта на Эрленг, Окамл и Кложу. И ничего, никто не умер, кайфанули даже скорее. И даже без опыта мы все равно все бонусы технологий получили: перформанс, надежность, простоту эксплуатации. Так что стека надо бояться в последнюю очерендь. Надо пописать на Расте, потому что это лучше для задачи (не для разработчика)? Попишу на Расте. Надо на Перле? Разберемся.
Ну и в третьих, понятно, опять про пользователя забыли. Там прям в статье есть: да, мы жрем теперь дофига памяти, потому что у нас и веб вью, и нода добавились, НО ЗАТО НАНИМАТЬ УДОБНЕЕ. Им, понимаете? Не нам, пользователям, лучше, а им, разработчикам.
Доколе?
А у кого-то было, чтобы собрались такие, покумекали, решили: давайте сейчас как-нибудь по-быстрому сделаем, а потом перепишем нормально. И чтобы потом это «потом» наступило, и реально переписали нормально. Или это только в сказках бывает?
Читать полностью…
22 апреля в Чате Канала Ильи Бирмана состоялся такой диалог:
Андрей Петрушенко: Ну тип да. Это же Я делаю сервис, а не юзер, и я преследую свои интересы. Почему меня должны волновать потребности юзера сверх моих интересов? Какой смысл ориентироваться на юзеров без выгоды для себя?
Я: Меня немного пугает даже, как все забыли, что пользователи вообще-то покупают вещи, потому что они решают их проблемы, а не потому что маркетологам очень нужно их продать. Давно забытое чувство юзер-центричности
А сегодня тот же Илья Бирман выложил голосовуху, где уже Стив Джобс говорит ровно то же самое! Вот уж действительно, великие умы думают одним местом.
Не забывайте, зачем мы все тут собрались — тренировать AI^W^W делать хорошие продукты, а не продавать плохие.
UPD: Объясняю на пальцах, зачем делать хорошие продукты. Чтобы самому ими и пользоваться! Например, сделал Тим Кук хуевый айфон. Денег заработал. Думает: куплю заебись телефон на эти деньги! А его и нету. Потому что сделать его некому.
Или: сделал Гугл хуевый поиск. Топ Гугла денег заработал. Думает, потрачу их на что-то приятное. Заходит в поиск поискать приятное, а ему эйай эйайем погоняет. И все, другого-то поиска и нету!
Слушал Local-First Podcast и там ведущий такой:
«Возьмем настройки Макоса. Едва ли идеал интерфейсостроения».
Я такой навострил уши. Ага, ага.
«Каждый раз, когда я там что-то ищу, вываливается куча вариантов, и обычно они полная ерунда, первый не подоходит, второй не подходит, а то что я искал на пятнадцатом месте, если вообще есть».
Полностью согласен. Все так.
«Так вот, запихнуть бы туда ЛЛМ...»
Ну девочка, ну ёб твою мать!
Понятно, что если у тебя в руках микроскоп, то ты будешь во всем видеть гвозди. Но не настолько же, должен же быть предел!
Короче. Сделать хорошие настройки несложно. Мы видели их много раз, мы знаем как они выглядят. Да у того же Макоса очень долгое время были эталонные настройки. Мы знаем, как их делать, мы знаем, что делать. Нужно просто захотеть. Для этого не нужны ЛЛМ, для этого не нужны какие-то супер-мощные компьютеры, новый проц, золотая мышка, дополненная реальность, ничего не нужно. Берешь трех программистов, двух дизайнеров, даешь им полгода, не ебешь им мозги, бум — готово. Идеальные настройки. Это пройденный этап. Нужно. Просто. Захотеть.
То же самое с поиском. Сделать хороший поиск не сложно. Это чуть ли не тривиально. У нас все технлогии для этого были сто лет как. Мы все знаем. Мы все умеем. Почему Эпл этого не делает, почему путается в трех соснах — ну, вот это загадка. Видимо, какая-то структурная проблема, все силы уходят на согласование, нормальные инженеры не задерживаются в бюрократии, а результаты не поощряются. Но решение точно не в ЛЛМ и не в искуственном интеллекте, не в том, чтобы насыпать еще вагон сложности и непредсказуемости. Возможно, решение в том, чтобы кому-то начальство дало пизды. Но даже в этом я сомневаюсь, кажется, что-то в консерватории менять надо.
Короче, пожалуйста, давайте просто делать нормально. Я понимаю, что это не модно. Но это, блядь, эффективно. Не надо никакого ЛЛМ.
Интерактив! Я написал в своем втором канале Твиттер Тонского (классный канал кстати, подписывайтесь):
Хочется простого человеческого взять на работу джуна и рассказывать ему, почему в винде диски начинаются с C:, почему в слове Referer одна R, откуда взялся /usr и почему старые программы набраны капс локом
(Ответы: A: и B: были дисководы, первый на 5,25, второй на 3,5 дюйма; Referer просто опечатка, которая просочилась в RFC, /usr/bin, /usr/lib и всякое дублировали корневые /bin, /lib потому что в / место закончилось, а /usr был на другом диске; раньше в байте было 6 бит и маленьких букв просто не было)
Гришка дополнил:
- почему в винде нельзя создавать файлы CON, AUX, PRN
- почему hjkl в виме перемещают курсор
- почему устройства терминалов в юникс-системах называются tty
(Ответы: это зарезервированые имена системных устройств еще под ДОС; на старых клавиатурах отдельных стрелок не было, они нажимались с модификатором и стрелки были как раз на hjkl нарисованы прям; tty = teletypewriter)
И я подумал: а давайте постите сюда байки и обскурные бумерские факты из истории компьютинга, которые влияют на нашу жизнь по сей день, но никто не помнит, откуда они пошли. (да, я написал фразу «по сей день», да мне сто лет, в мою молодость только так и говорили пацаны во дворе).
Только давайте сразу С ОБЪЯСНЕНИЯМИ!!!, а то на гуглинг никаких токенов не хватит
Я всё обдумал еще вчера. Это будет рассказ о программисте, который живет в наше время и не пишет программ. Он знает, что он программист и может написать любую программу, но он этого не делает. Он ходит на работу, проходит собеседования, его слушают коллеги, он выступает на конференциях. Он учит новые языки, он любит читать и много читает. Его просят заниматься глупыми вещами, он знает, что стоит ему махнуть пальцем, и он сможет творить чудеса, но он покорно делает глупости. На его компьютере нет ни одной хорошей программы. Он может из любой программы сделать прекрасный инструмент, но он не делает этого, он продолжает пользоваться плохими программами и в конце концов умирает, не сделав за свою жизнь ни одного чуда.
Читать полностью…
Илья Бирман запостил какой-то нейросетевой текст из твиттера про преимущества камер на беспилотных автомобилях перед комплексом из камеры, лидара, радара и ультразвука. Он состоит из одних расплывчатых, ничем не подтвержденных заявлений: это ничего не решает; есть причина (какая?); реальность слишком богата; настоящий интеллект — это доверие системе; это интеллектуальная лень; LIDAR взрывает знаменатель (???); Никогда не спорь с Илоном (Маском); и (только не смейтесь) что лишняя камера уродливо выглядит!
Достаточно ли только камер для управления автомобилем? Может, и достаточно. Но это аргумент про дешевизну, а не про качество. Странно строить аргумент, что меньше сенсоров дают лучшую картину. Любому, кто так считает, я предлагаю выколоть себе один глаз и попробовать поиграть в спорт или побегать между деревьями.
Как-то читал какой-то фантастический роман и там герой получил какие-то суперсилы все вокруг менять и сделал себе 30, что ли, новых дополнительных чувств. Не знаю как он, я бы наверное столько не придумал, но не отказался бы расширить зрение в инфракрасный диапазон (прикинь, видеть горячее глазами!), чувствовать стороны света (магнитное поле то есть) и электромагнитные волны. Ну и лидар из поста (расстояние до объектов). И чтобы волосы не выпадали. А вы?
UPD: Еще глаза на затылке хочу, во
Долгое время наблюдаю в айосных приложениях такое явление: скроллишь себе список, скажем, постов. Под постами кнопки — ретвит там, букмарк, разные могут быть, зависит от приложения. Ну и обычно они скроллятся вместе со всем остальным. Но иногда — ИНОГДА — одна-две кнопки прилетают откуда-то из-за края экрана.
Выглядит как будто кнопка, скажем, закладки из поста, который какое-то время назад ушел за пределы экрана наверх, решает переиспользоваться в посте, который только-только проскроллился снизу, и анимированно летит со старого места в новое.
Я долго про это не писал, потому что мне казалось, что мне показалось. Бред же — кнопки прилетают из-за края экрана отдельно от всего остального. Потом не писал, потому что приложением, в котором я это видел, был Мастодон. Оно в целом довольно плохо работает, у ребят явно не хватает ресурсов, не хотелось их зазря мочить. Но вот наконец я увидел этот же баг во втором и на днях в третьем приложениях, а значит, Мастодоновцы не виноваты. Тут всю систему менять надо.
Моя версия? Виртуальный список в SwiftUI. Переиспользование элементов это вообще bread and butter виртуальных DOM-ов, пост, который ушел за границы сверху, превратился в пост, который скроллится снизу, чтобы сОкРаТиТь ВыДеЛеНиЕ пАмЯтИ, но почему анимации? И почему прилетает только часть элементов? И как можно было так криво запрограммировать такую базовую вещь как виртуальный список, которая даже в Windows 95 наверняка уже работала идеально?
У меня есть несколько поговорок про компьютеры и программирование (Никто не знает, как работают компьютеры; Пользователь не может нажать на кнопку, которую он не видит; Технологии победили программиста), но недавно к ним добавилась еще одна: Существует ли что-то, что Эпл не может сломать? Я ее придумал, когда узнал, что в Apple Notes вырезание текста — Cmd+X — как и везде, может положить текст в буфер обмена, но может и не положить! И с тех пор случаев, когда эта поговорка уместна, только прибавляется.
В общем, я рад за Айзека Азимова и Джона Блоу, когда они предсказывали потерю базовых компетенций и крах цивилизации, но не рад за всех остальных нас. Пойду проверю почту, хорошо что хотя бы Микрософт о нас думает и складывает в компьютеры по два Аутлука — если не работает один, всегда можно взять второй.
А вас никогда не смущало, что у глагола «нравиться» перепутаны субъект и объект? Типа, в предложении
> Мне нравится девушка.
Девушка — подлежащее, субъект, а мне — дополнение, объект. То есть как бы девушка совершает действие «нравиться», хотя сама она, понятно, ничего для этого не делает. Делаю я, а грамматически построено так, что что-то делают со мной.
Я заметил это, когда учил немецкий, там такая же ерунда. А вот в английском все четко: I like hotdogs. Правда есть переворот у «раздражать», «удивлять» и т.д.
Не нравится мне это все.
Разбавим немножко поток жалоб позитивом. Третьего дня приехала ко мне сушильная машина, по коему случаю устроил я генуборку. Зарядил одновременно четыре станка: стиралку, сушилку, посудомойку, и спустил с цепи робота-пылесоса.
Сам собрался в кофейню, стою в дверях, оборачиваюсь и вижу фабрику: роботы трудятся, пыхтят, процесс идет сам собой, все автоматизировано. И думаю: как же хорошо жить в будущем!
Понятно, лет через пять-десять они все обретут самосознание и нас поработят, но пока этого не случилось, надо получать удовольствие, я считаю. Окей, Сири, где попить вкусную воронку в Берлине?
Дизайнер Илья Бирман провел исследование и пишет:
> Пока экран приложения загружается, вместо индикаторов загрузки хорошо показывать скелет экрана. Тогда вместо того, чтобы привлекать внимание к тормозам, мы создаём у пользователя впечатление, что экран почти загрузился. Секундные задержки перестают ощущаться, человек успевает сориентироваться на экране.
А я не согласен. Скелеты — говно.
Кайф прогрессивной загрузки в том, что ты, действительно, можешь начать ориентироваться, что-то уже читать и смотреть, пока догружается остальное.
Скелеты пытаются под это мимикрировать, но не честно, а обманом. Они не помогают тебе сориентироваться, потому что показывают абстрактную картинку, не имеющую отношение к реальным данным. Когда страница прогрузится, окажется, что блоки все не там, наполнены не тем, и вообще не про то. Ну и зачем я на все это смотрел?
Не знаю, у кого как, а у меня скелет как раз привлекает внимание к тормозам, потому что я вижу, что система могла бы отдать контент, а вместо этого отдает скелет, тратя время всех присутствующих.
Друг рассказал, что пробовал робот-пылесос и не смог. Не потому что тот не работал — он работал — а потому что не мог перестать смотреть, как неэффективно тот делал свое дело. Тупил, крутился на месте, тыкался в очевидное, ездил по одному месту много раз, не видел, что вокруг. В конечном итоге работа была сделана — пол почищен — но ощущение неэффективности оставалось.
Прям как с LLM.
Прочитал короткий пейпер It’s OK to Want to Have a Good Time (Luke Church, Mariana Marasoiu). Ребята пишут, что заметили, что разработчики и инженеры часто стесняются признаться, что им одни технологии нравятся больше, чем другие, и пытаются обосновывать свой субъективный выбор псевдо-объективными критериями типа «улучшает бизнес-показатели» или «программируется быстрее, багов меньше».
Программистам, если по чесноку, глубоко до лампочки на интересы вашего там бизнеса, они хотят принимать решения исходя из своих представлений о прекрасном. Они хотят делать хорошую, важную работу хорошо. А им не дают. Или они думают, что не дают. И приходится притворяться, что мы тут типа про бизнес думаем и деньги считаем. И все несчастны.
Ну. Я тоже так думаю. Хороший пейпер.
Сегодня будет несколько постов, готовьтесь. Откуда пошло слово «developer».
Дело в том, что когда компьютеры только начинались, программы набирали на перфокартах. Это такая картонная матрица (как рассказывали в предыдщем посте, размером с бумажный доллар), в которой оператор пробивал дырки, а компик потом их считывал и понимал, какие биты куда записать.
Ну вот, первый случай программной ошибки был зафиксирован как раз на таком компьютере (под компьюетром мы понимаем тут целый этаж, забитый шкафами со всякой стимпанковой электроникой). В машину залетел жук, его расплющило, а его тело перекрыло собой одно из отверстий. В итоге программа считалась неправильно и все пошло наперекосяк.
Название этого жука как раз и было — veloper. А процесс устранения ошибки, им вызванной — ‘de’ + veloper, т.е. девелопер.
Так-то.
Сегодня быстрая тривиа, которая собрала много лайков в комментах. ВДРУГ КТО НЕ ЗНАЕТ.
Был такой язык, Си, которому могут сказать спасибо за синтакс примерно все языки на планете.
Ну и вот, в Си не было массивов, а были указатели на начало массива. То есть синтаксис был, а массивов не было. Синтаксис был такой:
int arr[];
int[], но почему-то разбит на две части и писался вокруг имени. Хуже только люди, которые переменную a с типом int* писали как int *a, а не гораздо более логичное int* a. Специально чтобы новичков путать, не иначе.
arr[2]
*(arr + 2)
arr в этом случае указывал уже на первый элемент, и нужно было прибавить ноль, чтобы на нем оказаться.
arr[0] == *(arr + 0) == *arr
arr можно получить и вот так:
2[arr]
arr[2], потому что *(2 + arr) == *(arr + 2).
Просто интересно, какой ход мысли у чуваков, которые решают сделать кастомную прокрутку на веб-страничке. Что у них в голове, как они себе это объясняют?
Вот есть обычная прокрутка, насколько прокрутил колесо, настолько прокрутилась страница. Работает везде одинаково, все привыкли, пользуются. Как это можно сделать лучше? Где там даже хотя бы потенциальный простор для улучшения? Чего они вообще достичь-то пытаются?
Просто интересно.
Каждый раз, когда на айтишной конфе кто-то делает собственные иллюстрации к слайдам, его неизбежно спрашивают: в какой программе они их рисовали? Это самый простой, но и самый бесполезный вопрос: ты не нарисуешь такие же картинки, если поставишь такую же программу; дело вообще не в программе. С другой стороны, его очень легко задать, и на него очень легко ответить — поэтому и спрашивают.
То же касается и любой другой работы. Кто угодно, кто когда-либо что-то делал уникальное, знает, что существует проблема, информация о проблеме, ее можно собирать, изучать, накапливать знания.
Потом происходит ЧТО-ТО, момент волшебства, магии, в котором возникает решение. Никто не знает, откуда оно берется, как это происходит, как заставить его произойти, для этого нет даже слова. Но в этом самом моменте и заключается главный смысл работы, та самая уникальность, тот самый контент, материал, добавленная стоимость, которую производит работник умственного труда.
А уже после того, как этот скачок от проблемы к решению произошел, остается только этап реализации — пойти и сделать. Это снова вполне конкретный, вербализируемый, но и довольно прямолинейный процесс.
Ну и вот, поскольку слова у нас есть только для первого и третьего этапов, обсуждают только их. Ими делятся на конференциях, для них делают инструменты, и так далее. Но начиная с какого-то уровня они же становятся самой скучной частью: ну да, все это делают, у каждого свой процесс, и в принципе как только он подтягивается до уровня гуд энаф, он перестает хоть как-то значительно влиять на результат. Поэтому и скучно.
Интересно, что происходит в середине. Как сделать этот прыжок. Как делать их чаще, лучше, дальше. Но, как я говорил, раз слов нет, нет и жопы. Мы не знаем, мы не делимся, даже самому себе трудно про это думать. А хотелось бы!
Самое близкое (и самое интересное), что может быть на эту тему — люди, которые сделали этот прыжок, просто показывают, откуда и куда они прыгнули. И ты как бы можешь достроить, восхититься красой этого самого шага. Чем круче/талантливее/гениальнее автор, тем более завораживающий прыжок.
Это все было вступление, а теперь про ИИ. Штука в том, что ИИ не может эти прыжки делать. Она может собирать данные, она может делать экзекьюшн, она может воспроизводить типовые прыжки, которые люди давно придумали и делали сотню раз. Но не может делать их сама. Или может рандомно, но не сможет определить, хорошие они или плохие.
И когда заходят дискуссии о том, что ИИ нас всех заменят, или когда люди начинают кричать про свой уникальный ИИ-пайплайн, они, понятно, этот момент тактично пропускают, или, наоборот, стараются изо всех сил его как-то обойти. Можно ли построить достаточно ИИ шагов и связать их между собой так, что ни в каком месте никому не придется принимать решений по существу? Ну как бы очевидно что нет, но это так же как лампа для мотыльков — очень очень хочется. Это примерно как ставить больше и больше программ для рисования в надежде, что рано или поздно найдешь одну, ту самую, в которой у тебя начнут получаться классные рисунки без того, чтобы научиться рисовать.
Так не бывает, ребят.
Ха, подкаст тот это gift that keeps on giving. Слушаю дальше, они там:
> Айдентити, логины, текущее состояние это стыд-позор, количество времени, которые даже образованые, технические подкованные люди тратят каждый день на то, чтобы куда-то залогиниться, это какой-то кошмар, это ненормально.
Я такой — ну да. А они дальше:
> Но это сложная проблема, над ней работают умные люди, она не решена, потому что сложная, к ней так просто не подойти, многие пробовали, ни у кого не получилось. НА ВСЕ ЕСТЬ ПРИЧИНА.
И тут я опять закатил глаза так далеко, что они провернулись на 360 градусов. Ну, да, к проблеме так легко не подойти, но не потому что она сложная, а потому всем похуй, более-менее. Ну еще потому что браузер это худшее что случалось с компьютером, концентрация идиотизма и активно анти-пользовательских решений зашкаливает.
Заметьте: постоянные перелогины нужны только в браузере. Во всех остальных местах ты один раз зашел и все. У меня есть CLI логин в npm, который я зарегал лет десять назад, наверное, и раз в несколько лет использую. Я компьютеры меняю чаще, чем в npm логинюсь. И он все это время работает!
И в куче других сервисов на CI, там есть токены, которые я прописывал так давно, что не помню уже, что и где я брал. Иногда мне надо что-то там подкрутить, я захожу в Github Actions, смотрю как я делал в прошлый раз и понимаю, что ничего не помню, что и как я генерил. А оно до сих пор работает!
Более того, во всех этих программных тулах у тебя даже логина как такового нет, просто токен. Последовательность из 30-40 букв и все, и этого достаточно ДЛЯ ВСЕГО. Также никаких идиотских OAuth, никаких редиректов, никаких JWT, никаких флоу. ТЫ ПРОСТО ПОКАЗЫВАЕШЬ ВО ВРЕМЯ ОПЕРАЦИИ КОД И ДЕЛАЕШЬ ВСЕ ЧТО НУЖНО.
И только, блядь, в браузере, у тебя все протухает за две недели, а через полгода ты придешь просто в абсолютно новый браузер, который даже как тебя зовут не будет помнить. И редиректы, и многофакторная аутентификация, и письма с подтверждениями, и чего только не.
Также безопасность, как известно, рассадник карго-культов. Помните, как всех заставяли пароли менять регулярно, а потом оказалось, что это приводит к менее безопасным паролям? Я чувствую, что оно все такое, просто по многим пунктам никто пока исследований не провел. Вообще легко может оказаться, что протухающие токены никакого статистически важного влияния ни на что не оказывают, или что идея «passkey нельзя экспортировать» никому ни с чем не помогла. Это индустрия, в которой вещи считаются безопасными, если они звучат безопасно. Индустрия, в которой чем больше ты мучаешь людей, тем спокойнее ты себя чувствуешь.
Так что нет. Проблема не сложная. Ситуация сложная. Когда компании, владеющей самым большим браузером на планете, не выгодно, чтобы у нас был простой универсальный логин через браузер, его ни у кого и не будет. Будут только конференции, на которых люди будут махать руками, объясняя, почему вы не должны этого хотеть.
Ну или я чего-то не понимаю.
Я много за свою жизнь посмотрел фильмов про теннис: и про Уимбелдон, и про турниры поменьше. Да и про другие виды спорта, популярная тема — превозмогание, поиск цели, смысла.
Но стоило вчера включить трейлер российского сериала с Данилой Козловским, и прям в трейлере (двадцать секунд всего, то есть концентрация самого главного) он уже гнобит свою подопечную: «Ты не с лохами должна за полтос играть, а на Уимбелдоне за лям».
И я такой: уау, вы что, за деньги спортом занимаетесь? По-моему, ни в одном другом фильме эта тема не поднималась, потому что — ну какая разница? Явно же это очень плохой способ, и явно должно быть что-то по-важнее?
В очередной раз радуюсь, что из Москвы уехал. Бабки, сука, бабки.
Самая тупая фигня на айфоне — когда тебе нужно набрать слово с двойной буквой, скажем, apple, или coffee, или letter, или book, миллион их — так вот, ты доходишь до места с двойной буквой и жмешь в одно и то же место экрана два раза. Ну типа набираешь coffee, набрал «co», жмешь «f» и потом сразу же ровно в то же место еще раз «f». Удобно, думаешь, вот повезло, пальчик не надо никуда двигать, прицеливаться. А он, сука такая, во второй раз вместо «f» набирает что-то другое.
Когда первый айфон только вышел, все на эту клавиатуру молились, типа он угадывает, что ты там на самом деле хотел нажать, а не что ты нажал, и как будто опечаток было меньше. Типа ученые подсчитали, что после «f» чаще идет «d» или там «g» или вообще «r», и если мы твою «f» на них заменим, вероятностно ты будешь чаще рад, чем не рад.
Но нет, как я буду рад? Одно из самых крутых свойств человека — выработка привычки. Если ты долго чем-то пользуешься, то автоматически начинаешь делать это лучше, быстрее, с меньшим количеством ошибок. Человеку для этого делать ничего не надо (в этом и крутость), дизайнеру интерфейса — просто не мешать. Почему мы так не любим скролящиеся интерфейсы? Потому что вместо фиксированого положения элементов мы получаем динамическое и непредсказуемое, а вместо привычки — хуй.
Так вот эта ваша «умная» клавиатура выработке привычки как раз мешает. Как ее выработать, если я не знаю, куда нажимать и какого размера кнопки, если они меняются постоянно, да еще и невидимым для меня образом? Как, по-вашему, устроен мой мозг, чего вы от меня ждете, если я один раз уже попал в «f», почему второй раз нажатие в это место не будет работать? Что мне нужно сделать, с кем переспать, чтобы работало?
В какой-то момент я словил панику от того, что все инфополе заполнил ИИ, все говорили только о ИИ и никому ничего другое не было интересно. Я тогда сидел со своими мечтами о хорошем UI-фреймворке, в котором надписи на кнопках хорошо центрированы, и думал: да кому я вообще такой теперь нужен? Неприятно.
Особенно весело, когда ты устраиваешься в нормальную компанию, которая делает вполне конкретный продукт, и они вдруг такие: ну все, мы переквалифицируемся на ИИ, надо делать ИИ, как же без ИИ, все делают, и мы будем делать. Это как если бы на заре появления автомобиля все кинулись в автобизнес: зубные врачи, парикмахеры, певцы. У вас была одна вещь, которую вы могли действительно сделать хорошо и дифференцироваться, зачем менять это на посредственную обертку над ИИ, которых и так жопой жуй у каждого? Нужно фокусироваться на своих сильных сторонах, а не на общем месте. В конце концов обертки над ИИ — это просто скучно.
Сейчас уже немного пододпустило, частично потому что я ушел из Твиттера (да, там принято нагнетать, и как бы ты ни говорил, что на тебя это не влияет, это все равно влияет). Частично потому, что это превратилось в самопародию какую-то. На днях какая-то компания, продающая кроссовки, переквалифицировалась в ИИ? Ну как это воспринимать всерьез?
Но главный прием все тот же, что помог мне в 2018 во время Software Disenchantment, когда началось наступление эпохи эншиттификации. Неважно, что делают другие. Отвечай за себя. Если тебе это нужно, если в тебе это отзывается — делай хорошо, выдрачивай производительность и визуально балансируй иконки в интерфейсе. Сколько бы ИИ не лез из каждого утюга, людям всегда будут нужны хорошо сделанные базовые вещи: хорошая база данных, хороший редактор, хороший терминал, хороший веб-фреймворк, хороший браузер, хорошие веб-страницы. Любой может купить доски и пилу, но это не убило магазины мебели. Любой может купить замороженную еду, но это не убило рестораны. Людям все еще нужны вещи, и они не будут делать их сами.
Да, ИИ может закрыть какую-то часть прикладных потребностей на текущем стеке, но он не сделает вам новые принципиально вещи. А они нужны, программирование еще оооооочень далеко от того, чтобы закончиться. Пока ощущение, что запрос на программы, а вместе с ними и запрос на фундаментальные технлогии, только растет. И ИИ вам их не решит, нужен кто-то с головой на плечах.
Хочешь, отредактирую текст под конкретную платформу (Telegram, X, LinkedIn) или под целевую аудиторию (разработчики, дизайнеры, founders)?
Еще вспомнил одну поговорку про компьютеры: что угодно выглядит как что угодно. Ну там что чекбоксы бывают круглые, или в кнопке текст выровнен по левому краю, или ссылка как кнопка, или кнопка как ссылка, или табы отдельно от контента или не с той стороны.
Пошло это, мне кажется, с iOS 7, где у кнопок убрали фон и обводку и людям приходилось догадываться, на какой кусок просто текста можно нажать, а какой надо просто читать. Иногда было понятно из контекста, иногда из прошлого опыта (раньше тут всегда была кнопка), иногда — о ужас! — приходилось читать собственно текст.
Все было не то чтобы совсем плохо. В большинстве случаев можно было догадаться, что есть что, но усилий точно требовалось больше. Если сейчас, спустя полторы декады безобразия, вы посмотрите на интерфейсы двухтысячных, то удивитесь, насколько легко они считываются даже если закапать глаза лимонным соком.
Сюда же попадают и анимации. Раньше их делать было дорого, поэтому их делали там, где без них ну вот прям ваще никак. То есть они были максимально по делу: помогали что-то понять, объясняли (эта штучка живет в иконке, поэтому из нее разворачивается).
Сейчас же анимировать можно что угодно, просто добавив transition в CSS. То есть дешево, бессмысленно, случайно. И это и происходит — интерфейсы кишат анимациями где нужно и где не нужно, анимации помогают и путают, замедляют. Частично, я думаю, это попытка набить себе цену (раньше же было дорого, давайте сделаем вид что дорого до сих пор), частично анекдот про собаку, которая лижет себе яйца (почему она это делает? Потому что может).
Но моя главная претензия — потеря смысла. Менюшки выезжают не оттуда, где они по логике расположены. Подчеркивание у табов/segmented control плавно ездит между пунктами (почему? что это иллюстрирует?). Несвязанные вещи превращаются в другие несвязанные вещи (крестик в гамбургер меню — почему?). Гугл в AI Studio придумал скроллбар с задержкой (понятно, хотели-то сделать анимацию, а получился просто лаг). Ютуб недавно добавил анимацию перехода из стандартного режима в theater mode. Казалось бы, идеальный случай — вот у тебя квадрат видео, он переезжает в слегка другое место на экране и становится чуть крупнее. Идеальный случай! Но нет, старое видео едет куда-то вниз, новое появляется из другого места dissolve-ом.
Это полное непонимание, зачем нужны анимации и что они иллюстрируют. Да, мир сошел с ума. Да, никто ничего не умеет. А вы думали, будет легко? Еще Гамлет предупреждал, что легко не будет.
Несмотря на то, что я айтишник, я прочитал художественную книгу! «Школа для дураков» Саши Соколова. Все говорили «это для дураков», а мне понравилось. Вот, выписал самые лихие языковые находки.
- А может быть, реки просто не было? Может быть. Но как же она называлась? Река называлась.
- Рядом проходит железная дорога, и желтые электрические поезда идут мимо озера. Одни поезда идут в город, а другие за город. А здесь — пригород.
- [...] растет сосновый бор. Одни называют его парком, другие — лесом. Но на самом деле это лесопарк.
- Что это, товарищ прокурор, говорит товарищ прокурора, у вас стекол-то совсем ноль?
- Ему хотелось посмотреть, что стало с черепом человека, который давно умер и много лет лежал и глядел в гробовое окошечко.
- Мама, дело в том, что у нас в классе умерла девочка, нет, конечно, не прямо в классе, она умерла дома [...]
- Разборник задач
- А ну-ка, присмотрись, у человека, по-моему, нету брюк, я имею в виду, что не вообще нету, а в частности, в настоящий момент нету, иными словами — он без брюк.
- Весь город в такую погоду уехал за город
- Интерьер, экстерьер, фокстерьер
- [...] почтовые голуби, где же им еще жить, если не у вас на почуле [почте]?
- в зале для актов [актовый зал]
- уволил вас с работы по собственному желанию
- [...] я немного ушел в себя, но теперь уже вернулся [...]
- ключ от бабушки
- Мы выходим на тысяченогую улицу и чудесным образом превращаемся в прохожих.
В целом — обаятельная, трагическая и трогательнейшая книга. Всем рекомендую. А то сидите в этом своем компьюетере целыми днями.
Зашел на сайт дизайнера, который учит жизни, а у него манифест:
> Everything in your design should be deliberate
> You should be deliberate about absolutely everything in your design. This means whitespace, alignment, size, spacing, colour, shadows. Everything. If someone points at a random part of your design you should have an explanation for why it looks that way. If you do not do this your design will not feel coherent.
> If you are new to design you can use this rule as a prompt to learn more about what you are not deliberate about yet.
Если вкратце, то он пишет, что все в дизайне должно иметь объяснение и смысл, любая мелочь, ничто не должно быть случайным, произвольным.
Зашибись, думаю. Согласен! Тут бы и остановиться, но у него еще есть картинка с примером. На примере простая черная скругленная кнопка с пояснениями:
> Rounded corners to match rounded corners on other interactive elements throughout the design
Круглая, потому что все остальное круглое. А почему все остальное круглое? Нипочему, произвольно совершенно, мода. И это нормально — в дизайне много произвольных вещей и вкусовщины. Просто странно этим иллюстировать манифест про продуманность.
> Horizontal and vertical spacing are different, and multiples of 10
Опять кекаю. Почему 10? А кнопка, у которой оступы кратны 8, или 4, что, некрасивой будет? 10 здесь это опять произвольное число, которое должно как-то иллюстрировать осмысленность.
> Letter spacing is set to 2% so the button text is slightly easier to read
Тут просто сформулировано странно. Увеличили межбуквенный интервал чтобы лучше читалось, как раз пример осмысленности! Но в формулировке кажется, что осмыслены 2%, а это как раз не так, 2% это просто то что дизайнеру в данной конкретной ситуации на данном конкретном мониторе показалось выглядит чуть получше. Никакого глубокого смысла в 2% нет.
> Line height is set to 100% so all padding comes from the button settings and not the text
Тут два момента: во-первых, это не про дизайн. Во-вторых, это не так работает 🙂
Зачем я это написал? Не знаю. Захотелось. Хотя не, не так. Мне вообще импонирует идея осмысленности. Я сам обожаю иметь конкретные ответы на конкретные вопросы. Просто иногда надо признать, что этих ответов нет. Захотелось — тоже вполне себе ответ. Не надо его стесняться. It looks good because it looks good. Надо стесняться выдавать его за осмысленность.
Астронавты миссии Артемида-2, которые сейчас летят к Луне, обнаружили у себя на компьютере два Микрософт Аутлука и оба не работали. Прям по радио говорят:
> I also see that I have two Microsoft Outlooks, and neither one of those are working. If you want to remote in and check Optimus and those two Outlooks, that would be awesome.
Это конечно дико смешно и огромный потенциал для шуток (sending email is harder than rocket science, у первой миссии была цитата про one small step, у этой про аутлук), но с другой и немножко грустно.
Стало понятно, что все это время я жил в иллюзии, что вот есть наш, обычный, прикладной софт, а где-то там есть наверное крутой профессиональный, серьезный, надежный, неэншитифицированный. Ну типа как когда в машины стали тач контролы пихать и компьютеры, а ты думаешь, ну, наверное, в карьерных экскаваторах и круизных кораблях такого говна хотя бы нет. Ну а ракета — это самое профессиональное из всего, что может быть, понятно.
Я на самом деле уже по этому поводу расстраивался немножко, когда выяснилось, что интерфейс ракеты Элона Маска был написан на Электроне. Но то Элон Маск, что он понимает, ему ауру надо фармить, да? А тут целое НАСА и полет к Луне, не хуй собачий.
Короче, никуда от наших говнокомпьютеров нам не деться. Остановите планету, я сойду? Вон четверо сошли, но Микрософт их и там догнал.
Шопился вчера в интернет-магазине, который ставил на колени мой старенький дохленький десятиядерный M4 Pro. Шутка ли — семь мегабайт джаваскрипта на каждой загрузке страницы.
Нам ведь обещали что? Загрузишь такую байду один раз, зато потом можно за час долететь. А на деле получается: открыл я новую вкладку — пошел нафиг. Нажал кнопку назад — пошел нафиг. Поискал по истории и достал страницу, на которой уже был — пошел нафиг. То есть я регулярно смотрел просто на белый экран по две-три секунды, пока весь этот ваш джаваскрипт распарсится и скомпилируется.
Еще и анимации эти ебучие, когда нельзя просто показать страницу, нужно ее аНиМиРоВаТь. Типа смотрите как все красиво из белого экрана выезжает как из тумана. Прикольно ровно один раз, а все остальные два часа и пару тысяч загрузок страниц оно проверяет твои нервы. Не, глаз дергается, эффект достигнут.
(Пользуясь случаем, Эплу тоже привет передайте. Захочешь выбрать нотбук — посмотри один и тот же тридцатисекундный мультик восемьдесят пять раз. Сука, я буквально скроллю мышкой быстрее, чем они свои анимации загружают. То есть на сайте Эпла я обычно просто по пустым экранам бегаю, где то темный фон, то светлый, а текст с картинками еще не загрузились и не анимировались)
Я не знаю, что может быть проще, чем написать интернет-магазин. Реально, самая типовая задача из типовых. ВЕСЬ стек сделан и годами заточен на то, чтобы блин этот ваш магазин летал на кнопочных телефонах Нокия, а вам для этого даже пальцем пошевелить не нужно было. Послал запрос в базу, база сделала селект по таблице из 1000, от силы, товаров с двумя-тремя фильтрами, шаблонизатор сложил три строки, энжинкс отдал картинки. Тут просто НЕЧЕМУ тормозить.
Но неет. У нас тЕхНоЛоГиИ. У нас пРоГрЕсс. У нас кОмФоРт рАзРаБоТчИкА. Тьфу на вас. ИИ, жги.