Вот так вот просто и красиво подошли к важнейшей проблеме с другой стороны. Вспоминаю, сколько мы сил и времени потратили когда-то на внедрение монады Either, которую отдел так и не принял всем сердцем.
Напомню прекрасный доклад Артёма Кобзаря и Димы Махнёва — (не|ну)жная монада Either на практике и в теории
И напомню, что ошибки и исключения — это принципиально разные сущности.
Напомню прекрасный доклад Артёма Кобзаря и Димы Махнёва — (не|ну)жная монада Either на практике и в теории
И напомню, что ошибки и исключения — это принципиально разные сущности.
Мы считаем, что исключения должны редко использоваться в рамках обычной работы программы: они должны быть зарезервированы для непредвиденных событий. Предположим, что неперехваченное исключение завершит работу вашей программы. Спросите себя: «Будет ли этот код по-прежнему выполняться, если я удалю все обработчики исключений?» Если ответ «нет», то, возможно, исключения используются в неисключительных обстоятельствах.
Dave Thomas and Andy Hunt: The Pragmatic Programmer
❤16🔥7
Forwarded from artalog (artalar)
https://errore.org/
Кто-то запарился и сделал огромный лендос. Что же, я только всеми лапами за! И вам советую.
UPD: автор запилил сравнение
Кто-то запарился и сделал огромный лендос. Что же, я только всеми лапами за! И вам советую.
UPD: автор запилил сравнение
errore.org
Errore - Go-style Error Handling for TypeScript
Return errors instead of throwing. Unions instead of tuples, instanceof instead of nil checks. Type-safe, zero runtime overhead.
🔥19👍10❤3💩2👀2
В поисках самого лучшего эмулятора терминала
Как подметил Тонский, пока мы пытались сделать хорошие интерфейсы — зумеры ушли в консоль. А для консоли нужен эмулятор терминала, чтобы вывозить все эти реакт-приложения (что? да!)
Родной эмулятора терминала macOS — отлетает сразу, у него нет эскейп-последовательностей на shift + enter (а нам надо! мы же хотим в клод коде промпты писать!). И не круто же, из коробки белый фон. Мы такое не уважаем, эмулятор терминала должен всем показать, что ты крутой хакер.
iterm2 дефолт, но конечно достал. Не быстрый, из коробки пользовать им невозможно (ну реально раздражает каждый раз после установки идти проходить квест по настройке эскейп последовательностей в диких менюшках). Ну и просто старый. Фу. Но куда бежать?
Ghostty. Быстрый (написан на zig), нативный, с простым конфигом. Ну просто лепота. Но есть одно но, большинство линуксов ничего о нём не знает. И когда вы подключитесь по ssh и откроете клод код — shift + enter работать не будет. В ghostty это понимают и предлагают автоматический режим для закидывания terminfo на любую машинку куда вы подключаетесь. Даже два режима: прокидывай terminfo, либо автоматически подменяй $TERM на
Kitty Тоже быстрый, но не такой нативный и красивый как Ghostty. Супер конфигурируемый, мощь. Проблема с terminfo присутствует.
Warp. AI во все поля. Чтобы зайти — нужно создать в облаке учётку и залогиниться. Это я не понял и не уважаю. Не по нашему это, не по хакерски. Дизлайк, отписка.
Пока остановился на Ghostty за красоту. Но релизы там какие-то ну совсем редкие. Наверное дальше пойду на Kitty
Как подметил Тонский, пока мы пытались сделать хорошие интерфейсы — зумеры ушли в консоль. А для консоли нужен эмулятор терминала, чтобы вывозить все эти реакт-приложения (что? да!)
Сначала немного теории.
Что такое эмулятор терминала? Это программа, которая эмулирует древнюю железку — терминал. Например вот VT100. То, что в обиходе называет терминалом, на самом деле эмулятор такой железки.
Что такое эскейп последовательности? Нам нужно отправить в шелл или в программу, запущенную в консоли комбинацию клавиш, которую мы нажали. Но у нас нет никакой возможности, кроме как закодировать это набором символов. Как-то так `^[b` для option + left. Попробуйте сами — нажимаем `ctrl + v` и дальше нажимаем нужную нам комбинацию клавиш.
Проблема в том, что нет нормального стандарта на эскейп последовательности. Если в базовых option+left и т.д. все ещё более менее совпадают, то shift+enter кто во что горазд кодирует. Как система понимает, с каким эмулятором она работает? Знание об этом храниться в $TERM. Например, для terminal и item2 это будет `xterm-256color`. Для других терминало может быть другое значение. В системе есть целый справочник `/usr/lib/terminfo` где сказано, как читать эскейп последовательности для вашего эмулятора терминала.
Родной эмулятора терминала macOS — отлетает сразу, у него нет эскейп-последовательностей на shift + enter (а нам надо! мы же хотим в клод коде промпты писать!). И не круто же, из коробки белый фон. Мы такое не уважаем, эмулятор терминала должен всем показать, что ты крутой хакер.
iterm2 дефолт, но конечно достал. Не быстрый, из коробки пользовать им невозможно (ну реально раздражает каждый раз после установки идти проходить квест по настройке эскейп последовательностей в диких менюшках). Ну и просто старый. Фу. Но куда бежать?
Ghostty. Быстрый (написан на zig), нативный, с простым конфигом. Ну просто лепота. Но есть одно но, большинство линуксов ничего о нём не знает. И когда вы подключитесь по ssh и откроете клод код — shift + enter работать не будет. В ghostty это понимают и предлагают автоматический режим для закидывания terminfo на любую машинку куда вы подключаетесь. Даже два режима: прокидывай terminfo, либо автоматически подменяй $TERM на
xterm-256color (нам не катит, мы же ищем shift + enter). Если вы готовы немножко помусорить на удалённых машинках, то всё ок.Kitty Тоже быстрый, но не такой нативный и красивый как Ghostty. Супер конфигурируемый, мощь. Проблема с terminfo присутствует.
Warp. AI во все поля. Чтобы зайти — нужно создать в облаке учётку и залогиниться. Это я не понял и не уважаю. Не по нашему это, не по хакерски. Дизлайк, отписка.
Пока остановился на Ghostty за красоту. Но релизы там какие-то ну совсем редкие. Наверное дальше пойду на Kitty
❤19🥱9🔥2👍1🤮1
Кто хочет Маттео Коллину к себе в команду практически бесплатно? Он есть у меня у себя! Ну не весь, конечно, а только в виде своих лучших практик.
https://adventures.nodeland.dev/archive/my-personal-skills-for-ai-assisted-nodejs/
tl;dr
https://adventures.nodeland.dev/archive/my-personal-skills-for-ai-assisted-nodejs/
tl;dr
npx skills add mcollina/skills
adventures.nodeland.dev
My Personal Skills for AI-assisted Node.js Development
Hey Everyone! I've been working on something I want to share with you. As you know, I've started relying on AI assistants to do most of my coding, but I...
🔥45❤7👍7😁4💊2🤔1
Уже пару месяцев как присоединился к тренду не писать код руками (совсем). Пока ещё не перевёл агента на полный цикл «посмотри какие у меня там таски в трекере и сделай», но иногда, во время дежурств и правда получается ваншотить: входящее обращение от пользователя о багах превращается в прекрасно оформленный PR, в котором и придраться не к чему. А как HAR разбирает — так просто песня. А можно ещё и рядом репозиторий бэкенда подложить, ммм.
В рабочих задачах это всё ещё куча циклов брейшторма, ревью и откатов назад. Но код я не трогаю. Общаюсь в чате, в конце прошу оформит PR. Возможно, будь у меня дикий «безлимитный» тариф я бы и попробовал пожить в режиме ральф лупа, но имеем, что имеем. Нужно быть осторожным, чтобы Опуса хватило на месяц. Потому никаких запущенных параллельно агентов и x10 продуктивности. x3-x4 максимум (но плохо чтоль? хорошо!)
Удивительно удачно это наложилось на бессонные ночи и отсутствие личного времени. Буквально спасло меня от сваливание в андерперформера (ну или от смерти от истощения, хе-хе).
С одной стороны «Не можешь победить — возглавь». С другой — а зачем побеждать? Я пишу код уже без малого 30 лет и сам процесс написания кода никогда не был для меня источником удовольствия. Гораздо интереснее всегда было само комплексное решение задачи. И вот здесь (пока) ничего не меняется. Ну кроме того, что это стало веселей
Я думаю, что кодирование постепенно уйдёт в прошлое. И возможно пугающе быстро. Как когда-то исчезла профессия переноса алгоритмов на перфокарты. Останутся любители писать код вручную как хобби. Так же как сейчас кто-то пишет на функциональных языках для удовольствия. Да и я сам больше всего удовольствия получал от ассемблера (прямо как водить машину с ручной коробкой передач. Чистый кайф)
Останется ли человеко-читаемый код? Вот этот вопрос гораздо интересней. И пока никаких прогнозов тут дать не могу. Будут ли программы писаться сразу в машинных кодах? Сможет ли человек это раздебажить самостоятельно? Хорошие вопросы.
Что делать со всем этим? Я думаю, что стоит качаться в специалиста максимально широкого профиля. Швецы-жнецы с дудкой за пазухой — вот кто продержится дольше всех.
Ну а может завтра нам выкатят такие цены за инференсы, что забудем всю эту историю как страшный сон и снова будем код набивать.
В рабочих задачах это всё ещё куча циклов брейшторма, ревью и откатов назад. Но код я не трогаю. Общаюсь в чате, в конце прошу оформит PR. Возможно, будь у меня дикий «безлимитный» тариф я бы и попробовал пожить в режиме ральф лупа, но имеем, что имеем. Нужно быть осторожным, чтобы Опуса хватило на месяц. Потому никаких запущенных параллельно агентов и x10 продуктивности. x3-x4 максимум (но плохо чтоль? хорошо!)
Удивительно удачно это наложилось на бессонные ночи и отсутствие личного времени. Буквально спасло меня от сваливание в андерперформера (ну или от смерти от истощения, хе-хе).
С одной стороны «Не можешь победить — возглавь». С другой — а зачем побеждать? Я пишу код уже без малого 30 лет и сам процесс написания кода никогда не был для меня источником удовольствия. Гораздо интереснее всегда было само комплексное решение задачи. И вот здесь (пока) ничего не меняется. Ну кроме того, что это стало веселей
Я думаю, что кодирование постепенно уйдёт в прошлое. И возможно пугающе быстро. Как когда-то исчезла профессия переноса алгоритмов на перфокарты. Останутся любители писать код вручную как хобби. Так же как сейчас кто-то пишет на функциональных языках для удовольствия. Да и я сам больше всего удовольствия получал от ассемблера (прямо как водить машину с ручной коробкой передач. Чистый кайф)
Останется ли человеко-читаемый код? Вот этот вопрос гораздо интересней. И пока никаких прогнозов тут дать не могу. Будут ли программы писаться сразу в машинных кодах? Сможет ли человек это раздебажить самостоятельно? Хорошие вопросы.
Что делать со всем этим? Я думаю, что стоит качаться в специалиста максимально широкого профиля. Швецы-жнецы с дудкой за пазухой — вот кто продержится дольше всех.
Ну а может завтра нам выкатят такие цены за инференсы, что забудем всю эту историю как страшный сон и снова будем код набивать.
👍65💩29❤21🔥9🤡7😁5🤔5💊4👎3💯2✍1
Раз уж я так не люблю mcp, то начал с себя, удалил их все, а там, где было нужно для корпоративного и прочего — напилил скиллами поверх курла.
И стало хорошо.
Ну не хочу я тратить контекст, не хочу жонглировать пачкой локальных сервачков. Да, mcp еще нанесут ответный удар через lazy стиль. Но пока мне без них лучше, чем с ними.
И стало хорошо.
Ну не хочу я тратить контекст, не хочу жонглировать пачкой локальных сервачков. Да, mcp еще нанесут ответный удар через lazy стиль. Но пока мне без них лучше, чем с ними.
👍22💊10🤡5💯4🔥3👏2
А ещё мы недавно разобрали полирепозиторий нашей проектной матрешки. Как мы жили после выезда в опенсорс?
Был OSS репозиторий, который затягивался в closed source проект и добавлялись экстеншены из их собственного репозитория. Красиво, надёжно, но сложно и очень медленно в итерациях. 1 PR превращался зачастую в 6 (с полным CI циклом). В том числе сложно для ai, как не объясняй, что вот в этой папочке еще один git лежит и надо это учитывать.
В итоге продержавшись несколько лет мы вернулись в монорепу с зеркалом oss папки наружу.
И стало хорошо (разработчикам и ai).
Пришлось только pnpm прикрутить. И смириться, что опенсорс — это зеркало.
Был OSS репозиторий, который затягивался в closed source проект и добавлялись экстеншены из их собственного репозитория. Красиво, надёжно, но сложно и очень медленно в итерациях. 1 PR превращался зачастую в 6 (с полным CI циклом). В том числе сложно для ai, как не объясняй, что вот в этой папочке еще один git лежит и надо это учитывать.
В итоге продержавшись несколько лет мы вернулись в монорепу с зеркалом oss папки наружу.
И стало хорошо (разработчикам и ai).
Пришлось только pnpm прикрутить. И смириться, что опенсорс — это зеркало.
❤9👍4
Deep Research в Перплексити пока ещё молодец, Claude значительно медленней и хуже справляется не справляется.
Как я понимаю, Перплексити и дальше будет развивать тему «AI поиска для профессионалов» вместо «AI поиска для всех», в которой их уже успешно теснят сами поисковики. Но насколько их хватит — вопрос открытый.
Кстати. В @gravity-ui/charts патч уже сделали (это наша опенсор-либа которой мы успешно заменили Highcharts)
Как я понимаю, Перплексити и дальше будет развивать тему «AI поиска для профессионалов» вместо «AI поиска для всех», в которой их уже успешно теснят сами поисковики. Но насколько их хватит — вопрос открытый.
Кстати. В @gravity-ui/charts патч уже сделали (это наша опенсор-либа которой мы успешно заменили Highcharts)
👍25🥱9❤3🤔3👌1
С трудом выдерживаю поток новостей. Решил (как и многие сейчас наверное) автоматизировать дайджесты. OpenClaw тащить не хотелось, навайбкодил простые скрипты на Питоне — работает.
Поднял VPS (2 vCPU, 4 GB RAM):
- Telethon парсит телеграм каналы
- feedparser собирает RSS из Hacker News, Habr, dev.to, TechCrunch
- DeepSeek v3.2 через Yandex AI Studio (вот и грант пригодился) суммаризирует и оформляет
- Плюс тот же DeepSeek переписывает в подкаст-скрипт
- Yandex SpeechKit озвучивает
И всё это летит по крону в телеграм в виде текста и аудио.
Нужно добавить побольше источников, реддитов всяких и прочее, будет ещё приятнее. Ну и промпты покачать.
Делитесь, а как вы парсите новости?
Поднял VPS (2 vCPU, 4 GB RAM):
- Telethon парсит телеграм каналы
- feedparser собирает RSS из Hacker News, Habr, dev.to, TechCrunch
- DeepSeek v3.2 через Yandex AI Studio (вот и грант пригодился) суммаризирует и оформляет
- Плюс тот же DeepSeek переписывает в подкаст-скрипт
- Yandex SpeechKit озвучивает
И всё это летит по крону в телеграм в виде текста и аудио.
Нужно добавить побольше источников, реддитов всяких и прочее, будет ещё приятнее. Ну и промпты покачать.
Делитесь, а как вы парсите новости?
👍28🔥13😁5❤3👀1
Audio
Звучит это как-то так. Не бог весть что, конечно, но сойдёт послушать, пока гуляю с коляской.
Может и оторву потом. Время такое, надо жечь токены исмеяться экспериментировать.
Может и оторву потом. Время такое, надо жечь токены и
💩16❤5👍5