nikitonsky_pub | Unsorted

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

10682

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

Subscribe to a channel

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

Если зайти на Google точка com в Файрфоксе, увидишь 5 ворнингов и одну ошибку. Если зайти в Хроме, увидишь один ворнинг и один эксепшн где-то в минифицированном коде (другой). Если зайти в Сафари, увидишь два эксепшна. Это все без экстеншнов и адблокеров.

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

Когда я написал об этом в Твиттере, мне ответили, мол, а что ты хотел? Любой сайт так работает сейчас. Типа, это норма.

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

Если сравнить это с бэкендом, то бэкенд относительно несложно написать абсолютно корректно, по крайней мере так, чтобы никто не умирал каждую минуту и настоящие ошибки и проблемы было видно. А фронтенд что? Сломан?

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

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

Вопрос, который не дает мне покоя: почему ни в одном языке программирования нет встроенного типа «Таблица». Массивы есть, хэшмапы есть, а таблиц нет. Упущение?

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

А что бы хотелось? Ну, в первую очередь индексы встроенные, наверное. Чтобы можно было table.orderBy(column) и это бесплатно.

Во-вторую, понятно, джоины.

В-третьих, понятно, фильтры.

В-четвертых — сериализацию и ленивую подгрузку с диска. Опциональную — in-memory вариант должен остаться обязательно, хотя бы ради виртуальных таблиц, которые возникают после джоина.

Ну и дальше всякие мелочи уже типа take, drop, select, ну как обычно. Причем — я, может быть чего-то не понимаю, конечно – но вроде с таким интерфейсом как-то и SQL не нужен получается. Любой запрос можно на методах собрать.

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

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

«Такое должно быть в библиотеке». Ну вот нет. Это такая же фундаментальная вещь, как массив и хэшмапа. Прикиньте, массив был бы в библиотеке? Нет, это должно быть именно в языке, потому что тогда появляется возможность разным другим библиотекам общаться через этот тип. А если это сторонняя зависимость, то сразу начнется разброд, разные версии, несовместимости и все, идею можно закапывать.

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

Когда я учился, были популярны ORM-ы. И утверждалось, что они необходимы, потому что решают «Object-relational impedance mismatch». Типа, языки они больше про объекты, а база про таблицы (рилейшены). Ну и все страдали и жрали кактус. Кто-то пытался делать объектную базу.

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

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

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

Как-то давно в Твиттере обмолвился, что мол, наука это тоже религия. Не все поняли, но мне кажется тема интересная.

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

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

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

Короче мы конечно видим вокруг себя прогресс и пользуемся его плодами, но если бы это все создавалось волшебниками в башне, мы бы не сильно заметили. Мы этим просто... пользуемся. Никто из нас не сможет разобрать/воспроизвести процессор, так что он может хоть на мане работать. О, вы засунули в проц еще пять миллиардов транзисторов? Просто вдумайтесь: пять миллиардов! Это даже представить невозможно. А мы такие — охотно верю! Работайте дальше, вот мои 200 долларов.

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

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

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

Случаи, когда я воспроизводил какой-то научный факт непосредственно, я могу по пальцам пересчитать. Например, первый раз когда я увидел Юпитер в телескоп. Сам. Своим глазом. Меня так штырило! Потому что понимаешь, насколько до этого ты видел планеты только и исключительно теоретически, в виде картинок.

Второй случай был видосом на самом деле, то есть даже тут с непосредственностью заминка. У Folding Ideas есть видео, где он смог заснять кривизну Земли на камеру у очень длинного озера. Опять же — штырило очень знатно, хотя это уже вторые руки как бы. Надо будет как-нибудь попробовать воспроизвести самостоятельно.

А так — по факту — наука для большинства людей, кто непосредственно ей не занимается каждый день — это на 99% вера. Просто авторитеты другие. Вешают себе иконы с портретами Энштейна и Дарвина на стену, а потом говорят — вы не понимаете, это другое!

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

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

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

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

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

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

Это я к чему — Гугл решил закрыть goo.gl. Зачем — непонятно, сложно представить, что он хоть какую-то нагрузку создает и что его поддержка хоть чего-то стоит. А вот для сайтов возрастом 10+ лет это еще один гвоздь в крышку гроба.

Короче повторюсь опять: не верьте Гуглу, не любите Гугл, не смотрите на Гугл как на образец хоть чего-то хорошего. Те времена давно прошли. Мув он.

Пользуясь случаем, передаю привет пользователям Виндоус и напоминаю, что антивирус надо обновлять регулярно.

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

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

В твиттере чел показывал, как придумывал напоминалку для авторизации, и в том числе показал код, как я понимаю, на Tailwind. Написано примерно такое:


<div class="bg-[#f2fdfd] border-[#e5fafa] text-[#0c4445]...


Что ну смешно, смешно, смешно, ну смешно же. Дай человеку микроскоп и все вокруг начнет казаться гвоздями.

Вообще про Tailwind пост уже был, повторяться не буду, но это явно клинический случай. А рассказать хочу вот что:

- Так как это кастомный синтаксис, никакими предзаготовленными стилями тут не отделаешься. Нужен препроцессор. Надо откуда-то брать файлики и куда-то их складывать. А еще его можно настраивать!
- На скриншоте, где я это увидел, рядом с каждым классом был маленький квадратик с превью. То есть какой-то бедолага специально сделал поддержку тейлвинда и вот этого синтаксиса в том числе в VS Code.
- Не исключено, что это еще и через какой-нибудь Language Server гоняется, чтобы эти квадратики появились. Потому что нельзя же просто написать функцию и вызвать ее. Спасибо что не через облако!

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

P.S. Негодяи на сайте Fira Code используют, наверняка чтобы я сжалился и гадости про них не писал

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

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

Тут спросили, чем мне не нравится тейк «дизайнеры всегда все делают хуже».

Отвечу: тем что он бессмысленный. Он чисто логически невыполним. Хуже чем кто? Чем те же дизайнеры. То есть есть дизайнеры, которые делают получше, и есть те, которые похуже. Ну так и что, так везде, это банальное утверждение.

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

Ладно, давайте попробуем проинтерпретитовать вопрос. Может быть, имелось в виду, что дизайнеры что-то меняют, а человеку не нравятся изменения? Типа, я привык, а вы меняете.

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

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

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

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

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

Наконец, дизайнер может прийти и реально, объективно сделать хуже. Никто не застрахован, все мы люди. Штука тут в том, что чтобы были возможны предыдущие пункты, должен быть возможен и этот. Или все, или ничего. У вас на работе есть правило «коммитить только код без багов, код с багами не коммитить?» Нет? А почему?

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

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

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

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

Хотя казалось бы. Ну не нравится тебе. Отвлекает. Ну так для этого бог дал тебе Reader Mode. Нажми одну кнопочку — буквально — одну — и сделай себе хорошо. Не нужно никуда ходить. Не нужно никому ничего писать. Не нужно баталии никакие вступать, переубеждать никого не нужно. Ультиматумов ставить и ставить всех остальных в известность. Ничего этого не нужно.

Достаточно — всего лишь — нажать одну кнопку и сделать себе хорошо. Самому себе. Прямо сейчас. Тривиально.

Но люди, конечно, не делают.

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

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

Есть у Маков такая функция: handoff. Типа, делал че-то на телефоне, а потом пришел за компьютер и можешь продолжить.

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

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

Ну а собственно интересный вопрос: как так получилось?

Очень просто: кто-то придумал тЕхНоЛоГиЮ, что если у тебя два одинаковых приложения, они будут тут и там выскакивать парой. И дальше эта технология автоматически применилась ко всему: там где надо и там где не надо. Хорошо это? Вряд ли? Глупо? Довольно глупо. А все потому, что технологии победили программиста.

Такие же у меня впечатления от всяких «волшебных» фреймворков типа Swift UI или кросс-платформенных типа Flutter/Compose для мобилок/десктопа/веба. «Напиши один раз и оно заработает везде». Никто не уточняет, что это скорее всего будет очень плохо. Но формально-то заработало!

Все-таки смысл должен идти впереди технологий.

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

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

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

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

Однако же этого не происходит. Или, если происходит, то такие клоны прозябают где-то на задворках SourceForge.

Почему?

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

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

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

Но это все общие рассуждения. Конкретных ответов у меня нет, конечно. В принципе было бы интересно поговорить, что именно поменялось в мире, что привело к закату таких гигантов. Что не так с Флешем? Почему Смолтолк никому не нужен? Где современный Гиперкард?

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

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

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

Ну что, кот вылез из мешка (сорян, вы же хотели, чтобы я русский не забывал?), вышел подкаст Бирмана, в котором я рассказываю про Гит. Вообще идите послушайте, а я тут коротенько наброшу.

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

Так вот, я считаю, что консольный Гит это конечно крутое кун-фу, но это сложность ради сложности (смотрите, я собрал корабль в бутылке, причем обе руки были завязаны за спиной), но какого-то особого «глубокого» понимания он не дает. Я офигенно знаю Гит (ну, я так думаю) и пользуюсь исключительно гуем, потому что — ну а нафига страдать?

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

Вторая беда — они всегда показывают прошлое. То есть я ветку уже удалил, но если на экране есть вывод предыдущей git branch -a, то он не обновится. Вот ты и сидишь и спрашиваешь постоянно: где я? кто я? какой сейчас статус? Закоммитить не в ту ветку — одна из самых частых ошибок, потому что ветка нигде не написана.

(мне сейчас скажут, что у них условный oh-my-zsh запрашивает и печатает ветку после каждого нажатия enter, на что я скажу: вы что, ебанутые? ^W^W^W вот мы и начали делать gui колхозными средствами)

Ну и в целом многие вещи исходно требуют графического представления (diff-ы, лог), которое консольному интерфейсу приходится как-то колхозить. Для чего, для кого? Зачем вы страдаете, мистер Андерсон?

Вторая часть моих претензий связана с ебанутостью конкретно git-ового cli.

- Например, команды, которые и не существительные, и не глаголы (`git checkout`/`git branch`).

- Команды, которые полностью меняют свой смысл в зависимости от ключа (`git branch`, git branch -l, git branch -d, `git checkout --merge`).

- Команды, которые полностью меняют свой смысл от аргумента (`git checkout`).

- Неконсистентный словарь (staging, index, cache — это все одно и то же).

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

- Git status, который пишет «You are up to date», даже не сходив в интернет и ничего не проверив! Распределенная система контроля версий боится ходить в сеть!

- Просто идиосинкразия удаления файла через git add

- То, что стеш автоматически не стешится (правда, это во многих gui тоже так)

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

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

В общем, you do you, конечно, но меня раздражает, что эта вот пытка считается чем-то вроде badge of honor, чем-то, чем люди прям гордятся. А на деле самый обычный стокгольмский синдром.

Конечно, это не отменяет того, что какой-то конкретный GUI для гита тоже может быть плохим! Условный VS Code, в котором одна кнопка sync, которая делает и пуш и пулл и черт знает что еще, да, действительно, с такой каши не сваришь.

Но бывают и хорошие ведь! Условный Sublime Merge снимает почти все головняки консоли и при этом не идет против правды и показывает вещи как есть. И это просто хорошо сделанная обертка, даже не переосмысление самой работы с DVCS.

Короче, дискурс «нАдО сИдЕтЬ в КоНсОлЕ» вредит и развитию инструментов, и доступности профессии для новичков. Да и вам самим было бы легче, просто кто-то фильмов про хакеров насмотрелся с зелеными буквами. На терминале свет клином не сошелся, алло!

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

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

Не понимаю, как вы это делаете: я специально пишу посты, в которых рассматриваю проблему максимально объективно и заранее (заранее!) предвижу все возможные ответы и тоже их разбираю. Я ожидаю ноль комментов, потому что ну что там обсуждать, кода я уже в посте все обсудил? И каждый раз ошибаюсь.

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

Я вообще этого не понимаю.

Ну то есть я понимаю, что так было когда-то в прошлом. Но это было тупо!

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

Но вот исполнение прихрамывает. 6 и 9 еще куда не шли, можно притвориться, что это строчные буквы с хвостиком. Можно даже притвориться, что у четверки нога свисает, как у условной q.

Но когда дело доходит до 3, 5 и 8 начинаются жесткие натяжки. У тройки свисает не хвост, а как бы пол-буквы. То есть она не делится четко на часть, которая стоит в строке, и часть, которая свисает. Это выглядит как целая цифра, просто сдвинутая вниз, причем на довольно произвольное расстояние. То же самое с 5.

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

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

Но идея хорошая.

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

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

Так а что за претензии к файлу на 37 тысяч строк-то? Какая разница сколько строк в файле вообще?

Ну вот допустим вы разбили его на 37 маленьких файлов, по 1000 строк. И чего? Код-то никуда не делся. На него все равно надо смотреть, читать, искать в нем.

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

На один экран ни 37 тысяч, ни одна тысяча не поместятся все равно. Сначала мы все дружно смеемся над дядей Бобом и его функциями по 10 строк, а потом сами такие: не ну файл на 37 тысяч это многовато конечно.

Вот если бы вы топили за файлы, которые помещаются на экран целиком, строчек по 40-50, я бы понял. Но если не помещается все равно, то какая уже разница?

Или если бы вы топили за то, чтобы кода в целом было поменьше. Не файл на 37000, а файл на 10000 при том же наборе функций. Не кодбаза на полмиллиона строк, а кодбаза на сто тыщ. Но что-то никто за такое не топит, потому что у каждого на работе у самого свой миллиончик-другой в ИДЕ открыт. А до размера файла легко доебаться, потому что правда не так сильно колет.

Так что, в чем претензия-то?

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

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

Пользователь социальной сети Икс Dany Wander написал, как современные tools for thoughts, наши лучшие кандидаты на велосипеды для ума, очень не ценят внимание пользователя. Проще говоря, у них у всех интерфейс очень шумит.

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

Чтобы не быть голословным, возьмем условный VS Code, который мне ближе. Ты открываешь только что установленную студию, и сразу десяток иконок в левой панели, включая экстеншны, настройки и логин — нахуя мне это перед глазами ВСЕ время? В правом верхнем углу какие-то иконки, статус-бар вообще цветом выделен и там тоже хлама хватает. И у каждого иконка. И это мы еще в редактор даже не заглянули!

То ли дело Саблайм — ни одной иконки in sight, шрифт везде одинаковый, цвета нет. Была бы моя воля — я бы и из дерева файлов иконки убрал, хотя кто-то может быть скажет что это too much.

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

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

Похожий эффект когда-то произвел редактор iA Writer. Это такая печатная машинка, у которой вообще нет интерфейса, нет настроек (ну, тогда, в прошлом), просто пустой лист — садись, пиши. Даже покрутить-попрокрастинировать негде. И люди, которые его пробовали, очень удивлялись: садишься писать и на самом деле пишешь! Причем довольно легко и естественно это получалось. Кто бы мог подумать, если человека не отвлекать, он не будет отвлекаться!

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

Но мы как-то дружно это все забыли! И всякие Notion с Linear, при всей кажущейся вылизанности их интерфейса — это те же самые Word и Jira, только сделанные людьми с визуальным вкусом. Но они все так же больше озабочены тем, чтобы хорошо выглядеть на скриншотах, чем чтобы принести пользователям peace of mind.

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

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

Знаете эти статьи/видосы, где чел: «я сделал процессор из блоков в майнкрафте». Или «я запустил Дум на чистом CSS». Или «я сделал фабрику, которая производит слово ХУЙ в Факторио». Ну и языки всякие странные, brainfuck или тот где надо пиксели цветами красить.

Ну то есть людям не сильно-то нужно удобство. Нужен челленж, да, но и сам факт программирования, что ты что-то сделал, а оно дальше само, тоже что-то делает, получается само программирование нравится. Причем в любых, даже самых неподходящих условиях, иногда даже чем хуже тем лучше. Лишь бы компьютер делал буп-буп.

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

То есть дело не в результате, не в удобстве, не в пользе, не в бизнес-метриках, прости господи. Дело вообще ни в чем.

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

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

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

Такая стартап идея: а что если пойти делать нормальные версии всего?

Типа, взять Ноушн, все под копирку слямзить, но сделать быстрый, с нормальным выделением текста и local-first? Или Слак, но быстрый и с нормальным UI каналов и нормальным логином?

Что будет? Дадут по башке? Придут вообще или не придут? Если нет, то почему никто не делает?

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

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

Вопрос на засыпку. Допустим, вам дали машину времени. Может отправить вас, скажем, в 2004-й год. Без обратного билета. Т.е. остаетесь там насовсем. Но времени готовиться нет, надо решать сейчас. Вы решили лететь.

Вопрос: имея все ваши знания на данный момент и представление о том, как будет развиваться индустрия в следующие 20 лет, что бы вы могли такого сделать в 2004-м, чтобы оставить след? В фантастике это популярный троп — вот только бы иметь машину времени, я бы все там поменял. А что на самом деле? Что бы вы смогли сделать, с позиции маленького человека, родившегося в стране третьего мира?

Биткоин еще не купишь. Но можно его изобрести! Смогли бы? Повторить спеку, реализацию? По памяти? А выложить, привлечь внимание, дать жизнь?

Айфона еще нет, но вы знаете, что он точно будет, и будет иметь оглушительный успех. Что бы сделали с этим знанием?

Самое простое, наверное, это Фейсбук. Уж его-то точно можно написать самому. Но там нетривиальная модель распространения, для которой неплохо бы оказаться в Кембридже, а вы в России. Как поступите?

До ИИ еще далеко, но опять же, может быть как раз тогда и нужно было как-то начинать? Но как?

Фигму смогли бы написать? Остановить уничтожение флеша? Ввести моду на плоский дизайн? Или все смотрели бы на вас как на идиота?

Предложите свой вариант.

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

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

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

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

Люди, убейте себя? Самоуничижение это вообще нездровая фигня какая-то. Почему должно быть стыдно быть человеком? С чего бы?

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

Короче, давно такого смешанного и неточного месседжа не видел.

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

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

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

Со мной такое периодически происходит, и эффект разительный. Недавно поставил SponsorBlock — расширение, которое вырезает «нативочку» _внутри_ видеороликов на Ютубе. До этого жил с полной уверенностью, что блин, да мне не сложно промотать, да я и не обращаю внимания даже, что там рекламируется, может чаю схожу попить.

Но нет. Обращаю. Запоминаю. Против своей воли. И какое же это освежающее чувство — в душе не ебать, о чем там говорили минуту в середине ролика. Мне все равно это не надо.

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

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

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

Короче еще одна идея на миллион: PNG со слоями. Ну то есть не обязательно PNG, условно новый растровый формат в котором есть слои.

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

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

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

Понятно, что почти все растровые редакторы это умеют. Но у них у каждого свой формат — Фотошоп, Pixelmator, кто там еще. А надо именно стандартный, чтобы как PNG или WebP, у всех был и бесплатно. Общий знаменатель.

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

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

Показали, что в Гитлабе у любого токена есть expiration date:

> In GitLab 16.0, any personal, project, or group access token that does not have an expiration date will automatically have an expiration date set at one year

И меня это бесит, да, вот по двум причинам:

Первая: непонятно, что тут пытаются обезопасить и от кого. Допустим, токен у тебя украли. Злоумышленник получает доступ на год. И этот год делает что хочет. Очевидно, много чего можно сделать. Вопрос только в том, что когда токен протухнет, будет ли в этом уже хоть какой-то смысл? В чем польза? Типа ему может не хватить времени придумать какие злодеяения делать? Ладно бы 30 секунд был, но год? Это какой-то очень нерешительный злоумышленник.

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

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

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

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

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

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

Фигма показала редизайн своего UI, называется UI3.

Когда-то Фигма очаровала меня элегантной простотой своего первого интерфейса, UI1. Все на месте, все под рукой, ничего не шумит, разложено аккуратненько. Очень свежо смотрелось на фоне Адобе, где просто каша из наросшего за десятилетия говна, которую никто никогда не чистил. Оказывается, дизайн-тул может выглядеть прилично!

Потом выкатили UI2, и вот к нему были вопросики. Большим решением было поднажать на минимализм и убрать рамки у вообще всего. То есть просто цифры и текст висят в воздухе, иди привыкай, где куда тыкать. Привыкаешь, конечно, а что делать? Например, у слоев в панели слоев убрали стрелочки, которые показывали группы вложенности. Появляются только по запросу (ховеру). Зачем? Почему?

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

Ну и вот теперь UI3. Респект за то, что не боятся все встряхнуть и переосмыслить — без этого рано или поздно получился бы новый Adobe.

Самое заметное изменение — что панели теперь «плавают над контентом», а не прилеплены к краю экрана. Бирман уже успел написать, что «алло, они таким образом больше места занимают, а не меньше». Моя первая мысль была такая же, но потом я пошел рефлексировать дальше.

Что ни говори, а у панелей, плавающих поверх контента, есть некий appeal, привлекательность. Бестолково, но ощущается прикольно. Ощущается, что места больше стало. То есть если твоя цель набрать классов — решение самое верное. Ну и эффект новизны, то-се. Это вторая мысль.

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

Ну и четвертая — про то, что в общем-то печально, что Фигма пошла на поводу у трендов. Раньше она их задавала, а теперь просто «все делают скругления и мы сделаем скругления как у всех». Я, когда на них смотрю, ничего не чувствую (ну, разве что «чет шумит больше обычного»). А потом представляю митинг, где десять дизайнеров выводят этот макет на проектор и у каждого под столом эрекция сразу: ууу скругления!!!

Кстати, весь остальной брендинг так и остался угловатым. Надо бы обновить!

Последня часть про эксперименты. У ребят есть процесс — если есть идея, они ее тестируют. Классная штука, но вещи, которые у них провалились, немного эээ очевидные? Типа, если убрать подписи к полям, пользователи теряются. Если спрятать контролы за Show more, пользователям не нравится. Контролы в попапе не нравятся. Когда контролы прыгают, тоже не очень.

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

Но вроде по итогам они что-то там перегруппировали более логично, так что респект.

Кстати, никого не бесит, что Align left/center/right находятся в свойствах объекта, хотя по сути это инструмент? Теперь еще и Create component & Co уехали в свойства, хотя тоже вроде бы действия. Не вижу, почему бы все не свалить в панель инструментов?

Еще интересно, с плавающими панелями, куда уедут Ruler-ы? Под панели?

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

Но это все придирки, конечно. Лучше все равно ничего нет, да еще и бесплатно.

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

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

Слушал космонавта Александра Хохлова на канале Основа про жизнь на МКС. Очень интересно, очень милый жаргон (например, он человека называет «организм». Надеть одежду на организм), но одна мысль взорвала мне мозг:

Говорит, космонавтам сильно управлять станцией не надо, это обычно делают с Земли. Но если понадобится/приспичит, то можно. Правда, рубки управления или капитанского мостика нет, и управлять можно с любого ноутбука в любом месте станции.

Столовых, значит, у них целых две, а кабины со штурвалом ни одной!

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

Но все равно как-то странно. Непривычно, что ли. Логично. Но странно.

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

Дивный новый мир.

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

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

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

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

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

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

Так Никита узнал, что другие люди принципиально не похожи на него, и это не их ошибка. 39 годиков.

На компьютерные интерфейсы выводы уже сами распространите.

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

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

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

Но это же очевидно не так! Во-первых, пойди эти однобуквенные ключи загугли (привет башу вообще). Во-вторых, если твой репозиторий раскорячило, то как ты объяснишь гуглу, что ты делал и как пришел к такой жизни? Reflog же ему не покажешь. Ровно как и ЧатуГПТ. Надо именно тыкать палочкой и разбираться в конкретном случае, а роботы пока так не умеют. Гит кажется вообще один из самых показательных примеров штуки, которая не гуглится.

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

Так что можете пока спать спокойно. Роботы вашу работу не отберут.

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

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

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

Я думаю, что ДА.

Разумеется, ситуации всяких форс-мажоров типа «диарея», «бабка на фоне голая» или «подавился, когда пытался проглотить банан целиком» сразу отбрасываем — они разовые и никто на вас за три минуты без камеры косо не посмотрит. Речь именно о регулярном общении, состоянии по дефолту.

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

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

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

Аргумент — ну это же надо одеваться, краситься — ну так да. А что вы, целый день работаете в трусах и с немытой головой? Вам самим-то себя не жалко?

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

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

В общем, коллеги, не могли бы вы включить камеру?

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

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

Ппц, написал в Твиттере что часто вставляю английские слова в русскую речь и поел говна на лопате. «Надо стараться так не делать», «всегда есть альтернатива», «забыл свои корни», «русский язык богаче», «нужно прилагать усилия».

Но ведь нет! Я использую английские слова не потому, что не знаю русских, а потому что английские — в данном случае, для данной задачи — короче, точнее, звонче.

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

Все началось со слова attitude, но в комментах накидали: и cohesion, и privacy, и loneliness/solitude, и landlord, и sibling. Не то чтобы по-русски про это совсем не скажешь, но покружить, объясняя, придется. «Эй, тимлид, чего молчишь?» — «Ща, погодите, пытаюсь фразу „Когда тикет закончишь, сервера простаивают, тебя еще три пулл-реквеста ждут, выкатывай сборку на продакшн“ на русский перевести. Минут пять еще дайте мне».

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

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

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

Конечно понимают, моя дорогая. Причем сразу на нескольких языках.

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

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

Забавная ситуация произошла пару постов назад, в посте про Гришку. Мне написали: ууу, вконтактщики/телеграмщики, они же программировать не умеют, смотри, вот у них класс ChatActivity на 40 тысяч строк, его даже Гитхаб показывать отказывается.

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

Тот же комментатор (Denis) пишет:

> Дядь, а дядь, а чем ты предлагаешь парсить 37к строк чтобы оно еще синтаксис осиляло подсвечивать?

> [...] вот то, что он не может запарсить 2мб сорцов в 1 файле - ну тут сложно их в этом обвинять

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

И это на том же компьютере! Ну сколько можно делать скидку на «это же браузер, он маленький, ничего не умеет и ему все тяжело дается?». Этот бразуер запущен на том же ЦПУ, имеет доступ к той же памяти, сфига ли для него вдруг два мегабайта — это неподъемный вес? Он блин в кеш процессора помещается целиком, алло!

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

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

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

Блин, отличный тут (это как твит, только в Мастодоне) показали сегодня.

Короче, чел нашел реализацию Pokedex от нашего Гришки (это не панибратство, ник у него такой), которая на чистой джаве и андроидных API и работает в сто раз быстрее версии на Композе и весит в 10 раз меньше.

А дальше его немножко заклинило, потому что он видимо свято верит в то, что писать код надо так как все, а не как хочется. Пишет:

> Someone posts an extremely spicy implementation of a basic app on r/androiddev that essentially says, "All recommended best practices for Android dev are trash, just use Java and ditch all of Google's compat APIs"

> Everyone laughs at this person for being a crank

> Turns out: They are the author of mastodon-android!

> It would be nice if Mastodon's Android client weren't written and maintained by a crank who is unable to collaborate effectively or distinguish between good and bad dependencies.

То есть видите, да? С одной стороны, Гришкина реализация существует и работает гораздо лучше. Это как бы факт.

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

И даже списать под шумок пример с Pokedex — ха-ха, это все очень мило, но пример-то игрушечный, no way это смаштабируется на реальное приложение — тоже не получается, потому что есть Mastodon for Android.

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

Грустная история, но полезная. Жить с ощущением, что если Композ и Котлин существуют, то значит для этого есть хорошая причина — можно, но до первого столкновения с реальностью.

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

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

> he said he wouldn't tolerate anyone "insulting" grishka, and then he blocked me, so...

Но это понимаешь, только когда сам что-то попробуешь сделать.

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

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

Как популярный блоггер на своем сайте "This message is not supported in your version of Telegram. Please update to the latest version" (ой, кажется ссылка не вставилась, скажите там Карлсону, путь Дурову передаст).

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

Ответ простой, но их несколько. Вот один: потому что могу. Это мой сайт, алло.

Еще один ответ: потому что я не хочу, чтобы люди относились к нему слишком серьезно. Это не книга же, это просто еще одна страничка в интернете, вы чего. Какая разница, какого она цвета. Не нравится — ну пойди найди другую. Если вас всех таких серьезных послушать, то мне вообще надо пейперы в ЛаТеХе публиковать пойти. Но только кому от этого хорошо будет?

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

Тут недавно опять была драма с Humane Ai Pin, много слов было вылито во все стороны, а по-моему все сводится к очень простой схеме: если сделать говно, то никакое количество маркетинга и денег не поможет. А если сделать что-то хорошее, то хоть из гаража продавай и заказы по вотсаппу принимай. Главное что ты делаешь, а не как.

И еще один ответ: потому что мне скучно. Ну вот сделаю я еще один сайт с черным текстом на белом фоне. И чего? Мир даже не заметит.

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

И еще: потому что желтый это тепло, солнце, радость. А черный это гроб, кладбище, могила. Куда вы пойдете с большим удовольствием?

В общем, совет тебе, человек, который думает о том, чтобы открыть в интернете свой сайт: будь странным. Нормальных и так хватает.

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

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

Чел дакдакгочит: how to import font in css. Выкладывает скриншот с комментарием: i am a senior engineer btw. Типа, юмор в том, что даже мы, эксперты, до сих пор ищем банальные вещи.

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

Серьезно, что вот это такое?


@font-face {
font-family: 'EntezareZohoor2';
src: url('fonts/EntezareZohoor2.eot'), url('fonts/EntezareZohoor2.ttf') format('truetype'), url('fonts/EntezareZohoor2.svg') format('svg');
font-weight: normal;
font-style: normal;
}


Че за блядь собачка? Почему в src еще добавлен url, да еще со скобочками? А через пробел формат еще? Зачем еще всякий шлак про шрифт указывать, который и так внутри наверняка написан?

Никто же не гуглит, условно, font-family: San Francisco, Arial, sans-serif. Потому что это просто, логично и легко запомнить. Или там padding: 10px 10px 10px 10px;

Почему нельзя написать, условно,


@import-font fonts/EntezareZohoor2.ttf;


Как-то сразу и не нужно ничего гуглить стало, да?

А все потому, что синтаксис — это тоже эргономика.

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