nikitonsky_pub | Unsorted

Telegram-канал nikitonsky_pub - Стой под стрелой

10986

Ведет @nikitonsky. Рекламы нет

Subscribe to a channel

Стой под стрелой

Узнал какое-то время назад, что некоторые люди, возможно даже члены моей семьи, используют кнопку закрытия окна для сохранения. То есть жмут на крестик, комп такой — ой, документ не сохранен, сохранить? И эти люди такие — да, сохраняй. Железные нервы у этих людей, возможно даже членов моей семьи.

Подумал, что современная версия этой истории — удаление иконок с экрана айфона. Чтобы убрать иконку с экрана (но не удалить приложение совсем), надо на нее нажать, подержать (см. пост про «нажать и подержать») и выбрать опцию «УДАЛИТЬ СОВСЕМ». Опция красная, со знаком стоп, все как полагается.

Увидев, что вы собираетесь удалить потенциальный источник 30% прибыли, айфон приходит в себя и показывает ПОДТВЕРЖДЕНИЕ. Так вот, в этом подтверждении есть обычные «Да, удалить», «Нет, не удалять» и «Удалить с экрана». Последнее это как раз то что нам было нужно. Нажимаем, иконка пропадает, но приложение остается в памяти телефона.

Вопрос, почему не вынести эту опцию на один пункт выше? Почему, когда я держу иконку пальцем и смотрю на меню действий, сразу не предложить «Удалить совсем» и «Удалить с экрана»? Зачем каждый раз заставлять меня проходить через меню полного удаления, зачем этот риск, игра со смертью? Щас я тебя удалю, ха-ха, да пошутил я, ты что, испугался?

Ответ — потому что Эпл.

Читать полностью…

Стой под стрелой

Мы все смеемся над задачами на смекалку на интервью, а я меж тем наблюдал на днях в офисе, как чувак набирал 1,25 литра резервуар с помощью литрового кувшина.

Налил какое-то произвольное количество воды, заполнил резервуар на 0,25 (там есть метки), ну а после добрал кувшин полностью и это был ровно литр еще.

А вы говорите, тригонометрия не нужна.

Читать полностью…

Стой под стрелой

Киллер-фича айфона: если ты давно не открывал приложение (месяц? три?), он перестает показывать тебе от него нотификации.

Ну то есть ты поставил себе приложение, которое напоминает, когда вышли новые серии любимого сериала. Айфон сначала будет напоминать, а потом перестанет.

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

Или ты поставил себе напоминалку раз в год платить налоги. Напоминалка не придет.

Или напоминалка оплатить телефон. Если ты будешь только смотреть напоминалки, а платить скажем через банк, в какой-то момент напоминалки перестанут приходить.

Или у тебя есть приложение для отслеживания инцидентов, но инциденты случаются редко. Теперь будут еще и незаметно.

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

Читать полностью…

Стой под стрелой

Такой вот непонятный тренд. CLI тулзы, которые стирают аутпут. Я сначала с тайпскриптом боролся, вроде поборол: в режиме вотча, ты что-то поменял, он очищает экран и печатает новый. Вчера вот заметил, что Gradle делает так же, и тестраннер какой-то джаваскриптовый делает так же.

Что? Зачем? Почему? Это какое-то фундаментальное непонимание самой концепции терминала. Что ты всегда можешь отмотать назад и посмотреть, что там случилось. Что прошлый вывод это документ, и документ офигенно полезный.

Я так думаю, что это делают из заботы о пользователе. «Ну как же наш бедненький двадцатипятилетний малыш-фронтендер поймет, что надпись „Compilation failed“ тридцатью строчками выше уже неактуальна?» Как, как? Молча! Сядет, блин, подумает головой один раз, и потом всю жизнь будет пользоваться.

Читать полностью…

Стой под стрелой

Когда мы будем делать свой язык, в нем будет офигенная типографика. Миллионы, может даже миллиарды людей по всему миру ежедневно набирают дефис и знак больше, чтобы получилось убогое подобие стрелочки, и считают, что все нормально, что так и должно быть. Кодировки умерли, Юникод победил, сколько можно сидеть в каменном веке?

Например, недоразумение в виде знака дюйма, использующееся для обозначения строк, мы сразу же заменим на нормальные лапки “...”. Меня давно беспокоит, что всякие массивы и теги обозначают начало и конец разными символами (открывающая и закрывающая скобки), а у строк символ одинаковый. Вот, будет разный.

Дальше, понятно, минус. То, что вы печатаете, нажимая на кнопку рядом с плюсом на клавиатуре — не минус, а дефис. Он выглядит по-другому, придуман для другого (соединять слова) и вообще перегружен. В юникоде есть математический минус — — который придуман специально для математики и идеально сочетается с плюсом. Вот его-то мы для арифметики и будем использовать. Бонусом — дефис освободится, чтобы, как ему и полагается, соединять слова. Да здравствует кебаб-кейс!

Еще под нож пойдет умножение — звездочка это хорошо, но типа зачем? Зачем себя мучать, переучивать после школы, делать вид, что * это почти крестик? Язык не должен строиться вокруг концепции «на что создателям печатных машинок когда-то хватило клавиш». Короче, умножение тоже красивое — ×.

Ну и раз уж мы про математику, то давайте со сравнением разберемся. Вот это вот что такое: !=. Что это такое, я вас спрашиваю? Это по-вашему нормально? Это псевдографика какая-то или что? А вот это? <=? >=? Это что за стрелки? Вот же, положила: ≠ ≤ ≥.

А логические операции? Вот эти вот && ||? Думаете: ага, щас опять юникодно-математические символы какие-то найдет. Не, нифига (хотя они есть). Сравнение просто словами будет: and, or. Во-первых потому что ∧∨ хрен запомнишь. Во-вторых... впрочем, достаточно во-первых.

Еще стрелочки, стрелочки мои любимые, стрелочки. За «стрелочки», сделанные из дефиса и знака «больше», я вас ударю. Нормальные есть в юникоде, на любой вкус, во все стороны, вот: ↓←↑→↖↗↘↙. Можно на вещи на соседних строчках показывать!

Что там еще программисты напридумывали от убогости ASCII? А, шестнадцетиричные числа. В нашем прекрасном языке будущего они не будут записываться как 0xC1F27ED. И даже не как 0×C1F27ED. Шестнадцетиричное число? Ну так и пиши: C1F27ED₁₆. Двоичные так же 00001111₂, восьмеричные так же 12345670₈.

Есть еще вопросик с присваиванием, конечно. Писать двойное равно для сравнения это бред, это понятно. Тройное — бред уже клинический. Сравнение это обычное, одинарное =. Значит, надо что-то для присваивания придумать.

С одной стороны есть :=. Он долгое время считался оператором смерти — все языки, которые его вводили, умирали. Но сейчас есть Go и правило больше не работает. Но у := есть другая проблема — без хорошего шрифта типа Fira Code оно часто выглядит как говно — двоеточие не выровняно относительно равенства, и оба они стоят как-то криво-косо относительно остального текста.

В общем, я думаю мы для присваивания приспособим. Но это пока не точно.

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

«Да кто на это пойдет?» — скажете вы. А я напомню, что программисты — люди, способные добровольно терпеть сильную боль, на которую сами же себя обрекли (см. Дворак, Линукс). Так что была бы цель, а средства подтянутся.

Читать полностью…

Стой под стрелой

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

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

Но вот что мне не нравится: ассистент это перекладывание работы на другого. Сама работа не становится легче/проще/удобнее. Просто ее делаешь не ты. Но мы как бы признаем, что трудности неизбежны: сайты будут сложными, неудобными, тебе нужно будет балансировать множество факторов, etc.

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

Мне кажется, где-то здесь кроется и разница между старым Эплом и новым. Стив Джобс был пользователем: он буквально сам пользовался маком, айподом, айфоном. ЕМУ ЭТО БЫЛО НУЖНО. В его презентациях звучат фразы «мы сделали почту для себя», а слайды делались с дефолтными эффектами из Кейноута. Если смог Стив Джобс, сможешь и ты. Не какой-то там ассистент, а ты, лично ты, такой же человек с таким же макбуком из магазина.

Вот, а Тим Кук явно не пользуется компьютерами, они ему не нужны и неинтересны. Он слишком богат для этого. Если ему нужно купить билет на самолет, он просто говорит в пустоту: хочу билет на самолет, и кто-то из ассистентов подхватывает и делает. Я уверен, он даже фильм на Эпл ТВ ни разу сам не включал, потому что понятия не имеет, где у него дома пульт. Нынешний Эпл делает продукты как кухни в Индии: неудобные, потому что на них готовят слуги, а хозяева едят готовое.

А когда руководство ставят к стенке и говорят: нам нужен план, босс, что мы делаем дальше? Они ничего лучше придумать не могут, кроме как «давайте сделаем ассистента».

Читать полностью…

Стой под стрелой

Поступило много вопросов по слову «аффорданс». Если мы с вами планируем дальше общаться, нам надо этот вопросик утрясти.

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

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

Переходим к компьютерам. У компьютеров есть интерфейс, с ним можно взаимодействовать, а значит нужны аффордансы. Аффордансы — это когда кнопка выглядит как кнопка, чекбокс как чекбокс, текстовое поле как текстовое поле и так далее. Ты смотришь и понимаешь, что перед тобой, чисто по внешнему виду. Когда графические интерфейсы только начинались, за этим более-менее следили: в условном Windows 95 нет проблем понять, где какой элемент и как на него нажимать. И ЭТО БЫЛО ХОРОШО.

А потом стало плохо. Пришел веб, пропали соглашения, кнопки и чекбоксы стало можно красить как угодно (и все начали красить). Потом пришли плоский дизайн с минимализмом и всякие оформительские приемы резко стали немодными. И ЭТО ПЕЧАЛЬНО.

Да, интерфейс выглядит чище. Но он не читается! Нужно посидеть, посмотреть, поугадывать по положению/логике/подписям, где что. Это время. Это усилия. Небольшие, но заметные. Попробуйте для сравнения открыть какой-нибудь старый интерфейс. Мозг мнгновенно идентифицирует, где что и как, затрачивая почти ноль усилий. Удивительно, но у теней и контраста была полезная функция!

В книге «Дизайн привычных вещей» Дон Норман признается, что у него проблема с дверями. Глупая, говорит, проблема, и вы, наверное, надо мной посмеетесь. Но она существует! Так вот, Дон не понимает, какие двери надо толкать, а какие — тянуть. Потому что нет аффорданса. В угоду дизайну двери делают абсолютно симметричными и минималистичными, а ручки могут быть совершенно любой формы. Иногда видно петли, и это небольшой намек, но иногда и их нет.

И мы сейчас оказались ровно в такой же ситуации, но с компьютерами. И вы, может быть, точно так же надо мной посмеетесь: ха-ха, он не умеет отличать кнопку от ссылки. Да, не умею! И да, я считаю, что это проблема.

Буквально сегодня открыл интерфейс опросов в мастодоне, и там фиолетовая подпись: Single choice. Без рамки, без иконок, без никакого оформления. Просто цветная надпись. Ничто, вообще ничто, не предвещает, что это дропдаун. Это невозможно понять! Только методом тыка, буквально: тыкнул, попробовал, посмотрел, что получилось. Запомнил. На третий год в айти привык.

А я, может, не хочу запоминать! У меня так-то поважнее дела есть, чем в вашем интерфейсе разбираться. Я не хочу разбираться! Я хочу, чтобы было понятно сразу. Мы даже знаем что это возможно: раньше именно так и было! Все, что для этого нужно, это аффорданс.

Читать полностью…

Стой под стрелой

Знаете за что хочется вот прям неиронично прописать в ебучку? За сообщения об ошибке. Вот такие:

Attribute is not unique. А какой отрибут, а? Название у него есть?

File doesn't exist. Какой файл? Ведь какой-то конкретный. И ты ведь знаешь, сволочь. Специально не говоришь.

Another program is using this file. Какой програм? Ты же ядро, посмотри там, напиши. Ты хочешь чтобы я решил проблему или на жизнь пожаловаться?

Null pointer exception. Undefined is not a function. [object Object]. Ну тут нечего добавить. Null он и есть null. Помогло бы название переменной, в которой этот null оказался? Помогло. Но мы же программисты, у нас абстракции, мы ничего не знаем и ничего не можем, только цифры очень много и очень быстро складывать. До первого NaNа.

Господи, скорее бы уже ИИ. Пусть компьютеры уже сами как-то между собой договариваются.

Читать полностью…

Стой под стрелой

«Вы должны сделать хороший UI из Линукса, потому что его больше не из чего сделать»

Эпл показала новый дизайн макОС «Ну Тахое»

Читать полностью…

Стой под стрелой

Фронтендер? Объясни, почему раньше вводил адрес сайта, ждал загрузки и получал весь коньтент сразу. А теперь дожидаешься загрузки, потом ждешь спиннеров, получаешь коньтент, а дальше еще по спиннеру на каждое взаимодействие. И эти спиннеры гребанные везде.

Технологии вроде бы шагнули вперед, а опыт лучше не стал. Не шагнули, получается? Объясняйтесь.

Читать полностью…

Стой под стрелой

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

Короче, хотел на блинке что-нибудь. Попробовал Вивальди, Орион, Брейв, Хромиум. И вот какая мысль: браузеры пытаются дифференцироваться через фичи. Ой, у нас вот такая штука есть, и такая, и сякая. А мне наоборот хочется браузер без фич. Вот чтобы прям ничего не было вообще. Строка адреса/поиска, табы сверху и все. Мне не надо таб групп, профилей, древовидных табов, автозакрывающихся табов, синхронизирующихся табов, мне вообще не надо табы менеджить, я сам справляюсь, спасибо. Мне даже закладки не нужны. Ну про всякие встроенные почты/мессенжеры/торренты/крипту думаю вообще нет смысла упоминать. В этом была моя основная проблема с Арком — он слишком выпячивал интерфейс, слишком тянул внимание на себя. Или Вивальди — я уверен, там внутри где-то прячется отличный продукт, но это же с ума можно сойти, пока все ненужное отключишь. Я хочу просто окно в интернет, с минимумом «приблуд».

Второе, понятно, экстешны. Это маст хэв, это не обсуждается. Все экстеншны, которые понаписали добрые люди для других добрых людей, должны работать. Добрые люди вместе сила!

Третье, понятно, дизайн. Симпатичный, минималистичный, но не гугловый блин, пожалуйста. Меня прям воротит от этих чрезмерных скруглений везде, от этого блевотного голубого, который специально выбирали чтобы меня бесить, от этих иконок милипиздрических, от трех вертикальных точек вместо гамбургера, от жирных обводок фокуса, от разных стилей для каждой менюшки. Короче, как вы могли заметить, дизайн Гугла мне не нравится.

Четвертое, и да, это странно, но мне нужен «фейковый» фулл-скрин. Настоящим пользоваться боль, эти анимации разворачивания/сворачивания постареешь пока досмотришь. В файрфоксе можно настроить, что оно просто делает безрамочное окно на весь экран и это занимает 0 миллисекунд. Нажал f — на следующем кадре уже смотришь фул-скрин. Вот я так хочу.

Ближе всех подобрался Хромиум, но у него неубираемая иконка профиля в панели. Зачем вот так делать? Это опять навязывание ненужной фичи людям, которые об этом не просили.

Короче, как ни крути, надо свой писать, получается.

Читать полностью…

Стой под стрелой

Киношный тренд, который меня не передать как бесит: микрофон в ухе. Наши герои идут на какую-то сложную и опасную операцию, и сценаристы уже даже не особо задумываясь дают каждому в ухо микрофон. Чтобы все были на связи и отпускали смешные комментарии, когда что-то пойдет не так.

С одной стороны, бесит неправдоподобность. У меня внутри квартиры-то не везде связь ловит, а тут люди могут быть где угодно: в подземелье, в небоскребе, в бункере, на самолете, в поезде в туннеле, за километр, два, десять друг от друга, и везде идеальная связь. На днях смотрел сериал, где герой _буквально_ врубает wifi-глушилку, чтобы вывести из строя камеры, и _тут же_ вставляет в ухо микрофон и идет грабить дом.

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

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

А в-четвертых, и в главных, меня волнует, откуда это идет. Частично, понятно, из видеоигр: там это настолько расхожий троп, что легче, наверное, найти игру, где этого нет. Но более глобально, мне кажется, это идет от мобильных телефонов. Более молодое поколение всегда на связи, им всегда есть, с кем обсудить каждый пук и кряк, который с ними происходит. Им сложно представить, что вот человек может остаться один и что-то сделать, и никак это не прокомментировать, и никому не рассказать. Что есть вещи поважнее коммуникации. Может быть еще сотня лет с мобилами и всегда доступным интернетом и мы окончательно превратимся в коллективный разум. Как вам такой поворот, а?

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

Читать полностью…

Стой под стрелой

В других новостях: команда ClojureScript посмотрела на бардак, который творится в Google Closure Library последние несколько лет (библиотека компонентов для Джаваскрипта, которую они использовали), покумекали и форкнули ее себе.

А потом просто откатили все breaking changes, которые нахуячили гуглеры по своим внутренним причинам (нужно повышение, видимость работы, мода, NIH, ну, вы знаете). И все снова компиляется и работает, даже код 14-летней давности. Ну не лапочки ли?

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

Ну и я тогда тоже психанул да переехал с этого вашего Руби на Кложу. И с тех пор ни единого разрыва. 11 лет блогу уже. Заходишь. Пишешь. Все работает. Красота. Только Github Actions периодически отваливаются. Потому что, как я уже говорил, работают люди. Устаревают.

Читать полностью…

Стой под стрелой

Смотрел вчера на код целый день (не преувеличиваю). В конце дня собрался и за полчаса переписал двадцать строчек. И все сразу заработало как надо, с первого раза!

Чувствую себя самураем, который долго ждал, а потом нанес точный смертельный удар.

Ради таких моментов и живем.

Читать полностью…

Стой под стрелой

Словил немножко макконахи, читая твиттер. Все только и обсуждают ИИ, а мне это как-то вообще неинтересно. Все мои мечты, как сделать программирование лучше, как делать классные приложения с хорошим интерфейсом, быстрые, это все как-то резко стало никому не нужно, потому что смотрите: компьютер может сам программировать! Кому нужно классное приложение для заметок, если рядом лежит система, которая позволяет делать эти самые приложения для заметок в любом количестве.

Но потом как-то подуспокоился. Во-первых, компьютерам надо будет на чем-то програмировать. Они могут генерировать те самые приложения для заметок, потому что у них уже есть браузер, хостинг, база данных. Все это должен кто-то писать, и этот кто-то — я. И в этом даже есть какой-то смысл, потому что если сделать более удобное АПИ, ИИ будет удобнее им пользоваться. Служим, так сказать, железному господину.

Во-вторых, не будем забывать закон Старджона: 90% чего угодно — полная фигня. Учитывая, что ИИ неизбежно скатывается к общему знаменателю, т.е. к 50%, ему довольно далеко до чего-то хорошего. Т.е. выделиться на фоне ИИ не сложнее, чем на фоне людей, и весь мой вкус, оригинальное мышление, уникальные навыки не просачиваются в «средний» дискурс, а значит невидимы для ИИ или даже воспринимаются как ошибки. Да что там — даже люди иногда думают, что я пишу фигню или в чем-то не разобрался, вместо того, чтобы признать уникальность идеи и полет мысли.

Но это пока компьютер думать не научился, хе-хе.

Читать полностью…

Стой под стрелой

Взяли на работу зумера, а у него, конечно, Неовим. И вообще в нашем доме престарелых ходят слухи, что Неовим это новая горячая штучка, и это может означать только одно: мы (да, мы, вы и я, лично) просрали графические интерфейсы.

Надо понимать, что я застал еще компы без Винды вообще, на голом ДОСе, и у меня никогда не было иллюзий — текстовые интерфейсы это от бедности. То есть все, кто делал условные Volkov Commander, Turbo Pascal или Vim сделали их текстовыми потому что такие были ограничения, а не потому что это было какое-то видение. «Пользователи смогут это запусить» — вот и все видение.

Сегодняшняя же ситуация кардинально другая. Никаких ограничений в принципе нет, и уход в терминал — осознанный выбор. Почему? Потому что графические приложения в большинстве своем раздутытые, медленные, неудобные и не особо красивые.

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

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

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

Вот так и с графическими приложениями. Обидно? Да. Потому что я-то в это верил. В удобство ГУИ, в эстетику, в новые возможности.

А оно вон как оказалось. Добро пожаловать в терминал. Type h for help.

Читать полностью…

Стой под стрелой

Кстати, сходил в подкаст «Тысяча фичей», где рассказал про Датомик. Если интересно, как можно сделать базу данных сильно по-другому, да еще и силами трех человек — послушайте. Ссылку хотел приложить, да уже запечатал письмо, сорян

Читать полностью…

Стой под стрелой

В подкасте Канала Ильи Бирмана «Думаем дальше» упомянули, что у Эпла не получается с играми. Не получается, да. Я, как человек, волею вкуса и качества привязанный к макбукам, долго пытался это противоречие разрешить. Но дело вовсе не в железе. Я, например, угораю по инди, которые легко пошли бы на макбук эйре десятилетней давности. И у меня все равно есть для этого ПК (с 4090, конечно, как еще Балатро запускать?)

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

Почему на Маках нет игр? В отличие от Линукса, тут аудитория, которая потенциально готова платить. Проблема Эпла в том, что они не любят разработчиков.

В Каталине они прибили все 32-битные приложения. 50% игр отвалилось одним движением. А что такого? Просто перекомпилируйте. На следующий год они перешли на АРМ, и еще 50% отвалилось.

Эплу невдомек, что игры — это не идиотские SaaS продукты, которые с помпой выпускают «Что нового» каждые две недели. Разработчики делают игру, она не взлетает, они расходятся дальше по своим делам, сажать огурцы. Или делать другую игру — в другой конфигурации, в других компаниях. Всякое бывает. Главное, что в отличие от современного софта, игры — законченные продукты. Ты сделал игру, положил, все, она лежит, навеки. Никто не будет ее обновлять только потому, что Эпл в этом году опять решил перерисовать контролы или изменил АПИ перехода в полноэкранный режим. В играх — стабильность. А в Апп Сторе — «мы удаляем ваше приложение, потому что вы два года не выпускали патчи».

Дальше, когда производители видеокарт собрались и в кои-то веки договорились про АПИ (Вулкан), Эпл сказал: не. И сделали Металл. И сидят удивляются, почему никто игры под мак не пишет? Ну потому ни у кого нет желания переписывать весь рендеринг только ради того чтобы на Эпле запуститься.

Я так понимаю, Стим они тоже не очень любят, ведь у них есть сВоЙ мАгАзИн ПрИлОжЕнИй. Там и цены конские, и скидок нет, и самим магазином давно не пользуется никто. В итоге там три полудохлые игры, за которые явно Эпл отгрузил вагон денег, наверняка без патчей, ДЛЦ и обновлений. А уж процесс попадания туда...

(Справедливости ради, Стим на Маке тоже тот еще тормоз, и, опять же, никто не знает почему — вроде бы такой же вебвью, как и везде, только тормознее в 100 раз зачем-то)

В общем, ситуация следующая:

- Просто купите макбук с икскодом для разработки только под нашу платформу
- Просто перепишите рендеринг своей игры на АПИ, которое нигде больше не работает
- Просто подайте заявку в наш магазин приложений, и мы с ненулевой вероятностью можем решить не выкладывать, но скажем мы вам об этом только после того, как вы закончите игру полностью
- DLC? Демо-версии? Не, не слышали
- Просто перекомплируйте игру каждые два года после релиза (возможно, покупая для этого новые макбуки)

Интересно, почему разработчики не хотят портировать игры под Мак? Мы все для них сделали.

Зато мы обновили иконку Гейм Центра. Что это такое и зачем оно нужно — никто не знает. Ни один живой человек ни разу его не запускал. Но хоть дизайнерам иконок работа нашлась.

Читать полностью…

Стой под стрелой

У меня на сайте есть нехитрая фича — индикация, кто еще сейчас на нем сидит. Как в гугл-доках, каждому присваивается рандомное животное и все они показываются в углу.

Сначала я написал ее традиционным образом — через yarn, тайпскрипт, компиляцию, папку с проектом, вот это вот все. Ну как я — мы с Клодом написали. Тайпскрипт, модули, зависимости (я использую InstantDB, раз уж я там работаю).

Вот. А сегодня переписал на обычный JS, зависимость подключил просто тегом <script> с unpkg, и вуаля. Работает точно так же, только я сразу удалил с десяток (!) файлов (остался один), упростил сборку (ее нет больше, вообще), перекладывание файлов всяких ушло, мониторинг сорцов и перекомпиляция ушла, ошибки стале проще и точнее показываться. Что написал в файле, то и видишь в браузере. Ну не красота ли?

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

Фронтенду уже сколько лет, десяток, больше? Уж поди за это время какие-то выработались практики, люди написали удобных и надежных инструментов. Но нет. Не написали. Все работает криво, косо, настраивается неочевидно, склеивается, как монстр Франкенштейна, из разных кусков, и разваливается от малейшего бриза. Так что плюсов у «правильного» пути никаких нет. Одна сложность. И ее много.

Храни бог браузеры, которые сами все умеют исполнять и им ничего для этого не нужно. Эталон простоты, идеальная среда, главное — не подпускайте к браузерам фронтендеров.

Читать полностью…

Стой под стрелой

А мы все тут согласны, что второй сезон Андора удался куда хуже, чем первый?

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

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

Я уже рассказывал, как меня бесит в кино троп, что все со всеми всегда на связи. Тут пошли еще дальше — во-первых, повстанцы обижаются, что им из сверхсекретных операций не звонит любимый, а во-вторых Империя как-то научилась вычислять приемники, а не передатчики. Прям несколько сцен есть, где повстанцы слушают жучка, начинается обыск, и они такие — выключай _приемник_ быстрее, пока нас не вычислили. ???

Ближе к концу есть момент, когда наши повстанцы попадают в засаду. И опять же, выстрелы ни в кого не попадают, а один из героев, профессиональный повстанец, стоит и смотрит на имперцев пять секунд, после чего не может вспомнить, сколько их было. Я прям всплакнул: да, это старые добрые Звездные войны. Только причем тут реализм, приземленность и Андор?

Добавьте к этому, что у сериала по сути нет концовки: он плавно перетекает в фильм Rogue One, но если не сесть смотреть фильм сразу, то есть ощущение незаконченности. Зачем? Наверное, чтобы пошли и фильм купили, не знаю. Но ощущения как от прерванного полового акта. Хочется хоть какого-то завершения.

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

Читать полностью…

Стой под стрелой

Очердной случай, когда самый умный и лучший оптимизатор PosgreSQL обосрался на ровном месте: запрос, выбирающий 2000 записей, выполняется за 0.3 секунды, а добавление к нему тривиального фильтра (одна из колонок равна константе) увеличивает время выполнения до 20 секунд. В 66 раз! Братан, я вручную 2000 записей быстрее проверю.

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

Обещания: просто пишите запросы, и вам не нужно будет думать. Реальность: приходится думать, как бы из «умного» Постгреса сделать тупой.

Читать полностью…

Стой под стрелой

Пользователь социальной сети Игнат сетует на зумеров в айти, потому что один из них не смог разобраться в интерфейсе гугл-мита, а именно что в дропдауне можно печатать, а не только выбирать опции из списка. «Чувак работает в ит уже 3-й год… 🥲», — пишет он.

А я вам вот что скажу. Я в айти уже двадцать с лишним лет. Более того, я предельно дотошно отношусь к интерфейсам, к лук-энд-филу, к соглашениям, к стайл гайдам, к аффордансам, для меня все это максимально серьезно. Я полжизни положил, чтобы разобраться, чем отличается круглый чекбокс от квадратного, кнопка от ссылки, сплошное подчеркивание от пунктирного.

И вот, несмотря на весь мой бэкграунд, я на стороне безымянного зумера. Потому что разбираться в шизоидной логике интерфейсов больших компаний — Гугла, Адобе, Атлассиана, Эпла, Микрософта — это прямой путь в дурку.

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

Главный скил современного пользователя компьютера — преодолевать мышкой огромные пустые пространства и угадывать по оттенку светло-серого, как взаимодействовать с очередным скругленным прямоугольником.

В общем, разбираться нет смысла, потому что вы ничего не получите, если разберетесь. Единственная логика, которая за всеми этими интерфейсами стоит — что так показалось правильно джуну, который его делал.

Самая здоровая реакция — смириться и игнорировать. Получилось что-то сделать? Зашибись. Не вышло? Ну чтож, значит не вышло. Это я вам как профессиональный айтишник говорю. Forget it Jake. It’s Chinatown.

Читать полностью…

Стой под стрелой

На фоне анонсов новых интерфейсов неизбежно всплыли старые скевоморфные. И вот я смотрю на календарь, верх которого отделан кожей, из-под которой чуть торчат обрывки предыдущих листов, и знаете чего мне не хватает? Ощущения целостности.

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

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

Вот чего мне не хватает. А выглядеть интерфейс может как угодно.

Читать полностью…

Стой под стрелой

Не понимаю, как многие программы этого не понимают. Расстояние между абзацами должно быть больше, чем между строчками. Примерно на полстрочки.

Если у вас абзацы прилегают друг к другу вплотную, мне приходится или отбивать их пустой строкой. Но тогда расстояние будет слишком большое. Или не отбивать. Но тогда будет не видно, где один абзац начался, а другой закончился. Ну и всякие там заголовки будут липнуть к тексту, текст к пунктам списка и т.д. Ерунда получится, короче, хоть так, хоть эдак.

А всего-то надо: если я нажал энтер (один раз), ну отступи ты чутка, брат, не убудет. Мы же не код тут пишем.

Читать полностью…

Стой под стрелой

Знаете что я понял? Не люблю вот такие АПИ:


const [todos] = useQuery(zero.query.todo)

zero.mutate.todos.insert(todo)


Т.е. когда аргументы становятся свойствами объекта. Типа zero.query и zero.mutate это что-то, что предоставляют авторы библиотеки, тут все хорошо. А вот .todo`/.todos` это уже аргумент! Это строка, которую подставляет пользователь. В «классе» zero.mutate нет свойства .todos. Ну и зачем тогда, спрашивается, делать вид, что есть? Напишите просто:


zero.insert('todos', todo)


Что, жопа отвалится? Зато просто и понятно. Тут — неймспейс, там — метод, в скобках — аргументы. Аргументы можно менять. Методы фиксированные. Ну логичнее же, ну?

Иначе можно и до 1.add.2 дойти.

Читать полностью…

Стой под стрелой

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

Недавно они посмотрели, что пользователи прокладывают маршрут, но не включают второй режим. Ну а что: путь видно, позицию твою показывают и так. Зачем что-то еще нажимать?

Но вместо того, чтобы посмотреть, сделать выводы и убрать второй режим они решили поступить наоборот: включать его автоматически. Проложил маршрут и выключил телефон? Наверное, ты начал двигаться, давай сменим режим и начнем присылать тебе нотификации, когда свернуть налево.

ХОТЯ ИХ ОБ ЭТОМ НИКТО НЕ ПРОСИЛ.

Или вот считаю сейчас новость о закрытии браузера Арк (да, опять). Пишут, что браузер оказался «слишком сложным» и типа его продвинутыми фичами мало кто пользовался (спейсы, какие-то живые папки, календарь!) Ребят, это называется не слишком сложный. Это называется ваши фичи нафиг никому не нужны.

Мораль простая: если пользователи чем-то не пользуются, это не значит что вы плохо это рекламируете или они не разобрались. Чаще всего ответ: потому что им это нафиг не нужно.

Читать полностью…

Стой под стрелой

Люди часто спрашивают меня: почему в этом канале нет картинок? Ответ прост: формат.

Все уже привыкли, что я пишу только текст, и если завтра я выложу пост с картинкой, вы же первые начнете возмущаться: «раньше было лучше», «мы так не хотим, мы так не привыкли», «можно было текстом описать».

Так что я может быть и рад что-то визуальное выложить для разнообразия. Но вы же первые возмущаться начнете. Заложник формата, получается.

Читать полностью…

Стой под стрелой

Короче, переехал обратно на 120 Гц монитор. До этого был 60 Гц, но большой. Типа эксперимент, что важнее — много места или развертка. По итогу небо и земля — компьютер в 100 раз быстрее ощущается, цвета без матового напыления сочнее. В общем, больше вы меня не обманете, только 120 Гц, только хардкор, Эпл, давай уже выпускай iMac Pro с 5k 120 Гц, сколько можно ждать.

Старые пердуны еще помнят, когда заканчивалась эпоха HDD и им на смену приходили SSD, был такой совет: лучшая инвестиция в скорость компа — это SSD диск. Ну вот, а сегодня это еще и 120 Гц монитор. Забавно, что ни то, ни другое не имеет отношения к ЦПУ. Потому что ЦПУ уже _достаточно_ быстрый, и довольно давно. Программы писать только научитесь.

Читать полностью…

Стой под стрелой

Пытался смотреть на выходных Ютуб с рекламой (потому что Эпл ТВ, а за премиум жаба давит платить по европейским ценам), и там тоже внедряют ИИ.

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

Представьте: на экране картинка какого-то сочного бургера, котлета жарится, жир шипит, сыр течет, картинка сочная. Поверх этого текст какой-то про то, какой это ням-ням и как вкусно, что вам чуть ли не трахнуть этот бургер хочется.

Но это текст, слова. А голос, который их зачитывает, срать хотел на любые эмоции и восхищение, ему бы поскорее домой уйти (хотя какой домой, он же робот). «Сочная. Котлета. М. м. м. Сыр. Просто. Потрясающе. Ух. Не могу. Ууу». Голосом холоднее, чем у коллекторов по кредиту. Насколько же всем причастным было пофиг, потрясающе.

Короче, еще раз убедился, что весь этот пси-оп с рекламой не ради того, чтобы ты какой-то товар купил, а чисто выбесить тебя и развести на премиум. Причем за счет рекламодателей.

Читать полностью…

Стой под стрелой

Очередное помешательство — какая-то там программа для записи экрана (я грешу на Cap, но может и кто-то другой, более популярный, хз) придумала, что надо сглаживать движения курсора.

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

Но божечки, если в видео наводят на кнопку или, прости господи, по меню проходятся, где есть ховер эффект, начинается такой лаг-фест! Мышка летит себе по прямой, а рандомные места экрана загораются и тухнут без всякой логики (логика в том, что настоящий курсор был над ними, а «сглаженный» отстает/опережает и в целом в другом месте). Выглядит как классический кейс «если бы вы просто ничего не делали, было бы лучше».

Короче, не могу на эти записи смотреть, меня прям клинит от их фейковости.

Отдельно хочу прокомментировать опыт установки. Мне надо было разобраться, кто же так поганит записи, поэтому я поставил себе Cap и Loom. Что могу сказать? Великое маковское «просто перетащи иконку в Applications» погибло смертью храбрых. Теперь это: запусти приложение, добро пожаловать-экран, дай пермишны экран, открой Settings экран (т.е. теперь я двумя приложениями жонглирую), даешь пермишны — перезапусти приложение (да еп твою мать), ага, туториал потом, потом Sign in (какой, блядь, Sign In, ты локальное приложение на моем локальном компьютере, просто делай свою работу), тут в дело включается браузер, и ты прыгаешь туда-сюда-туда-сюда, дай бог в окнах не запутаться, о, мы добавили Login items, вот тебе еще об этом окно, кстати, разрешить нотификации?

В общем, все проклято. Дайте там пиздюлей команде макоса (да, именно макоса) от меня, плиз.

Читать полностью…
Subscribe to a channel