nikitonsky_pub | Unsorted

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

10791

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

Subscribe to a channel

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

Тут еще вопрос: а почему это именно игра? Иногда на такой вопрос есть хороший ответ (потому что геймплей, duh), иногда — нет (Last of Us, например, ничего не потерял в формате сериала). А что с Wanderstop?

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

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

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

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

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

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

Грамотное письмо — удел нейросети.

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

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

Когда я учился на Факультете информационных технологий (начало нулевых), нам, кроме базы, иногда подсовывали актуалочку. Одной из таких актулочек был курс по SEO, или Search engine optimization. Я тогда был молодой и наивный, поэтому пошел туда с открытым сердцем: раз сделали целый курс, наверное это что-то важное.

Оказалось, нет. Целый семестр нам объясняли гипотезы и поверья, которые народ выстроил вокруг алгоритма Гугла (Гугл тогда еще был хороший). Ну, там, сколько должно быть заголовков h1 на странице, умеет ли он интерпретировать джаваскрипт, стоп-слова и так далеле. Ничего из этого не работало точно, большинство строилось на слухах и домыслах, и именно так нам и передавалось. «Попробуйте», «говорят», «я слышал», «считается», «может быть», «лучше не надо».

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

Короче, я сидел на семинарах по SEO и думал «Не. Не может быть. No way. Это не может быть настоящей дисциплиной. Это инфоцыганство какое-то». История нас рассудила: так и оказалось в итоге. Я раскрутил несколько популярных проектов, и для этого не потребовалось ничего, кроме хорошего контента. Система оказалась оптимизирована под нормальных людей, а не SEO-шников.

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

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

Но что меня пугает, так это что признаки _вокруг_ ИИ ровно такие же: вся эта культура промтов (слышал, если сказать, что оставишь боту чаевые, он будет охотнее писать код!), недетерменизм (компьютер теперь делает то, что ему хочется, а не то, что ты ему сказал), меняющийся каждую неделю ландшафт, инфоцыгане те же, которые уже открыли сильный ИИ, написав правильный промт и пообещав боту восемь мисок супа. Миллионы проектов, которые делают супер-тонкую обертку вокруг ЧатГПТ и в остальном на сто процентов полагаются на него и зависят от его АПИ.

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

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

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

Немножко пугает, насколько легко было переделать пасту про node.js из 2012-го под сегодняшний день. Насколько мало пришлось поменять. Технологии меняются, цикл хайпа остается абсолютно одинаковым (кстати, помните, была такая крипта?)

Ну и чтобы с пустыми руками вас не оставлять, такое наблюдение: у нас тут в Берлине был когда-то концертный зал Mercedes Benz Arena; какое-то время назад его переименовали в Uber Arena (Uber как бренд, не просто слово). То есть у тех, кто производит машины, стало меньше денег, чем у тех, кто перепродает их пользователям. Есть в этом какая-то ирония.

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

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

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

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

А теперь внимание, вопрос: а зачем? Иконка сделана, деньги заплачены, функцию свою она более чем выполняет. В чем смысл засирания?

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

Так зачем засирать уже сделанную работу?

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

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

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

А теперь создатели ИИ такие: мы пофиксили! Теперь ваше программирование тоже сложное, неэффективное и непредсказуемое.

Ну и зачем?

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

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

Давайте поговорим о триггерных фразах. Моя — это «так написано в требованиях/в ТЗ». Программисты часто используют ее как аргумент, как будто она что-то объясняет. Но что она объясняет? Ничего! Требования — это просто мнение другого человека. То, что он это мнение куда-то записал, не делает его автоматически более правильным, умным, продуманным, осмысленным.

В требованиях может быть написана полная чушь. Требования могут быть взяты с потолка. Требования могут противоречить друг другу, могут активно портить продукт. У нас надежность три девятки. А почему не четыре? Почему не две? Что изменится?

Непонятно, как этим можно что-то объяснять. Можете смело заменять «требования» на «сказал Вася». «Почему вы эту кнопку сюда поставили? Это же неудобно!» — «А, ну так сказал Вася» — «???»

Хватит дрочить на требования.

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

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

Кстати, я сейчас пошел и поменял в посте MCP латиницей на МСР кириллицей, чтобы выставить вас всех дураками. Комменты так и не читал. Спокойной ночи!

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

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

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

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

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

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

Ваня Гришаев (канал igrishaev) пишет:

> [...] расскажу, как управлять табами в любом браузере [...]. Записывайте: когда у вас много табов, зажмите клавиши Ctrl/Command + W. Все табы закроются. После этого откройте табы, что нужны для текущей задачи. Конец.

Ну в общем-то и все. Это и правда весь секрет. Пользуйтесь.

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

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

Все хотят заголовка

Notion хочет, чтобы у заметок были заголовки. Obsidian хочет. Apple Notes хочет. iA Writer с Саблаймом не хотят, но называют файл по первой строчке.

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

Хочу приложение для неорганизованных. Без заголовков.

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

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

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

Например, игры любят писать «не выключайте, пока игра сохраняется» и показывают иконку сохранения. Абсолютно идиотское предупреждение — она появляется, может, на секунду, что я, побегу шнур из розетки выдергивать именно в это время? Может быть, это идет от «пожалуйста, не выключайте компьютер, пока он выключается», но так даже компьютеры уже перестали писать. Да, в игре можно нажать «Сохранить» и тут же пойти выбрать «Выйти в Windows», но наверное для таких скорострелов игра сама может дождаться окончания сохранения?

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

Другая абсолютно вымораживающая меня традиция — на кнопке «Выйти» писать «весь несохраненный прогресс будет потерян». Да, оно _буквально_ верно, поэтому, наверное, мозги программистов-аутистов не видят в нем проблемы. Но блин, оно звучит ужасно. Оно звучит как «ВСЕ будет потеряно». Мне каждый раз приходится себя успокаивать, что они совсем не это имеют в виду.

Чуть лучше оно бы звучало «Последнее сохранение 1 минуту назад». Потому что обычно как? Сохранился, пошел выходить, а тебе «ВНИМАНИЕ! ДАННЫЕ БУДУТ УДАЛЕНЫ! МЫ НЕ НЕСЕМ НИКАКОЙ ОТВЕТСТВЕННОСТИ! ЗАПИШИТЕ ВСЕ ПАРОЛИ НА БУМАЖКУ НА ВСЯКИЙ СЛУЧАЙ». И ты такой: че за хня, я ж только что специально сохранился? (Или еще хуже — думал, что сохранился, а там на самом деле полчаса прогресса с предыдущей кат-сцены, и узнать это никак нельзя).

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

Кстати, юзабилист пригодился бы и программам — иногда закрываешь пустой файл, а они «Сохранить»? Хотел бы я посмотреть на программу, которая бы не спрашивала этого бреда хотя бы на пустых файлах. Очевидно же, когда файл пустой. (молча сохранять несохраненные файлы и спокойно заркываться/открываться с ними — это пока next level, хотя кое-кто умеет).

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

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

Друг подогнал подписку на Курсор, посидели с ним и Сонетом 3.7-вотэва один вечерок и сделали мне приложение на Мак. Простое — переключалку микрофонов, и с нуля — но сделали. И оно, блин, работает! Даже в код не смотрели, просто говорили, если что-то не нравится, и жали Accept All Changes. Очень странный экспириенс — приложением с тех пор пользуюсь, а что там внутри — хрен знает, ни разу не видел. НО ОНО ДЕЛАЕТ ТО ЧТО МНЕ НУЖНО!

Так что я уверовал. Скептицизм рассеивается моментально, когда видишь своими глазами, как на чисто голосовом вводе у тебя за вечер вырастает рабочая программа.

А смешная байка вот какая: весь интерфейс это меню со списком микрофонов, и у выбранного пункта слева есть галочка. Я говорю — сделай, чтобы у остальных пунктов был отступ вровень. Он говорит: да, вот решение, укажите параметр ident. Я указываю. 1 — мало. 2 — много (почему это так — вопросы исключительно к Эплу). Говорю об этом Курсору. Он говорит: действительно, а попробуй пробелами отбить? Норм получится, зуб даю! Я попробовал, пять — мало, шесть — много. Говорю: не, братан, чет фигня все равно. Может так какую-то SVG-шку прозрачную вставить или еще что-то такое? Он говорит: да, не вопрос, можно и SVG-шку, даже лучше получится. Что дальше он сделал я не знаю, но встало все идеально.

Это я к чему? Не мог сразу нормально сделать, сученыш?

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

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

Я тут на днях рисовал пирамиду Маслова для интерфейсов, примерно такую (читать снизу вверх, сверху жыр, снизу база):

5. красивый
4. понятный
3. удобный
2. решает задачу пользователя
1. решает задачу заказчика

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

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

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

Годы шли. Фигма выкатила еще один редизайн, который не просто был вкусовщиной, он был объективно плох. Если раньше можно было списать на «людям нравится другое», то теперь это стало «люди не умеют работать». Кнопки стали меньше. Границы контролов вернули, но теперь они шумят. Убрали верхнюю панель, чтобы «освободить место», но при этом раздули правую так, что она перестала помещаться на экран ноутбука. Главные кнопки засунули в едва видное меню, а ерунду типа Comment и Dev Mode вытащили на самое видное. Левую панель реорганизовали так, что без слез не взглянешь. Даже иконки это теперь гребаный пазл: четыре квадрата вертикально, горизонтально, диагонально, диагонально с плюсиком, пунтктиром, соединенные в квадрат, шестиугольник с точкой, шестиугольник с палочкой, концентрические круги, капля чтобы поплакать. Даже классический замочек (lock aspect ratio) зачем-то заменили на прямоугольник со стрелочками. Плюс, везде появились вложенные прямоугольники.

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

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

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

Пипец, самая needy программа — Signal.

Когда его открываешь, он либо просит провалидировать ПИН (убедиться, что не забыл), либо хочет обновиться (а обновляется он часто, раз в неделю типа), либо, если совсем уж поводов нет, просит донат на какую-то благотворительность. Реально, где телега, а где лошадь, да? Сигнал для меня или я для Сигнала? Нет ни одного сценария, чтобы ты открыл Signal и он до тебя с чем-нибудь нерелевантым не доебался.

Не надо так.

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

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

Короче. Прошел вчера Wanderstop, а сегодня оказывается еще и день выгорания (как праздник, не у меня), и это конечно идеальное совпадение.

В общем. Это игра. Про выгорание. Про достигаторство. Про то, как тяжело отъебаться от себя. Скорее даже не игра, а интерактивная история, но какая! Ее нужно пройти хотя бы ради того, чтобы услышать те самые слова: да, если ты замедлишься, мир не рухнет, да, в тебе есть ценность, даже если ты не делаешл свою работу, да, твой главный враг — ты сам, и действует он далеко не всегда в твоих интересах.

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

В общем, выгоревшие сеньоры, материальчик как раз для нас. Еще и красиво.

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

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

Видел недавно мем про умный холодильник, который отправляет смс если оставил дверь открытой. Подпись была: «Если ты такой умный, закрой дверь сам».

Мне кажется это много где в софте встречается: вместо того, чтобы сделать, чтобы вещь просто работала всегда, разработчики ставят себе задачу выдрессировать пользователя. «Не закрывайте окно». «Не перезагружайте страницу». «Обновите программу». «Сохраните, прежде чем выйти». «Файл с таким именем уже существует». «Не могу запустить, пока вы не установите зависимости». «Please commit your changes or stash them before you switch branches».

И на каждое неправильное действие отругать, а не обработать.

А надо помогать. «Если ты такой умный, сохрани сам».

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

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

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

Да, кажется «модно» и «нестандартно». Кто-то может даже подумать, что удобно (например, если у вас две колонки и если в левой выровнять подписи по правому краю, то они окажутся «ближе» к своим значениям правой).

Но нет. Не надо.

(Можно выравнивать цифры по правому краю, если у вас таблица, потому что цифры пишутся справа налево, во всем остальном — просто забудьте про такую опцию, или по левому краю, или по центру).

Понятно, что за 4000 символов, да еще и без картинок, я вас дизайну не научу, но от этой вот очевидной ошибки, может, уберегу.

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

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

Наверняка, многим серьезным программистом преходилось испытать неприязнь, когда они узнавали, что чтобы выложить веб-сайт надо еще изучать джаваскрипт. Все соглашаются (и в интернете я тоже читал) что это очень, очень плохой язык. Это на самом деле глупость и когда я прочитал я долго не мог поверить ходил спрашивал и оказалось не зря. Тепер ьвеб-сайты можно писать на самом популярном в мире языке расте. Это революционный переворот и он происходит прямо на наших глазах. Я был шокирован, как там все организовано, но похоже они все вопросы продумали с самого начала и договорились что это будет очень востребованный проект.Более того, умные перцы из мозиллы которые по утрам продают ваши персональные данные уже работают над тем, чтобы раст работал быстрее С++, потому что он комплируется сразу в результат, минуя стадию вычисления! Вы наверняка заметили это по тому, что файрфокс открывается за 5 секунд, а не 20 как это было в до-интернетную эпоху. Что это если не порыв я не знаю. То есть, если вы напишете свой сайт на rust, он автоматически будет бытсрым и будет масштабироватсья (обрабатывать столько клиентов, сколько пришло, это настоящая проблема в джаваскрипте была и некто не знал как с ней быть). Например, данные между разными запросами беруться взаймы, в том же джаваскрипте это в принципе не возмонжно и засчет этого у раста такая гиганская производительность. Там даже продумано если вы будете работать с другом или кто-то допустим, то я зык специально за счет очень удобной типизации можно писать так что вы всегда будете знать что сломал ваш друг. Это очень удобно потому что позволяет меняь програму в одном месте и вообще не парится о том же друге что там у него програма все равно не скомпилируется.Только представьте! Любой кусок кода можно насать один раз. Также они добавили возможность создавать асинхронные функции и это очень круто, но я пока не понял как ее потом вызвать. Но самое главное, что над растом сейчас работает туча народу просто, они переписывают все что было до них написано на раст и у них получается лучше потому что они сразу заточились на производительность и чтобы было лучше а так же просто использовать. Например нужно сходить в базу данных создал проект на гитхабе сразу набежали форкнули завтра только пуллреквесты принять и можно заливать в продакшн на свой ноутбук. Сообщество очень дружелюбное, если кому-то удается сделать что-то работающее на расте его обязательно хвалят и подбадревают потому что это правда успех. Я пока не понял как допустим считать файл но говорят эт из-за безопасности,там все очень надежно, ведь если к тебе вдруг идет миллион клиентов и вы облажаетесь в 10% случаев ты облажаешься перед 100 000 человек. Поэтому например если где-то произошла ошибка лучше сразу аккуратненько написать ааа паника все сгорело и завершиться чем пазориться перед остальными, тем более если перезапустить сервер то там и память лишняя освободится и бегать начнет пошустрее, да и перезапускается он очнь бытсро. Иногда бывает быстрее перезапустить сервер чем дождаться проверки типов. Ктому же rustc так оптимизирован что никогда не займет больше одного ядра а это значит что базу данных например можно поставить на тот же ноут на другое ядро для экономии ресурсов и надежности (иметь что-то на той же машине всегда надежнее, много ли что, все у кого есть дома интернет вы это итак знаете) и все будет быстро бегать и даже можно во что-нибудь пошпилить или дальше rust book почитать но тогда надо побольше ядер купить. Но в серверы как раз много ядер и ставят и как видите rust прекрасно справляется с этой задачей. Правда что бы писать на расте нужно купить макбук потому что все примеры в интернете написаны на мак буке но я думаю если выделаете высокопроизводительный веб-сервис, вам всеравно прийдется пройти раунд финансирования у родителей чтобы потом его запускать. Вообщем я в восторге хотя немного напрягает что гдето должны быть проблемы но я пока не понял не столкнулся ая уже очнь долго с ним разбираюсь и пока не понял.

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

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

Кое-что, что поразило меня до глубины души. Увидел на сайте N26 дейтпикер. Думаете — щас до ввода даты или каледаря докопаюсь? Не, проблемы начались еще раньше (хотя про календарики когда-нибудь тоже будет пост, они все ужасные, хотя казалось бы — два дропдауна и сетка на месяц, чего там мудрить?)

Короче, дейтпикер. Прямуогольник, разделенный на две части вертикальной чертой: слева сама дата, справа иконка календаря. Проблема? Разделитель торчит за пределы поля :)))))) Прям на несколько пикселей вверх и вниз торчит из прямоугольника.

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

Но проблема даже не в этом. Проблема вот в чем: представьте, вам нужно нарисовать прямоугольник, разделенный надвое. У всего фиксированные размеры. Это два вызова (drawRectangle, drawLine), да? Математика на уровне третьего класса (x = fullWidth - iconWidth).

Ну вот и как? Как можно запороть НАСТОЛЬКО простую задачу? Как можно а) сделать ее сложной и б) в этой сложности накосячить?

Я даже не представляю, с чем это можно сравнить. Человек завязывал шнурки и передавил себе палец. Вышел поссать в абсолютно пустое до горизонта поле и оскорбил чувства верующих. Собирал лего и повредил себе спину. Увидел три сосны, заблудился, нашел машину и сгорел. Это настолько тупо, что смешно.

Это к вопросу, почему я пошел делать свой UI фреймворк. Веб непригоден ни для чего вообще, простые (ПРОСТЫЕ!), тривиальные даже вещи делаются настолько сложно, что оправдывать это нет никакой возможности.

Поставить рядом два квадрата не должно, не должно, не должно, не должно быть проблемой. ПРЯМОУГОЛЬНИК. ВЕРТИКАЛЬНАЯ ЛИНИЯ. КВАДРАТ. CSS это сложно. Да идите вы нафиг со своим CSS. Буду проституткой.

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

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

> What if our computers were inherently multi-player?

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

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

А компьютером можно я буду пользоваться сам, как мне нравится? Можно у меня будут свои иконки, свои шорткаты, свои обои, свои приложения? А не те, которые одобрило общество.

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

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

Обожаю птичьи языки (нет).

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

Я уже писал про Тейлвинд. Да, писать стили в компонентах, а не в отдельном файле, удобнее. Но чем top-0 z-40 w-full flex-none лучше, чем top: 0; z-index: 40; width: 100%; flex: none;? Нахрена мне знать, что z это z-index, w это width, нахрена это помнить?

Или вот в Твиттере спросили про ОРМ. Пошел смотреть примеры, а там


.where(
and(
lenlt(posts.title, maxLen),
gt(posts.views, views),
)
)


Чем это лучше простого SQL? Что, жопа отвалится написать


WHERE length(posts.title) < ?
AND posts.views > ?


Кого мы тут развлекаем? Я сейчас пишу на так называемом HoneySQL, который не ORM даже, а просто обертка для генерации SQL 1-в-1.


:where [:or
[:= :attrs.app-id [:cast app-id :uuid]]
[:= :attrs.app-id [:cast system-catalog-app-id :uuid]]]



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


WHERE attrs.app-id = ?::uuid
OR attrs.app-id = ?::uuid


А еще он иногда не поддерживает какие-то выражения, и его надо обновлять, чтобы он смог сгенерить какой-нибудь IS DISTINCT FROM, который и я знаю, и база знает, только он не знает. Зачем мне эта прослойка? Почему нельзя сразу писать словами, которые от меня ожидают? Хуже SQL-я только попытки улучшить SQL.


:select [[[:|| :idents.etype "." :idents.label]]]


Просто что это, зачем, почему, как это искать?

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


<For each={cats()}>


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

Отдельный приз зрительских симпатий получает JSX, который берет вещь, которая не является HTML-ем, и заставляет ее выглядеть как что-то, что тоже не является HTML-ем. Задумка, понятно, была что будет похоже, похоже не получилось, и в итоге у нас есть херня, которая транслирует черт знает что в черт знает что, без каких-либо попыток кому-то угодить. Иногда мне кажется, что единственная цель JSX — создавать рабочие места разработчикам сборщиков для JS.

Просто. Берете. Язык. И пишите на нем. Как есть. Ничего не выдумывая. И волосы у вас будут густые и шелковистые.

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

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

Че там, написали правильный ответ в комментах уже?

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

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

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

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

Но для картинок я таки придумал кое-что получше.

В общем, проблема такая: у тебя то густо, то пусто. В один день может быть шесть постов, а может месяц не быть ни одного. Как выложить сотню фоток со скоростью раз в день, не задолбаться от рутины и не городить велосипедов?

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

И я сделал, как мне кажется, идеальную схему. Называется «папка». На рабочем столе лежит папка с фотками. Кидаешь туда фотку — через какое-то время она опубликуется.

В каком порядке? А в рандомном. Как отмечаются уже опубликованные? Просто удаляются из папки. Собрано из подручных инструментов, которые у меня уже были — сервер, питон скрипт (один файл, без зависимостей, и тот написал DeepSeek), крон, синхронизация через Syncthing (т.е. папка существует на всех компах, кидать можно с любого).

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

Короче, очень горжусь простотой системы. Вчера забил очередь на три месяца вперед и дико кайфанул, что ничего кроме локальных файлов трогать не надо. Сегодня вышел первый автоматический пост, подписывайтесь — Signs of Life в Bluesky (там же есть RSS для старичков).

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

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

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

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

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

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

Типа, если у вас есть редкоиспользуемая функция и частоиспользуемая функция, имеет смысл сделать так чтобы у них было как можно больше общего кода — тогда он будет сам собой тестироваться и поддерживаться в рабочем состоянии. Компиляете из файла или из stdin – сохраните файл на диск. Делаете что-то сразу или через очередь? Делайте всегда через очередь. Шлете оповещения через почту или через Слак? Шлите всегда через Слак, а для почты поставьте релей (или наоборот).

Ну вот, я наконец придумал название для этого принципа. Внимание:

Код должен работать через одно место.

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

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

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

И есть у них один товарищ, который постоянно пересказывает критику решений Евросоюза в сторону Эпла. Типа, душат, гады, бедную корпорацию. И оно звучит, эээ, странно. «Евросоюз потребовал от Эпла открыть Эйрдроп для Андроида» — «вот негодяи, вот тупые». Но, собственно, почему? Мы же, как пользователи, только выиграем? Как может кто-то в здравом уме требовать более закрытой экосистемы (ну кроме самого Эпла, конечно)? Это же чистые минусы! Или с магазинами сторонних приложений — ну это же кайф, если их откроют, какие минусы-то? При этом сам же этот чел в следующей новости рассказывает, как играет в игры с Нинтнендо Свич и Плейстейшн на эмуляторе и нигде у него не ёкает.

В девяностых, когда компьютеры только начинались, человечество делало протоколы. TCP, IMAP, IRC, XMPP, HTTP — вот тебе спека, мы все по ней работаем, можешь наше приложение взять, можешь стороннее, можешь сам написать. И писали! Ты мог читать почту и сидеть в чатах из сотен разных программ, были получше, были похуже, были очевидные лидеры, но в целом никто не диктовал тебе, что делать. Производителям же, чтобы конкурировать, приходилось реально стараться — побеждал лучший, а не тот, у кого сервер. Лучший для пользователя, а не для корпорации.

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

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

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

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

Ну вот. Я не жалуюсь, просто хочу, чтобы все четко все понимали — мы в довольно хреновой и неудобной для нас (пользователей) ситуации, и любой способ выхода из нее — благо. Даже если это государственное регулирование. МЫ ВСЕ ТОЛЬКО ВЫИГРАЕМ, если Евросоюз заставит Эпл открыть магазин приложений или протокол Эйрплей. Это буквально в наших, пользователя, интересах. МЫ НИЧЕГО НЕ ТЕРЯЕМ.

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

Да, мы пришли туда, куда пришли, исключительно рыночными методами. Я могу понять разочарование в идеалах, что рынок всегда находит наилучшее решение. Но что ж делать? Раз уж не нашел, давайте ему поможем. В крайнем случае, не забывайте, на чей вы стороне (своей), а корпорации как-нибудь и без нас выживут.

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

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

Экстренный выпуск: вчера выложили видео, где чел открывает на Винде сначала скриншот окна RAD Debugger, а потом и сам RAD Debugger. И первое медленнее! Смех? Смех.

У меня же персональная беда: на маке окошки файндера открываются заметное время. Типа, нажимаешь Cmd+S, ничего не происходит. Ты еще раз, и еще, и еще. И потом хоба: окно выбора папки появилось. Оно все это время «готовилось».

К чему там готовиться, я никогда не пойму. В винде та же проблема — заходишь в папку, пусть даже пустую, и на 100% локальную, а она тебе прогресс бар на 10 секунд, прежде чем показать контенет. Как? А никто не знает. Один чувак даже продукт сделал на этом, File Pilot, чтобы показать, что «готовиться» там не к чему. Оказалось, правда не к чему. Читаешь содержимое папки и показываешь. Мнгновенно.

Все эти вещи должны занимать миллисекунды. Миллисекунды, Карл! Но это если не мудрить и решать задачу пользователя, а не бизнеса. Задача со звездочкой, ага.

Я все жду, когда придет та новая волна супер-быстрых и не перегруженных приложений, которая сметет текущих раздутых монополистов-«лидеров рынка». Потому что старые герои, которые это сделали — Эпл, Гугл, Хром, Гмейл, Фигма, ВСКод — они съели дракона и стали им. Мне нужны новые кумиры, чтобы смотреть в будущее с надеждой. Но пока молодежь все больше играет с Электроном и терминалом. Так мы будущее не построим, конечно.

Помните, пожалуйста, что компьютеры, они все еще быстрые, быстрее чем никогда. И пишите программы по возможности тоже быстро.

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

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

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

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

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

Есть така мода — перед началом видоса или подкаста делать нарезку из фраз, которые потом дальше там встретятся. Пробничек, типа, чтобы заинтересовать.

Мне это непонятно. Типа, я уже и так пришел, зачем меня _еще_ интересовать?

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

Особенно кекно, когда эти штуки стали делать к трейлерам кино или сериалов. Типа, трейлер это и так уже выжимка, плюс он всего минуту-полторы, но нет, надо сделать в начале трейлер трейлера.

Это я к чему? Там у Бирмана подкаст со мной вышел, у нас нормально сделано. Будь как мы. Включай сразу контент.

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