Тут Гугл решил объединить два своих фреймворка: Ангуляр и Виз (Wiz, да, тоже впервые слышу). Вот что по этому поводу пишет один из разработчиков Ангуляра на Hacker News:
> The tldr; is that we see a lot of similar requirements from developers across Angular and Wiz, so we're looking for opportunities to reuse work. [...]
> Over time, we'll continue focusing on what's best for developers and incorporating the best from Wiz in Angular, and vice versa. At the end we can end up with one framework, or continue to coexist. [...]
> We're building infrastructure for these products rather than the products themselves.
Вроде нормально пишет, да? Ничего не забыл? Да если и забыл, скорее всего это было не так уж и важно.
Забыл он, конечно, юзера. Почему-то это стало таким общим местом: мы стараемся для разработчика, хотим понравиться разработчику, а что там за приложение в итоге получится, не так уж и важно. As long as we had fun.
Хотя вроде бы очевидно, что все это делается для пользователя, и оцениваться должно в первую очередь с точки зрения того, какая система получается, а не насколько разработчику было удобно.
Кого волнуют разработчики вообще? Пойду куплю молоко, но не то, которое вкуснее, а то, на котором фермерам было приятнее всего работать. Поеду на такси не кратчайшим маршрутом, а тем, где водителю приятнее всего будет проехать. Пойду не в тот ресторан, где вкусно кормят, а в тот, где на кухне приятный процесс организован.
Ну бред же?
Одна из моих проблем с Растом — это что он тебе все мозги вынет несущественной, по сути, ерундой. А именно ворнингами.
Казалось бы: ну не нужна мне эта вот переменная прямо сейчас, ну и пусть полежит, чего орать?
Закомментил строчку, и началось: ой, тут не присвоено теперь, тут результат проигнорирован, тут импорт лишний.
Девочка моя. Ты пойми. Мне насрать прямо сейчас. У меня вообще другим голова забита.
Если честно, мне даже перед пушем в продакшн насрать. Если ты такая умная, что можешь неиспользуемый импорт найти, почему тогда ты недостаточно умная, чтобы молча его проигнорировать и заткнуться? Зачем весь этот BDSM с играми: я вижу твою ошибку, а теперь иди и исправляй? Ну исправь сама, епт, если тебе так нужно.
Главное, поддашься бывает соблазну, уберешь импорт (все-таки вывод rustc ооооочень развесистый, и когда у тебя ошибки вперемешку с ворнингами, хрен разберешь, где что начинается и заканчивается), а через пять минут эта же сука тебе: ой, а это что за метод? Не знаю такого!
Короче, ворнинги — это игра в качество, а не настоящее качество. Мы не знаем, как проверить суть твоей программы, зато знаем, как доебаться до мелочей. Поэтому доебемся до того, до чего легче всего доебаться.
Как люди с ворнингами программируют — ума не приложу.
Ладно, минутка признаний. Одну вещь я никак не могу полюбить в языке Раст. Вот что возвращает это выражение?
let a = [1, 2, 3];
let res = a.iter().collect();
let res: Vec<i32> = a.iter().collect();
let res: HashSet<i32> = a.iter().collect();
let res: String = a.iter().collect();
fn test() -> Vec<i32> {
let a = [1, 2, 3];
let res = a.iter().collect();
return res;
}
let res = a.iter().collect::<Vec<i32>>();
.collect()
на интах умеет суммировать числа), а во-вторых что просто
a.iter().collect()
a.iter().map(|&x| x).collect();
Витя, про канал которого я вам как-то рассказывал, делился со мной когда-то вот какой гипотезой.
Почему в Гугле такой детсадовский дизайн? Все эти шапочки с пропеллером, бассейны с шарами, горки с этажа на этаж, цвета как в детском саду?
Его идея в том, что это чтобы инфантилизировать сотрудников. Чтобы они думали о себе как о детях, а о том, чтобы пойти основать собственную компанию не думали.
Мнения?
Я на самом деле очень скептически отосился к ML/AI. Типа, нас всех заменят, художники станут не нужны, программисты и подавно.
Но недавно подумал: а что, в принципе, как поисковик по всем накопленным знаниям человечества — нормально ведь? Особенно учитывая как Гугл сговнился, и если оно еще научится как-то банально группировать/кросс-референсить, что не бог весть какая задача, то и вообще нормально будет?
Типа, ну вот поиск по интернету, Wikipedia и затем StackOverflow тоже вроде новых знаний не порождают, но за счет того, что находятся на кончиках пальцев — огромная революция в способностях среднего человека. Ну вот будет еще один способ искать.
Я до сих пор скептически отношусь к их способностям генерировать новое. Вот эти все моменты плохо оговоренные, зазор между тем что реально предлагается и что люди хотят услышать. Когда кто-нибудь формулирует задачу, и ты ее читаешь и думаешь: ага, вот тут-то бы мозг бы и включить.
Но формулятор задачи не включает, а передает ее ChatGPT, и она тоже не включает (у нее нет), и в итоге фигня получается. Да, вот эти моменты хорошо бы людям научиться распознавать конечно.
Кстати, если вашу работу уже хорошо делает ChatGPT, у меня для вас очень плохие новости. И нет, они не про то, что ChatGPT достигла невиданных высот интеллекта. Проблема с другой стороны.
В общем, просто как усилятор ума, как будто есть что добавить к тому что уже есть? Даже звучит не очень тупо как будто.
Смотрел тут на выходных сериальчик с Amazon Prime, ну и подумал, че, подписка все равно есть, посмотрю легально.
Включаю. Для пущего погружение отключил субтитры. И чет диалоги норм-норм-хуяк-ничего не понятно. Ладно, один раз. Потом второй, третий. Че за дела? У меня английский G5, я должен британские фильмы без субтитров смотреть, а тут американщина, английский для начинающих.
Короче, оказалось, что добрый дядя Безос придумал мега-фичу: во время диалогов рандомно менять громкость. То есть буквально, слог громко, слог тихо. Может и в других местах тоже, но именно в диалогах заметно пиздец. Настолько, что непонятно, что говорят. Опции, чтобы отключить, нет конечно.
Фича, судя по всему, называется «адаптивная громкость». И это тот самый случай, когда просто если бы ничего не делали, было бы лучше. Зачем это? Для кого? Кому стало лучше? Даже если с точки зрения самого Амазона смотреть, забыть о пользователях, то какие метрики выросли? Куда потрачены деньги? Я и так уже добрый десяток часов потратил суммарно, чтобы отключить все «улучшения изображения» на телевизоре, так теперь приложения начали подсирать.
И это не первый мой опыт с Амазоном. Однажды захотел я в поезде сериальчик хотел посмотреть, скачал какое-то официальное десктопное говноприложение, у которого был офлайн-режим, скачал серии, так он их скачал в минимальном качестве. Такая вот награда за то, что решил все сделать легально.
Про то, что если пытаться смотреть стриминг на компе в браузере, ты будешь получать максимум 1080p без HDR, наверное, все и так знают, вроде Амазон даже не единственный, кто так делает.
Ну и последний гвоздь в крышку гроба — теперь у них в этой подписке есть реклама между сериями. Парам-пам-пам, пиу!
Короче, хотите хорошего сервиса — идите к пиратам. Вот уж люди никому мозги не ебут, а просто делают все на совесть. Любое качество, из любой страны и юрисдикции, на любом языке (а не только языке страны), переносимость, оффлайн, нет рекламы, нет «адаптивной громкости». Компьютеры могут быть офигенно удобными, надо только захотеть.
Тут пошла какая-то адовая мода на попапы. Типа, открываешь знакомую программу, а там какая-нибудь иконка в углу подсвечена и рядом попап на полэкрана, типа, смотрите, новая функция.
Почему так делать не нужно?
Во-первых, потому что это заплатка. Ваши интерфейс настолько плох, что его нужно отдельно пояснять. И ладно это еще какой-то старый интерфейс, разработчики которого давно разъехались кто в монастырь кто в психбольницу и вписать новое сложновато. Но ведь такое иногда и в новых интерфейсах делают, с нуля спроектированных, где все со всем вроде как сочетается и имеет свое место.
Ну а во-вторых приоритеты. Вы программу для кого делаете? Для пользователя. Пользователь вашу программу зачем открыл? Почитать, что вы нового сделали? Нет конечно. Он наверное что-то сделать пришел. И с 99% процентов вероятности это новое делается не той функцией, которую вы только что добавили. Так что имейте совесть, не плюйте в лицо человеку, который и так уже ваш клиент.
А что если вы сделали фичу, не прорекламировали ее в попапе, пользователь о ней не узнал и не воспользовался?
Ну значит ему не нужно было, епта!
Посмотрите внутрь себя и ответьте себе честно: правда ли попап решает задачу пользователя? Или вам просто работу свою жалко?
Я периодически балуюсь тем, что рисую логотипы для опен-сорса, своего и иногда чужого.
Недавно у меня вышла библиотека clj-reload, и я подумал — перезагрузка кода, стрелочки по кругу, что тут думать, приключение на двадцать минут, зашли и вышли.
Оказалось, конечно, что одной идеи недостаточно, выглядит это уродско и на поиск в итоге ушла большая часть дня. Но нашел, и даже симпатично получилось, на мой взгляд.
Я это все к чему? Это не первый случай, и все они развиваются по похожему сценарию: ты начинаешь с того, что ничего не нравится, идей нет и ступор. Возишься, пробуешь, пыхтишь, и через итераций двадцать-сорок что-то нащупываешь, доводишь до конца и получается что-то симпатичное.
Ты не знаешь, когда начинаешь, что получится в конце, и получится ли. Даже тени надежды нет. Но надо посидеть и что-то получается. И накопленный опыт говорит, что это не случайность, и на это можно полагаться. Однако начало всегда выглядит абсолютно безнадежным.
Интересное ощущение, короче. Особенно учитывая, что в программировании, например, я ничего не начинаю обычно, если не знаю, что и как делать.
А можно, оказывается, и наоборот. Trust the process.
Интересно, в чем феномен редактора Zed, конечно.
Нет, что от VS Code все устали, мне понятно.
Но просто рядом такой же Sublime Text лежит уже лет 15, и всем как-то пофиг.
А тут новый редактор вышел, и все как с цепи сорвались. Даже в личку мне про него несколько человек написало!
Хотя казалось бы:
- VC-funded, то есть потенциально сговнится и продаст пользователей,
- Уже требует заводить аккаунт,
- Уже есть встроенный AI,
- Уже есть нотификации,
- Ничего не работает (пока что — ожидаемо, но по факту ST можно для чего угодно использовать, а Zed только поиграться)
- Еще не вышел, а уже один раз переписали,
- Есть только под Мак.
Еще раз: я не утверждаю что Zed классный или стремный, меня интересует именно феномен хайпа. Откуда его столько?
Гипотезы такие:
- Хайп Раста перекинулся на Zed, хотя C++, например, ничем не хуже для конечного пользователя.
- Авторы с именем (делали Atom).
- Пункты про AI и VC многими рассматриваются не как минусы, а как плюсы?
- Потенциал ненаписанного продукта всегда соблазнительнее чем реальный продукт, потому что покупаешь как бы свои фантазии.
Что думаете?
UPD: Из комментов:
- Опен-сорсный
- Бесплатный
Для меня опен-сорсность пустой звук, потому что ну кто объективно слал патчи в свой редактор? Но людям нравится _думать_, что они потенциально могли бы
Платность тоже для меня плюс, потому что иначе откуда деньги? От продажи пользователей, вестимо. Но опять же, люди в массе так далеко не думают
UPD2: Из комментов
- Название Zed Industries (ИНДАСТРИС!) звучит мега круто
Тут согласен
Играли мы как-то в ICFPC. Я тогда еще в Джетбрейнсе работал. В команде у нас был Дима Жемеров (ну вы знаете Диму).
Сидим, значит, в комнате. Выкладывают задание. Мы читаем, а там надо какую-то виртуальную машину, кажется, реализовывать. Ну мы за ноутбуки, клац-клац-клац, хуярим, накидываем реализации. Пара часов прошла. И тут Дима такой — у меня все готово. На Джаве! Смотрим — и правда готово.
Мне потом еще столько же времени понадобилось, чтобы на Кложе догнать (Дима не стал дальше играть, пришлось пивотиться, но мы были готовы).
Это я все к чему? Если вам нужен кумир, идеал, ориентир, к которому нужно стремиться — вот он. Простая линейная скорость хуярения кода. Если ты можешь писать код в два раза быстрее, то ты напишешь в два раза больше кода. Я вечером уйду домой с половиной прототипа, а Дима — с целым. Simple as that.
Вы скажете — да ну, бред какой, я больше думаю, чем код набираю. Ну так он и думает, и решения принимает, и рефакторит, и руководит, но все так же быстро. Это интеграл всех активностей, не только кода. Но код тоже быстро пишет.
Вы скажете — работа программиста — это соединять между собой уже написанные фреймворки, а не писать новый код. Если так, то нам с вами не по пути — это этап хорошего мидла, я его давно прошел уже. И вам советую. На другой стороне сильно интереснее.
Так-то я бы тоже хотел очень быстро писать, но получается, как видите, средне. Потренироваться как-то может быть? Что можно придумать?
В общем, зависть.
Вот мы все ругаем компьютеры, и, конечно, за дело, в том числе иногда и на этом канале, и программистов ругаем, и собеседования, и бездушный энтерпрайз, и индустрию в целом, и фронтендеров отдельно, и Линукс просто ради лулзов, но все-таки не нужно за этим шумом не терять главное: я все равно люблю программирование.
Серьезно, это все фон, который занимает может быть одну десятую моего внимания, иногда это даже метод, но глобально, по-большому, я все это до усрачки люблю.
Ну вот я уже полгода почти не работаю. Что, думаете, я на диване чиллю? Нифига, я купил монитор побольше и просто хожу в коворкинг и хуярю целыми днями. Потому что, если пораскинуть мозгами, это самое интересное и наполняющее занятие, которое я могу придумать. Вот просто хлебом не корми, дай код похуярить.
Есть люди, которые программирование не любят. Ну, знаете, по ошибке сюда попали, или из-за денег. Они считают, что развиваться не нужно, разбираться не нужно, а уметь кодить — стыдно. И знаете что? Это тоже нормально. Но лично я — люблю, обожаю, болею.
Вот я ругал раздутость джаваскрипта. Все скажут — хейтер. А я ругаю, потому что люблю. И потому что для меня это задача, которая по-настоящему занимает мозг, которая захватила внимание и не отпускает: а можно ли лучше? Можно ли Слак уместить в 1 Мб Джаваскрипта вместо 50? Можно ли сделать лендинг Next.js не в 200 тыщ строк кода, а в 200?
Почти каждую программу, которой я пользуюсь, я бы хотел переписать. Не потому что я думаю что получится лучше (хотя может в чем-то и получится), а потому что просто мысль о том, что вот у меня будет повод хуярить код несколько месяцев — это прикольно, это возбуждает. И библиотеку бы хотел. И АПИ (хотя тут чуть меньше, потому что это часто не про кодинг, а про договоренности, а договариваться я не люблю).
Вот что я хочу делать на самом деле, а жалобы — это просто поиск проблем, которые можно было бы порешать. Я же не ругаю, не знаю, спорт — не потому что там все хорошо, а просто не мое. А программирование ругаю.
Об одном только жалею — никакой жизни не хватит, чтобы написать все, что я бы хотел.
Ладно, пойду попрогаю.
Тут гуляла недавно статья «So You Want to Ship a Command-Line Tool for macOS», смешная.
Чел там удивлялся, насколько плохо у Эпла сдеалана нотаризация (восемь (!) видов сертификатов, несколько разных тулз, дебильные флаги (`codesign -d -vvv --entitlements :- mytool.app` — как вам смайлик?), нет репортинга ошибок, нет баг-трекера) и что единственный лучик света в этом всем — опен-сорсная тулза rcodesign, которая хороша только потому, что ее писали не в Эпл.
Вывод в статье такой:
> Do not attempt to “create software” for macOS. They don’t want you to.
Коллега и соучастник по Грампи сайту Dmitrii Dimandt недавно бугуртил в твиттере, что Гугловая тулза для анализа производительности сайтов Lighthouse репортит гугловые же ембеды Ютуба (жалуется сама на себя, получается) и в качестве решениея предлагает опен-сорсные альтернативы. Потому что Гугл уже не может ни одной проблемы сам решить.
Ну и как бы да. И это даже не новость. В 1981-м году директор Диснея (да, того самого, с Микки Маусом) Майкл Айзнер разослал памятку сотрудникам, в которой говорилось:
> В нашу задачу не входит менять историю. В нашу задачу не входит делать искусство. В нашу задачу не входит занимать позицию. Наша единственная цель — заработать денег.
И как бы это печально ни было, это, конечно, правда. Эпл не ставит себе задачей сделать удобное устройство. Или качественное. Они просто хотят забрать у вас деньги, в идеале ничего тебе не отдав взамен. И Гугл. И Амазон. И Мета.
Вот и получается такая позиционная война. Как долго можно мучать и доить пользователей, делая как можно меньше, прежде чем они начнут уходить.
Корпорации — не твой бро.
Зато есть опен-сорс. Там все еще думают про пользователя, потому что этих пользователей надо как-то набирать, а они не дураки же. Вот ты, читатель, дурак? Нет? И я тоже нет.
В крайнем случае у нас всегда останется Линукс. Они конечно косячат, но хотя бы косячат от искреннего неумения, а не со злым умыслом. Слава богу, что он пока не интересен никаким корпорациям. Осталось сделать, чтобы он стал интересен пользователям.
Пока тут ничего не выходит, сходите почитайте канал «Local-first и децентрализация». Он интересный
> Требую искоренения коррупции или моего участия в ней!
И смешной
Есть особо любимый мной вид багов. Рецепт такой: берешь очень простой экран, например логин. Два поля и кнопка, да? Не таков наш UX-дизайнер.
Наш UX-дизайнер для начала разобьет этот экран на несколько. Минимум два, но может и три-четыре сделать. От этих психов всего можно ожидать.
Типа, было сложно, стало просто. Мы же не хотим смущать пользователя? На каждом экране всего одно поле ввода и кнопка «дальше». Выучил паттерн «визард», не выучил, где применять. Но не суть.
Собстрвенно баг. Одно-единственное поле ввода (ну, еще кнопка). Абсолютно пустой экран. И где фокус? Правильно, в ... (гусары, молчать!) Не в поле ввода, в общем.
Если это телефон еще, то клавиатуру не видно. Типа, тебе надо нажать самому в поле, все перекроится, подвинется и спрячется, во, теперь хорошо, вводи. И кнопка Дальше еще под клавиатурой окажется. И так несколько экранов.
Казалось бы — ну одно поле — один экран — ну поставь фокус. Ну очевидно же. Не надо быть экспертом в UI. Не надо принимать сложных решений. Не надо знать (или не знать) о каких-то трендах.
Все, что нужно для исправления этого бага, это один раз запустить собственное приложение. Все, больше ничего не нужно. Я что, так много прошу?
Только что видел и обратный пример. Ресетнул айпад, запустился мастер первой настройки. Он говорит: введи пин-код. И показывает клавиатуру. Ура! Ура? Нет, потому что клавиатура, как водится, заняла пол-экрана, и ты даже не видишь, что у тебя просят и что ты вводишь (и куда).
Опять же, запусти один раз, увидь эту хуйню, раздай пиздюлей всем в компании, вуаля, на выходе охуенный продукт. Ну не охуенный, но просто нормальный хотя бы. Но видимо Тиму Куку айпады настраивают ассистенты, а больше в компании никто этот экран не видел.
Вот так и имеем то, что имеем.
Поговорим о важном. Как правильно ембеддить код в ваш сайт/приложение/налоговую декларацию.
Код это что такое? Это просто кусочек текста. Поставил ему моноширинный шрифт и норм, уже код. Ну, можете подложку серенькую сделать, если очень хочется. Но это максимум. Уже понятно, что это код, все, достаточно, остановитесь.
Но не таковы люди. Им кажется, что код это что-то специальное, волшебное, и его надо как-то специально встраивать, иначе волшебство сломается. Почему-то нет специальных сервисов/библиотек, чтобы вставить в пост параграф текста. А для кода — есть.
Например тут, в телеграме. Ему зачем-то красят синтаксис, хотя блин, размер сообщений такой, что смысл красить эти три строчки, которые сюда войдут? Вот я читаю пост, один из ста, вижу три строчки кода в абсолютном одиночестве, сверху километры текста, снизу мили, но вот в этих трех строчках вводится шесть разных цветов, которые ничему не соответствуют (точно не моей цветовой схеме) и которые я не видел и не увижу больше нигде в ближайшее время. И че?
А еще сверху плашка «copy» маленькими буквами и иконка копирования в противоположном углу почему-то. Как будто копирование кода это самая супер-важная операция, и все как увидят пост с кодом сразу побегут именно код копировать и пересылать друг другу. Или в проекты свои вставлять. Текст почему-то не помогают скопировать, а вот для кода целых две кнопки выделили. Ребята, если код для программистов, у них Ctrl+C в подкорке, не нужно им помогать. Да и вообще помогать с копированием не нужно, ну что за детский сад.
Сайты любят еще номера строк добавлять. Тоже обожаю. Сосчитай до десяти, называется (ну, сниппеты маленькие же). Какой юз-кейз? Никто не знает. Особенно обожаю, когда эти номера при выделении тоже копируются, прям вперемешку с кодом. Спасибо, лучше бы не помогали.
Был еще какой-то ембеддер, который красил строчки зеброй (темный фон у каждой второй строчки). Ну охуеть, это вам что, таблица? Давайте я вам щас текст зеброй покрашу, нормально будет?
Долгое время на Медиуме не было способа вставить код (платформа для паблишинга, прости господи, сколько понтов было и как некрасиво они скурвились). Потом они почесали репу, посмотрели на весь этот код картинками, и добавили ембед через гитхаб. То есть натурально, чтобы вставить три долбаных строчки, они тащат целый блин сторонний сайт! Ну и естественно, каждый микроскопический function puk() { srenk(); }
обложена со всех сторон брендингом Гихаба: «это мы вставили, мы, алло, как слышно, Гитхаб, код — это Гитхаб, даже не думайте без нас кодить начинать». Мы и не думаем, Гитхабчик, мы и не думаем.
В общем, код в статье — это просто параграф, набранный моноширинным шрифтом. Не надо его никак больше оформлять.
Спасибо.
Как работает человеческая психология. Кто-то процитировал в Твиттере мою любимую индейскую поговорку: Лошадь сдохла — слезь.
Естественно, ее встретили на ура. Мощная, едкая, самоочевидная, и тем не менее позволяет тебе самоутвердиться за счет воображаемых неудачников, которые зачем-то все еще сидят на мертвой лошади. Но я-то не такой!
Тогда я рассказал собственную историю, как я слазил с мертвых лошадей. Как бросил Хром и переехал на Файрфокс. Как искал замену Дропбоксу и нашел Syncthing. Про переезд с поиска Гугла на DuckDuckGo, с Гмейла на Фастмейл. С VS Code на Sublime Text. С Твиттера на Мастодон.
Казалось бы, ровно та же ситуация. Продукт сговнился — идешь и ищещь следующий. Самое рациональное, что можно сделать.
Но не тут то было. Как только я начал это правило применять на практике, люди очень удивились. Вот прямые цитаты из реплаев:
> Но зачем?
> А зачем? Прост, чтоб движ был?
> Зачем с чего-то слезать?
> Когда главное "процесс", а не результат
> Больше похоже на то, как у меня сын, когда был совсем мелкий, года 3-4, бегал по площадке и катался то на одних качелях, то на других, то на третьих. Вы просто ещё и гордитесь этим.
> Я понимаю, когда возникает причина на что-то перелезть, но вот так целенаправленно с чего-то слезать...
> Для чего вы с чего-то слезли? Ощущение, что вы и сами не знаете, даже вопросы задаёте "куда?" "как?".
Один чел настолько несогласился, что попросил меня его забанить (ага, я сам удивился, но мне не сложно).
В общем, с практическим применением правила у людей вопросы. Хотя казалось бы — ну очевидно же — сдохла лошадь — нафига продолжать на ней сидеть?
Наверное, в этом и сила поговорки. Всем она нравится, но если бы все ей _на самом деле_ следовали, то не было бы так точно и едко.
Произошел ChatGPT момент. Спросил, значится, в Твиттере, помощи с непонятными моментами неравенств Белла (шутники, давайте про Сумерки пошутите, но знайте, вы не первые), и несколько человек посоветовало: братишка, чего ты мучаешься, спроси ЧатГПТ.
Что как бы довольно оскорбительно, потому что подразумевает, что я глупее ЧатГПТ и не могу понять какие-то моменты, которые она может. Вдвойне оскорбительно, учитывая, что она вообще ничего понять не может.
Ну пишу, значит: чел, ты издеваешься, ЧатГПТ не знает, почему у стола четыре ножки (пример из вчерашних комментов, спасибо за него), а ты хочешь, чтобы я ее про квантовую механику спрашивал.
Но чел не унимался. Он пошел и сросил про стол. ЧатГПТ отвечает:
> Это делает стол устойчивым к небольшим неровностям пола, так как четыре точки опоры легче сбалансировать, чем три или две.
И чел показывает это мне с комментарием: «Вполне себе достойный ответ 🤔»
Но он неправильный! Это неверный ответ! Это глупость, ложь, бред. Три точки легче сбалансировать, три точки устойчивее к неровностям, а две сбалансировать вообще невозможно.
Кажется, люди забыли, что ЧатГПТ это не какой-то интеллектуальный собеседник, а такой довольно хуевый поисковик по довольно усредненному мнению обывателей в интернете. Оно не способно на логические рассуждения, ответы на вопросы, выводы, отсеивание правды от лжи. Причем даже на уровне детского сада, как в примере со столом.
Но главный вопрос: человек, который прочитал ответ и показал его мне, он что, тоже, получается, ЧатГПТ?
Кстати, консультация про неравенства все еще нужна. Но именно глубокая, не поверхностная, поверхностно-то все понятно.
Сейчас красоту покажу.
Одна из самых логичных вещей в Кложе — что словари (map/dict/associative array) это еще и функции. Типа, и то и то отображает аргумент в значение, так зачем их различать?
Там потом из этого много удобных шняг вытекает еще, но даже на самом базовом уровне это жутко логично.
В условном js/питоне можно написать dict[key]
, но зачем, если можно с тем же успехом было бы писать dict(key)
?
Вот и я думаю, что незачем.
Очень странный фильм посмотрел. Ну как фильм, сериал. Мистер и миссис Смиты.
Сначала я думал: да ну, фигня, после того фильма, где Даг Лайман, Джоли, Питт, смысл переделывать, лучше уже не будет. Плюс герои весь трейлер сонные какие-то ходили.
Потом включил и опа, а там режиссер Хиро Мурай, режиссер Атланты. Интересно, может какая-то задумка все-таки есть.
Ну и да, оказалось, что сравнение с фильмом ему только вредит: тут все другое и про другое, это такой меланхоличный мамблкор про двух грустных одиноких людей. Окей, попробуем.
Попробовал. Красиво. Тонко. Интересно. Но есть проблема.
Смотрите: наемные убийцы в кино вообще сомнительная тема. Они держатся разве что на том, что тебя просят сильно не думать, кого и как они убивают, чтобы в этой недосказанности оставалась хоть какая-то возмозможность их за людей считать. Они или убегают от кого-то сами весь фильм, или убивают ну совсем уж карикатурных злодеев, или просто этот момент оставляют за кадром/в прошлом. Вспомните, когда Джеймс Бонд последний раз кого-то не из-за самозащиты убивал?
Взамен тебя очень усиленно развлекают: трюками, погонями, взрывами, гаджетами, чтобы не дай бог у тебя ни в какой момент не возникла мысль: вообще-то этот чел за деньги горла режет и затылки дырявит.
Ну вот, а теперь мистер и миссис Смиты. Идея в том, чтобы показать простую, ежедневную жизнь двух людей в очень высоком разрешении. Как они берут кофе, держатся за руки, неловко переглядываются, желают друг другу спокойной ночи, едят бейгели, кормят кота, ездят на метро. Во всех подробностях. Максимально честно. В любой другой ситуации я был бы только за, обожаю такую фигню.
Но при этом высокий концепт тоже оставили: они в фоне постоянно кого-то карикатурно убивают, взрывают, душат, путешествуют по миру, покупают модную одежду, машины и недвижимость.
И это совсем не клеится друг с другом. Один концепт душит другой. Если вы просите меня задуматься, каково это на самом деле, по-настоящему, как выглядит ежедневная жизнь наемных убийц, то вы не можете замести под ковер факт того, что они регулярно убивают других людей за деньги. Это просто все ломает. Или крестик, или трусы.
Хотите быть честными? Ну тогда давайте наверное не шутить про убийства? Ой, я такой весь тонко чувствующий, сейчас только трупу ноги сломаю и дальше продолжим обсуждать фильмы Тарковского.
Хотите про убийц? Тогда отвлекайте, развлекайте меня, уведите это как можно дальше от реалистичности, потому что иначе ну невозможно на это смотреть же.
В общем рекомендую ли я? Да, но не Мистера и миссис Смитов, а Атланту. Вот уж на что великий сериал, у которого и с концепцией, и с моралью все в порядке.
Прочитал в твиттере тираду о том, что алгоритмы испортили интернтет. Типа, вместо того, чтобы делать классный контент, но редко, люди работают на количество, потому что если ты регулярно не постишь, алгоритм тебя сольет.
И я конечно не очень разбираюсь, но где-то слышал, что алгоритму на самом деле более-менее пофиг на регулярность. Пости хоть раз в месяц, хоть раз в год, он будет продвигать тебя с одинаковой силой.
Что на самом деле происходит, так это что если выложить 100 постов и каждый посмотрит, скажем, 500 человек, то это уже пятьдесят тычяч, а если выложить один особо качественный и его посмотрит, скажем, в 10 раз больше среднего, то это все равно всего пять тысяч.
То есть алгоритм-то тут и ни при чем. Люди (люди?) — криейторы, инфлюенсеры, влоггеры — сами решили, что им цифры важнее качества материала, и получили то что получили. А винят алгоритм, потому что не может же любимый блоггер просто оказаться вдруг тщеславным чудаком.
Похожую историю слышал и про призывы «лайк, подписка, колокольчик», что они совсем не работают, а народ повторяет их просто потому, что так делают другие.
Так и живем.
Слушайте, в прошлый раз кто-то заметил, как я мучаюсь с редактированием кода в сообщениях в Телеге, передал разработчикам и они починили. Я не могу найти кто!
Но пожалуйста передайте еще два бага:
1. Когда вставляешь ссылку, у нее рисуется карточка Preview. Так вот текст в этой карточке масштабируется с изменением размера шрифта в настройках, а line-height — нет. Короче, если сделать шрифт побольше, строчки слипаются. В самих сообщениях все нормально.
2. В режиме бабблов, если запостить кусок кода, из-за подсветки на темно-синем фоне он абсолютно не читается.
Все на Telegram for macOS.
Спасибо!
К сожалению, я сам не могу сделать все, что потенциально хотел бы, но зато я могу написать о своих идеях в надежде, что у кого-то другого дойдут руки, а я потом этим воспользуюсь.
Итак, сегодняшний пост для тех, кто собирается писать свою операционную систему с нуля. Я знаю, я скромный, о многом не прошу.
Идея такая: пользовательская папка должна жить по адресу /
(в корне то есть), я вся система ютиться где-нибудь в неудобной жопе типа /.system
.
Потому что — ну системе какая разница? Никакой. А пользователю все эти /Users/tonsky
или, простите, C:/Documents and Settings
, это что вообще такое?
Плюс, когда система живет в /
, рут в /root
, а юзера (меня!) затолкали в /home/tonsky
, это невольно коммуницирует, кого тут считают главным (не меня).
Сейчас сюда придут люди, которые начнут рассказывать про «в системе обязательно должно быть несколько пользователей» и без этого абсолютно, никак невозможно жить.
На что я отвечу: айфон видели? Сколько там пользователей? Помешало это его успеху? Ну вот.
В общем, хоум дир должен быть корнем. Я сказал.
Каждый раз, когда я думаю о том, как мы пишем код, и как всякие артефакты вокруг него разбросаны по разным сервисам (документация, баги, история изменений, архитектурные решения, обсуждения и т.д.), естественным образом прихожу к мысли, как круто было бы это все собрать вместе.
Получилась бы такая утопия, где все счастливы, все что тебе нужно сразу под рукой и код пишется со скоростью света. Про это и в подкасте про Zed говорили, они не просто хотят телефон в редактор встроить, они именно что хотят все общение про код в редакторе собрать (как это будет работать непонятно пока ни мне, ни им).
В общем, каждый раз когда я про это начинаю думать и возбуждаюсь, вспоминаю, что в 80-х Кнут уже придумал литературное программирование, которое было той самой утопией. И знаете что? Всем оказалось пофиг, потому что, оказывается, никто не хотел быть писателем.
Не, мы-то с Кнутом писать, конечно, любим, как видно по этому каналу. Но мы исключение. А люди в основной своей массе пытаются приспособить AI, чтобы 40 знаков комментария к коммиту не писать.
Так что все. Занавес. Я могу дать вам более лучшие инструменты, но вот более лучших людей у меня для вас нет. Расходимся.
Читал тут Адама Виггинса, основателя Хероку, My Heroku Values, и он в числе прочего пишет:
> Put it in the cloud
> I don't want to run software, ever. Given a choice between a great app that runs locally and a mediocre app that runs in the cloud, i'll always take the latter. (e.g. excel vs google spreadsheet, 1password vs lastpass, Things vs a textfile todo list on Dropbox) Services, not software.
Что вроде бы логично для чувака, придумавшего и продающего облака, да?
Но ирония в том, что Хероку он с тех пор продал, основал Ink & Switch, который должен был стать исследовательской лабороторией по интерфейсам, а стал по CRDT и local-first software. То есть, прямая противоположность облаку, все свое ношу с собой и запускаю локально.
Потом включил подкаст localfirst.fm
, а там Peter van Hardenberg, директор этого Ink & Switch, оказывается, тоже в Хероку начинал.
И вот его спрашивают: а как так получилось-то, разворот на 180 градусов? Что поменялось?
А он отвечает, что облака на самом деле сомнительная довольно идея, и полностью в них переезжать никто на самом деле не хочет, просто у пользователей никто не спросил, выбора не было.
Ну хорошо, говорят, а программисты-то зачем в эти облака писали? У программистов-то был выбор, какой софт создавать?
А, говорит, ну они писали по нашему же совету, мы им говорили под облака писать, они и писали.
И тут я, конечно, кекнул. И потому что смешно, и потому что правда, и это та самая глубинная причина, настоящая, а не какая-нибудь поверхностная.
Такая история.
Там Вастрик опубликовал пост про корпоратов и инди, в котором, ожидаемо, больше про инди и очень хорошо, а вот про корпо несовсем точно.
Он там пишет, что мол код дома такой простой, потому что ты единственный, кто над ним работает, а на работе все сложно и одну кнопку по шесть недель перекрашивают, потому что мол вы команда и каждую строчку надо, чтобы мог понять Вася, который придет туда с бодуна через шесть месяцев после твоего увольнения. Поэтому, мол, и кубернетисы и процессы и сложность.
Но! Очевидно это не так. Очевидно, что простой код понять проще, чем сложный. Условно, если я напишу кнопку лайка на vanilla js с fetch на 10 строчек, это будет проще и понятнее, чем притащить React, Webpack, CSS-in-JS и бог знает что там еще придумали. Ну просто потому что количество движущихся частей и абстракций сильно меньше, а это объективная характеристика.
Настоящие причины, понятно, сложнее. Например, карго-культ. Все вокруг делают лендинге на Реакте на пять-десять мегабайт, значит и мы сделаем. Зачем? Почему? Да нипочему, просто все так делают, и внезапно делать по-другому это уже подвиг. Да у Вастрика у самого есть в посте пример, как он что-то придумал, а ему пальцем в у виска все крутили.
Или, например, потому что программисты любят сложность, как свинья грязь. Если что-то становится слишком простым, их начинает есть синдром самозванца и они придумывают теорию категорий или хадуп. Ну а что, зря что ли мы все эти машины покупали? Надо использовать!
Или потому что сделать просто — сложнее, а у нас бюджета нет. Или времени нет. Или «это не решает бизнес-задачу». Ну или тупо скилл нужен, а он не у всех есть.
Или потому что делать проще — это часто ощущается как «топтаться на месте», часто требует удалять код и пересматривать решения, а этого большие компании не умеют. Они умеют только добавлять.
В общем, причин много, но очевидно код на работе такой сложный вовсе не от того, что коллегам сложный код понятнее простого. Это был бы абсурд.
Ну а настоящий вопрос к статье конечно такой: если в инди надо говнякать и больше искать нишу, чем кодить, в корпо душат, то куда податься простому программисту, которому просто нравится, когда компьютер делает буп-буп?
В книжке про Шерлока Холмса есть такой прогон:
> Мой мозг [...] бунтует против безделья. Дайте мне дело! Дайте мне сложнейшую проблему, неразрешимую задачу, запутаннейший случай — и я забуду про искусственные стимуляторы. Я ненавижу унылое, однообразное течение жизни. Ум мой требует напряженной деятельности.
Когда я читал ее в детстве, подумал — пфф, что за нонсенс, естественное состояние мозга отдыхать, ну и вообще есть миллион всяких других интересных дел, которые можно поделать, не загружая его.
А потом вырос, начал прислушиваться к своему телу и с удивлением обнаружил, с какой охотой мой мозг кидается на хорошо специфицированные проблемы с формальными правилами, как то:
- Настольные игры с нетривиальными механиками или стратегиями,
- Логические пазлы, где не надо бегать и искать сами пазлы, а надо просто сидеть и решать. The Witness, The Talos Principle, Baba Is You.
- Roguelike/CCG типа Slay the Spire, Wildfrost, FTL, Into the Breach.
- На безрыбье даже гребаные судоку.
Казалось бы, мозг, нагруженный программированием, захочет отдохнуть и переключиться, а на самом деле он хочет просто еще больше того же самого.
Ну или как посмотреть — может быть программирование это как раз про недоспецифицированные проблемы с нечеткими правилами, и это как раз компенсирует то, чего я от работы не получаю.
Кстати, Холмс в той сцене проставляется кокаином, чтобы стимулировать мозг в отсутствие работы. Так что спасибо богу, что придумал компьютерные игры!
Вастрик (читается vas-3-k), исполнительный директор Вастрик-Клуба и HTMX (совсем не бережет себя человек), в подкасте «Тысяча фичей»:
> Я ненавижу SPA, я прям терпеть не могу, я не понимаю. Нет ни единого плюса у SPA, их просто не существует, вообще.
> Любую вещь, которую делают на SPA, обычный браузер делает лучше. Рендеринг HTML быстрее делает обычный браузер, чем блядь твои React-компоненты. History, оно уже встроено в браузер, зачем ты роутер, блядь, тащишь на фронтенд? Кэширование тоже, у тебя есть все эти флажочки, If-Modified-Since, HTTP-заголовки и все прочее.
> Засилие SPA и вот этих сайтов, которые spinner fest-ы, когда ты открываешь сайт, а там у тебя фестиваль спинеров, тыр-тыр-тыр. Все подгружается, каждый widget свой loader отображает, и вот spinner-fest блядь, как будто в цирк какой-то ебаный приехал, клоуны тебя тут вертят.
> И ты ждешь, как дебил сидишь, пока тебе реально твиты покажут. Зачем твиттеру SPA? Я ваще не понимаю.
Дискас. Коменты открыл.
Навального убили. Что очень печально, как бы вы к нему ни относились. Так что поста не будет. Пиздец
Читать полностью…В Твиттере создатель Next.js хвалит схему, когда URL-ы содержат текстовую часть и id, типа .../new-js-framework-867489b1823e
. Идея в том, что если ты статью переименуешь, то текстовая часть поменяется, а числовая сохранится, сервер будет смотреть только на айдишник, и старые, и новые ссылки продолжат работать.
Но я этого не понимаю. Ну допустим ты хочешь красивые человекочитаемые урлы. Зачем тогда айдишник? Или ты хочешь стабильные урлы. Тогда зачем текстовая часть?
Решение, конечно, на поверхности. Можно организовать редирект. Запомнить и старый адрес, и новый, и редиректить старый на новый, если по нему пришли. Легко? Легко. Просто? Тривиально.
Так в чем же дело? Нафига к красивому урлу дописывать шестнадцетиричное число?
Причина, видимо, в том, что неохота хранить таблицу соответствий. Потому что ее надо же хранить вечно. Но если подумать, компьютеры достаточно мощные, чтобы рядом с постом на 50 килобайт сохранить хэшмап байт на 100. Пост же все равно будет храниться вечно? Ну вот и мапу урлов положи рядом, не убудет.
Гильермо (так зовут создателя Next.js) пишет, что так уже работают Медиум и Ноушн. Ну оно и показательно. Ребята специалисты по плохим решениям и выдумыванию проблем.
Что, кстати, как мы видим, совсем не мешает успеху. Зависть.
Все знают, что программировать лучше всего в моноширинном шрифте. Хотя с типографской точки зрения это полная бессмыслица: ну кому удобно от этих узких m и w и широченных i и l? Никому. Технических ограничений тоже уже давно не осталось: нарисовать пропорциональные буквы, спасибо Джобсу, сегодня так же легко, как и моноширинные (гусары-терминальщики, молчать!)
Но вы попробуйте поставить пропорциональный шрифт и покодить. Ощущения какие-то не те, да? Хотя казалось бы. В чем же дело?
Я когда лет 10 назад попробовал текстовый редактор iA Writer, так в нем и сижу (ну, сейчас в Саблайме, стилизованном под него, но смысл тот же). Одна из основных фич — это набор текстов моноширинным шрифтом. Да, обычных, простых человеческих текстов. Вот прям сейчас этот набираю.
Когда они переезжали с Nitti на IBM Plex, они сделали прикольные Duo и Quattro версии: они почти целиком моноширинные, кроме некоторых букв. В Duo есть полуторные (w и m, собственно), в Quattro — 0.5, 0.75 и 1.5. И что? Duo работает, Quattro совсем нет. Он просто выглядит как пропорциональный шрифт и убивает всю магию.
По какой-то не до конца понятной мне причине набирать текст поста/заметки/сообщения кайфовее именно моноширинным шрифтом. Не могу объяснить. Не понимаю. Читать неудобно, а набирать и редактировать — гораздо, гораздо кайфовее.
Подозреваю, и с кодом так же. Чисто стилистический выбор.