gram news
Аватар канала Горшочек варит

Горшочек варит

@gorshochekvarit

Про фронтенд и около, над чем работаю, разборы, мысли разные Пишу для истории и тех, кому интересно как получается то, что у меня получается // Рома Дворнов (@rdvornov)

2,300подписчиков

Открыть канал

Последние посты

  • Горшочек варит

    6 мар., 12:29

    Не люблю заниматься предсказаниями. Но прогнозы вокруг AI стали настолько навязчивыми и при этом, как мне видится, поверхностными, что я решил написать свой. И он лежит немного в стороне от популярных вроде «AI всех заменит» или «весь код скоро будет писать AI».Немного о том, что я наблюдаю в своём «пузыре».— Всё больше скептиков и критиков AI, которые ещё вчера говорили, что это баловство и «не трушно», начинают активно им пользоваться. Причём часто делают вид, будто никогда и не критиковали. А иногда начинают «бегать» и всем вокруг показывать насколько это круто. Есть те, кто «бегал» и раньше — теперь они бегают ещё быстрее. Хотя большинство и так это видит: нехватки «бегающих» никогда не было, они вещают из каждого утюга. Есть и те, кто посередине — потихоньку въезжают или делают действительно интересные вещи с AI.— Постепенно складывается консенсус: использование AI
    MediumAI and the Coming CorrectionA forecast for the next year (2026)
    2,6203197333Открыть в Telegram
  • Горшочек варит

    19 янв., 07:36

    Давно не писал про CPUpro и мои продвижения в профилировании. Я не перестал этим заниматься — скорее наоборот. За это время очень многое поменялось, и я продвинулся дальше, чем ожидал.Несколько месяцев назад я сделал, в какой-то степени, безумный шаг. Я стал записывать каждую аллокацию как отдельное событие. Делал это и раньше, но теперь нашёл способ делать это, не убивая рантайм. Однако этого оказалось недостаточно — нужно было ещё научиться работать с новым классом данных. В итоге я значительно переписал CPUpro: его модель обработки и сам подход к работе с данными.Параллельно я закончил ряд экспериментов и сделал прототипы в смежных направлениях. Как оказалось позже, это были необходимые и важные компоненты всей истории. Хотя, признаться, в моменте я о них так не думал. В итоге пазл сложился.В середине декабря я смог написать свой вижен — документ, который описывает общую
    MediumWhy Profiling Leaves You GuessingFrom isolated measurements to understanding execution as a process
    2,63035861Открыть в Telegram
  • Горшочек варит

    15 янв., 02:01изменён

    Сегодня сделал наблюдение. Оно выглядит простым, но становится некомфортным, если посмотреть на него повнимательнее:Стабильность и объективность сложных систем возникают из структурированного сосуществования конфликтующих оценочных перспектив.Если вы подумали про инженерные системы – вам не показалось. Если вы подумали про институты – вам не показалось. Если вы подумали про человеческие формации любых форм и масштабов – вам не показалось. Это универсальный принцип.https://medium.com/@rdvornov/stability-comes-from-tension-fa341c9bb719
    MediumStability Comes From TensionIf removing tension feels like improvement, you are probably breaking something important.
  • Горшочек варит

    17 нояб. 2025 г., 20:15

    Занятный арт получается, в попытках нарисовать полезный граф переходов в байткоде. А еще с удивлением узнал, что часть D3 можно применять для канваса, например, укладка графа это на его API (d3.forceSimulation), но не только. Сам бы не стал использовать такую комбинацию, но есть кому подсказать ;)А может быть вы знаете хорошие примеры отображения флоу исполнения программы, где видно наиболее частые переходы?
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит
  • Горшочек варит

    12 нояб. 2025 г., 14:36

    Я стараюсь не "общаться" с LLM на русском, потому что проще описывать и читать технические моменты на английском, без путаницы в терминах, без кривых объяснений и проблем перевода. А еще LLM часто выдают странный сленг, местами переходящий в кринж. Уж не знаю на каких текстах обучают модели, что они выдают такое.Но иногда все таки вопрошаю на русском, когда надиктовываю по быстрому на ходу или нужно описать что-то очень малопонятное, для чего сложно подобрать слова на любом языке. И они выдают интересные термины и формулировки. На русском это особенно цепляет, потому профессиональные тексты читаю практически только на английском (если исключить "блоги"), и тут получаешь не англицизмы, а принятые в академической литературе конструкции, которые редко где встретишь, если не читать научные работы из прошлого века.Так вот, моё слово дня – "низведение" (lowering, подходит и для
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит
    3,2901773Открыть в Telegram
  • Горшочек варит

    1 нояб. 2025 г., 00:20

    Написал 7 спек для одного нового проекта со вчерашнего вечера. Это вот такие документы, 5-18кб текста, где расписаны все детали. Планировал расписать лишь 2 спеки, а остальные 5 появились уже по ходу. 3 из них – это совсем новые идеи, о которых даже не думал пока не начал работать над документами, и пока в контексте – проработал и расписал. Еще одна – решил заодно описать идею, над которой не планировал работать, из разряда nice to have, она не очень сложная в реализации, но провалился в проектирование на пару часов. И еще одна скорее систематизация, но тоже оказалось полезно.И вот так одно за другим тянется. Стоит лишь войти во вкус. А самое удивительное, насколько хорошо получилось проработать, еще не имплементировано – а мне уже нравится как все работает. Хотя насколько хорошо еще предстоит выяснить :)Но сейчас одназначно можно сказать, что получилось весьма быстро проработать
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит
    2,8201763331Открыть в Telegram
  • Горшочек варит

    1 нояб. 2025 г., 00:03

    А еще приятно получать комплименты от агентов про проработанность после часов работы над спеками, хотя этого не просишь. Более проработанные спеки = лучше анализ для планирования и имплементация. Ну и больше комплиментарных комментариев 🙂Вот я специально скопировал с моим небрежным промптом, чтобы показать что я не просил оценки спек и самих фич (возможно "cool features" повлияло, но не думаю что сильно). От агента лишь требовалось, чтобы новые спеки были учтены в планировании предстоящих работ, и только – то есть расширение контекста и горизонта планирования. А он (Claude 4.5) вон чего.
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит
    1,950954431Открыть в Telegram
  • Горшочек варит

    31 окт. 2025 г., 23:54изменён

    То что наш образ (опыт) работы с приходом ИИ поменяется – это правда.Я все больше занимаюсь тем, что проектирую и пишу спеки/дизайн документы, а имплементацию отдаю агентам. Конечно, я делаю ревью, инструктию и направляю, заставляю переделывать, провожу интервенции в процесс написания кода, через рефакторинг руками. И при всех недостатках текущих моделей/агентов, и издержках с этим связанных – я замечаю, такой подход к процессу более эффективный и быстрый. Может казаться, что самому руками быстрее, и в каких то задачах действительно так. Но в основном, наоборот руками медленее – хотя может восприниматься по другому. Но чтобы получалось действительно эффективно, нужно учиться и нарабатывать опыт взаимодействия с ИИ.Раньше я кидался реализовывать самостоятельно, экспериментируя и подбирая решения по ходу. Теперь описываю сырую идею (идеи) ИИ и затем в несколько раудов мы доводим до
    1,8602577331Открыть в Telegram
  • Горшочек варит

    16 сент. 2025 г., 11:53

    Mozilla проводит опрос для выявления интереса использования ReadableStream в fetch в качестве тела (body) запроса, для поточной передачи данных. Я писал об этой фиче сколько то месяцев назад, поддерживается в Chromium, Node.js, Deno и Bun. А вот в Firefox и Safari пока такой поддержки нет. Надеюсь результаты опроса подтолнут разработчиков поскорее это имплементировать, тогда дело останется лишь за Safari.Призываю пройти опрос и выразить свой интерес 🙂 Это действительно полезная фича, которая должна стать кроссбраузерной.Прямая ссылка на опрос (короткий, на 1-2 минуты)
    TelegramГоршочек варитПередача стрима через fetch() Так как можно получать данные из fetch() в виде стрима, кажется, что должно быть можно и отправлять. Если посмотреть документацию на MDN, то можно обнаружить, что в body можно передавать ReadableStream: The request body contains…
  • Горшочек варит

    22 авг. 2025 г., 17:21

    Мой первый патч в V8 – только что смержен! 🥳Я все еще разбираюсь в процессах, и то что первый патч дошел до мержа – большое для меня свершение. Патч небольшой (одна строка, может поэтому и доехал первым), но исправляет неприятный баг.Когда записывается V8 лог с флагом --log-deopt, то помимо добавления записей о деоптимизациях лог, V8 также выводит сообщения о деоптимизациях в консоль (stdout). Так быть недолжно, ведь вывод в консоль – это трейсинг. Но дело, конечно, не в нарушении разделения функциональности, а в том, что так захламляется консоль и смешивался с выводом профилируемой программы. Могло доходить до того, что приходилось выбирать: либо лог деоптимизаций, либо работающий скрипт.Этот баг раздражал меня несколько лет, и я не знал что с этим можно сделать. Но после некоторых успехов работы с кодовой базой V8, я почувствовал в себе уверенность, что теперь то получится
    3,1207650151183Открыть в Telegram
  • Горшочек варит

    15 авг. 2025 г., 16:19изменён

    Speeding up the JavaScript ecosystem - SemverНесколько дней назад вышла очередная статья от Marvin Hagemeister из его серии про ускорение экосистемы JavaScript, которую он ведёт аж с 2022 года.Наткнулся на неё случайно: просматривал, кто недавно лайкнул CPUpro на GitHub, увидел Marvin'а, зашёл в его профиль, оказался на его сайте — и там обнаружил совсем свежую публикацию. Решил почитать и уже в первом абзаце увидел ссылку на cpupro, что приятно удивило 😊Если честно, я ожидал, что автор покажет как использовал CPUpro для анализа, но в статье нашлось лишь два похожих скриншота из CPUpro — топ по пакетам (до и после). Кроме того, Marvin применил инструментирование, чтобы определить горячие точки в коде. Не имею ничего против инструментирования — сам нередко использую. Да и это позволило ему собрать бенчмарк для дальнейших экспериментов. Но с CPUpro и V8 log в таких случаях
    marvinh.devSpeeding up the JavaScript ecosystem - SemverDuring the installation process, package managers run a bunch of semver comparisons. The semver library used in npm, yarn and pnpm can be made around 33x faster.
    2,8002751Открыть в Telegram
  • Горшочек варит

    8 авг. 2025 г., 17:46изменён

    Jora Making Me CrazyЕще одна статья, в этот раз не моя, автора не знаю. Наткнулся на нее несколько недель назад, просматривая рефералы на одном из репозиториев. Сначала подумал, что это очередной авто-блог генерируемый AI. Но оказалось, что очень даже человеком написаная статья, но отрефайненная через AI.Почему я уверен что написана человеком? Во-первых, тема, мягко говоря, не самая хайповая 😉 Во вторых, описывается не "фасад", то есть суммаризация первого, что попадается по теме – а фичи, которые я намеренно не офишировал, но и не прятал и их можно найти, если хотя бы прочитать ридми проектов. В третьих, явно на каком-то опыте написано, и примеры, и скриншоты, и вывод из консоли — не вызывает сомнения что это что-то персональное.Отдельно порадовало, что автор откопал малоизвестный jora-cli, который я значимо обновил в феврале (и не написал об этом). Так вот, если вам, например,
    hrbrmstr's Daily DropDrop #667 (2025-06-19): Jora Making Me CrazyToday’s Drop is all aboutJora: a versatile search tool designed for efficient information retrieval and organization in data files. It supports easy query writing, handles errors gracefully, …
  • Горшочек варит

    8 авг. 2025 г., 17:08изменён

    A surprisingly simple trick: Converting FormData to multipart/form-data string and back using ResponseПока в отпуске, не очень получается писать — поэтому делюсь еще одной статьей, которую я собрал на основе поста в канале, но забыл об этом написать (написал статью еще в декабре). А именно, про неожиданное открытие возможности конвертации в multipart/form-data строку и обратно с помощью Response. Я так и не смог найти чего-то подобного, зато нашел множество монструозных инструкций, которые я бы не стал повторять.В общем маленькая практическая статья, про скрытые (побочные) возможности современных API.
    DEV CommunityA surprisingly simple trick: Converting FormData to multipart/form-data string and back using ResponseWhile working on another article about converting various values into ReadableStream, I stumbled upon...
    1,6101221Открыть в Telegram
  • Горшочек варит

    5 авг. 2025 г., 23:02изменён

    Настал тот день, когда я создал все ишью про баги в профилировании V8 связанные со стеком вызова и локациями. Всего 6 багов, которые я находил и изучал с начала мая. Мне также было важно иметь инструменты для выявления и отображения проблем, поэтому я работал и над методами визуализации (в CPUpro). А так же, погружался в матчасть, учился (и все еще учусь) описывать такие "явления" в правильных терминах, и чтобы было максимально полезно как в моменте, так и на перспективу. В общем, большое маленькое достижение.Основной документ исследования, с деталями и выкладками: V8 profiling issues: Call stack capturing (18 страниц!)Список багов (про первые два я недавно писал):- Missing stack frame for Ignition functions at stack top (PC) - Incorrect PC for Ignition frames at stack top - Missing stack frame for Sparkplug functions at stack top (PC) - Missing position tables for Sparkplug in V8
    Google DocsV8 profiling issues: Call stack capturingV8 profiling issues: Call stack capturing August 6, 2025 – Roman Dvornov <romandvornov@microsoft.com> This document presents findings from the development of CPUpro and a broader exploration of V8’s profiling internals. The research highlights fundamental…
    1,85050111Открыть в Telegram
  • Горшочек варит

    5 авг. 2025 г., 11:59

    Я экспериментировал с Playground. В нем тоже нельзя вставлять супер большие сообщения. Но есть отдельная секция Prompt messages, куда можно добавить без проблем. Впрочем, результаты оказались посредственными, модели теряются когда нужно сделать большую сложную выборку из большого текста. И к тому же очень медленно работают, когда контекст под завязку (хотя не факт, что проблема в самих моделях). Я думаю, если попросить найти какой-то факт по тексту, то может что-то и выйдет. А вот если нужно вычленить несколько десятков килобайт текста, который идет не подряд — то это уже невыполнимая задача. В итоге я вручную выбрал посты где затрагивалась заданная тема. Вышло 68Kb текста или 16k токенов.С меньшим размером текста модели стали работать заметно быстрее. Однако результат получался далеко даже от приемлемого. Я просил генерировать на английском, переводя на лету с русского. В какой-то
  • Горшочек варит

    5 авг. 2025 г., 11:57изменён

    Первое, что нужно было сделать — это сдампить все посты из канала. Думаете это делается в пару кликов? Тоже так думал. Но обошел несколько раз интерфейсную часть телеграм и не нашел такой возможности. Погуглил, нашел инструкции — все говорят, что это просто, показывают кнопки, иду в телеграм — а этих кнопок нет. Видимо такую возможность выпилили. Печаль.Подумал — не беда, ChatGPT же теперь умеет ходить в сеть и делать поиск - попробую напрямую из ChatGPT запросить. Тоже не выходит: телеграм закрывается от ботов, хоть через поиск, хоть по прямой ссылке — ChatGPT не может получить содержимое телеграм каналов.Что ж, пришлось действовать старым "дедовским" способом. Открыл веб-версию канала и пролистал всю ленту, чтобы загрузились все сообщения (там используется подгрузка при скроле). Далее открыл консоль и буквально "на коленке" написал скрипт, который через DOM выбрает все блоки
    1,240442Открыть в Telegram
  • Горшочек варит

    4 авг. 2025 г., 19:47

    На самом деле, эта серия статей в некоторой степени последствие экспериментов с LLM. А точнее исследование их ограничений и возможностей. Хочу оговориться, что я не делал масштабных экспериментов — не мой профиль. Я опробовал лишь несколько моделей от OpenAI, так как наиболее нам доступны. И все же есть чем поделиться.Одна из моих задач не такого уж далекого будущего — это использование AI для анализа профилей производительности. И здесь мы сталкиваемся с большими контекстами. И дело не только в размерах самих профилей, которые могут быть сотни мегабайт — с этим можно справиться, например, обернув тот же CPUpro в MCP, и предоставив возможности для необходимых выборок.Но я думаю немного дальше, как не только определить проблемное место, но и найти способы это исправить. И вот это еще одно направление, где нужен большой контекст — потому что проблема часто не в том месте, где тратится
  • Горшочек варит

    4 авг. 2025 г., 16:27

    Web Streams in Depth, Part 1: From Callbacks to StreamsОпубликовал первую часть из серии статей про Web Streams, по мотивам того, что писал в канале. Будет еще 3-4 части, а может и больше. Лайк, шер, критика, комментарии – все приветствуется.
    DEV CommunityWeb Streams in Depth, Part 1: From Callbacks to StreamsIntroduction: The Challenge of Modern Data JavaScript has come a long way from its humble...
  • Горшочек варит

    25 июл. 2025 г., 14:38изменён

    Как это объяснить? Тут дело в другом баге. В какой-то момент в профилировщике сломалась логика определяющая нужно ли синтезировать фрейм для Ignition. Таким образом, сейчас в V8 синтезируется фрейм только в 10-20% случаях по моим замерам, думаю это может варироваться в силу разных факторов.Все это приводит к тому, что исполняемые Ignition функции практически не попадают на стек (top of stack) при профилировании, и их время достается функциям, которые их вызывают. На изображении ниже, то как выглядит флейм граф и флейм чарт сейчас. Внизу, как должен выглядеть, и будет так выглядеть если исправить баг (профиль записан на кастомной сборке с моим наивным фиксом).Такая категория проблем и багов достаточно сложная к обнаружению и исследованию, так как инструменты профилирования достаточно лаконичны в возможностях анализа. CPUpro старается привносить новые инструменты, чтобы анализ был
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит
    1,7801191Открыть в Telegram
  • Горшочек варит

    25 июл. 2025 г., 14:09

    Другая странность: получается, что только Add и JumpLoop потребляют время? С ними какая то проблема, то есть они выполняются долго, а остальные быстро?Нет, другие хендлеры тоже потребляют время. Но только их время не атрибутировано в функции их расположения. Вместо этого их время отрибутируется функции, которая вызывает функцию "c". В тесте таких функций две (a и b), и они идентичные. Так как код в Ignition, то никакой инлайнинг не используется, и в точке вызова c() можно обнаружить единственный хендлер CallUndefinedReceiver0. Направшивается "вот это поворот".
    Иллюстрация к посту канала Горшочек варитИллюстрация к посту канала Горшочек варит