<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Machine Head - Александр О</title><generator>teletype.in</generator><description><![CDATA[Заметки инженера о AI, разработке приложений и строительства технологичного бизнеса]]></description><image><url>https://img3.teletype.in/files/aa/95/aa95526d-b8ab-4595-9320-8894eb1a0728.png</url><title>Machine Head - Александр О</title><link>https://machine-head.ru/</link></image><link>https://machine-head.ru/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/spaceguest?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/spaceguest?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 14 Jul 2026 00:46:30 GMT</pubDate><lastBuildDate>Tue, 14 Jul 2026 00:46:30 GMT</lastBuildDate><item><guid isPermaLink="true">https://machine-head.ru/skillforce-for-codex-and-claude-code</guid><link>https://machine-head.ru/skillforce-for-codex-and-claude-code?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/skillforce-for-codex-and-claude-code?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>Скиллы для Codex и Claude Code</title><pubDate>Thu, 04 Jun 2026 12:26:24 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/2b/40/2b407ebb-e8af-467d-b18f-bab55e50adca.png"></media:content><category>AI</category><description><![CDATA[<img src="https://img4.teletype.in/files/7e/b3/7eb35205-fca7-405e-9246-dba7df644615.png"></img>3 этих скилла в 10х прокачают ваш рабочий процесс разработки. Протестрован в бою на больших production проектах с сотнями тысяч строк кода.]]></description><content:encoded><![CDATA[
  <p id="APr6">3 этих скила в 10х прокачают ваш рабочий процесс разработки. Протестрован в бою на больших production проектах с сотнями тысяч строк кода.</p>
  <p id="fqF9">В наборе 3 скилла:</p>
  <ul id="pmkP">
    <li id="G3iR"><code>brainstorm</code> - помогает структурировать идеи как реализовать ту или иную вещь. Не форсит, подсказывает, легко возвращает агента в канву разговора даже если вы отвлеклись на пару других вопросов. На выходе профессионально составленный дизайн документ.</li>
    <li id="d4hR"><code>planner</code> - скормите ему дизайн документ и получите четко структурированный план разработки, разбитый по спринтам. Запускайте каждый спринт в отдельной сессии по очереди - контекстного окна в 97% случаев хватит, чтобы выполнить спринт целиком. </li>
    <li id="s1yo"><code>code-review</code> - скилл специально заточен на проверку спринта. Просто укажите в промпте ссылку на дизайн-документ и план разработки и получите детальное ревью, сфокусированное на проверке точности следования указаниям и продуманному дизайну. </li>
  </ul>
  <p id="IELN">Пользуйтесь с удовольствием! Обратная связь приветствуется!<br />Ссылка на скилы на Github - <a href="https://github.com/pridees/skillforce" target="_blank">https://github.com/pridees/skillforce</a><br /><br />Оставайтесь на связи и подключайтесь к сообществу в Тг <a href="https://t.me/machine_head_ru" target="_blank">MachineHead</a>.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://machine-head.ru/prishlo-vremia-pisat-kod-na-estestvennom-yazike</guid><link>https://machine-head.ru/prishlo-vremia-pisat-kod-na-estestvennom-yazike?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/prishlo-vremia-pisat-kod-na-estestvennom-yazike?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>Раньше мы писали на Assembler, но с современными языками нам не нужно знать как он работает!</title><pubDate>Tue, 02 Jun 2026 18:04:04 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/0f/d3/0fd39403-22b7-4ed6-a23f-e8cd656a61dd.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/b8/0a/b80a70e9-4d0c-4ff5-b406-b8755ba6eabe.png"></img>&quot;...пришло время писать на естественном языке, скармливать его AI и пофиг в какой код он превращается&quot;. Такая аргументация прозвучала от...]]></description><content:encoded><![CDATA[
  <p id="J77F"><strong>&quot;...пришло время писать на естественном языке, скармливать его AI и пофиг в какой код он превращается&quot;</strong>. Такая аргументация прозвучала от программиста в одной из жарких дискуссий, на утверждение &quot;людям все равно нужно понимать как работает код&quot;.</p>
  <p id="Bjei">Звучит убедительно на первый взгляд, не так ли? Но давайте разберемся.</p>
  <p id="ANTx">За обработку естественного языка отвечает биологическая машина - наш мозг. Естественный язык формируется из картины мира и формирует ее. У нас бы не было проблем договариваться, не существовало фразы &quot;Я тебя неправильно понял&quot; если бы естественный язык на 100% был формален по отношению к сущности передаваемой информации. Он слишком емкий и полагается на многослойный контекст нашего опыта, убеждений, предпочтений и многое другое.</p>
  <p id="0jwF">Современные языки программирования представляют собой формальный способ описать поведение машины. Компиляторы также подчиненны формальной логике. Один и тот же высокоуровневый код скомпилируется в один и тот же машинный (для конкретной архитектуры, естессно). </p>
  <p id="Tp2q">Таким образом, будь у нас компилятор, который случайно бы упустил пару строк или придумал пару других, это сделало бы написание надежных программ невозможным.</p>
  <p id="gDUY">Возвращаясь к AI, даже речи нет, что каждый запрос на генерацию произведет каждый раз одинаковый код. Он будет разным в пределах отдельных запросов к одной модели, и кардинально другим при смене моделей. Одна модель склонна тяготеть к одним кодовым формам, следующая будет тяготеть к совсем другим. </p>
  <p id="ljzz">Вы можете справедливо заметить - мы же пользуемся приемами формализации задачи в спецификации! Да, верно, мы сужаем (как умеем) естественный язык до некоего формального оптимума, комфортного людям разных специализаций. Но и он не лишен двусмысленности. То есть, чтобы AI создал нам определенный код с какой-то гарантией, нам нужно дать прямое указание на генерацию конкретного поведения программы вплоть до отдельных строк. Де-факто, это то же программирование, только без строго синтаксиса. Но даже в этом случае мы не можем (в данный момент) утверждать, что сгенерированный код соответствует ожиданиям. </p>
  <p id="ZX0x">Стартап широко известного в узких кругах Андрея Бреслава CodeSpeak пытается сыграть на этом поле. Его идея как раз в построчном описании генерируемого нейронкой результата. Application.cs.md по задумке должен превратиться в Application.cs, что должно дать выигрыш в уменьшении кодовой базы до нескольких раз и снятия требований к знанию синтаксиса конкретного языка для изменения программы - его смогут читать и понимать не только программисты. Идея интересная, но: <br />- как дебажить ошибки не связанные с требованиями? Так нам все еще нужно знать асинхронную модель Java или CLR?<br />- как, не проваливаясь к синтаксису ЯП, связать код объявленный в модуле А с кодом в модуле Б? <br />- как отлаживать поэтический стиль Пети, который генерирует код с ошибкой?</p>
  <p id="0kcw">И масса других вопросов. </p>
  <p id="JDKj">Если все это требует перехода к формализму синтаксиса ЯП, то выигрыша как будто бы и нет. </p>
  <p id="SlcZ">Перед тем как закруглиться, мне хотелось бы озвучить вот какую мысль. Умная генерация текста, это бесспорно хорошо, где-то мы становимся продуктивнее, очень неравномерно и совсем не в тех местах, о которых талдычат AI-фанатики на каждом углу, не создававшие ничего серьезнее прототипов с кодовым мусором внутри. Как программисты, создающие промышленный код, мы в той же точке, что и до. Чтобы наступило завтра, AI должен стать единственной программой с которой взаимодействуют люди и машины для выполнения любых задач. А изобилие программ и их написание должно уйти в прошлое. Только девайс и AI. Но боюсь это перспектива не ближайших лет.</p>
  <p id="lWqJ">Тизер. В следующем посте обсудим в каком на самом деле состоянии сейчас рынок труда. Оставайтесь на связи с <a href="https://t.me/machine_head_ru" target="_blank">MachineHead</a>.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://machine-head.ru/zameni-li-ai-programmistov</guid><link>https://machine-head.ru/zameni-li-ai-programmistov?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/zameni-li-ai-programmistov?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>Так заменит ли AI разработчиков?</title><pubDate>Tue, 02 Jun 2026 17:57:01 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/a0/c3/a0c35779-36d7-426d-89c9-f13983d5d67e.png"></media:content><category>AI</category><description><![CDATA[<img src="https://img2.teletype.in/files/5b/61/5b613cf2-b3d3-40bf-911b-c4d6894150c5.png"></img>Я сам прошел все стадии от отрицания до принятия. Нам всем очень хочется творить, но не у всех есть ресурсы для этого. AI ощущается как допинг, обещая  пробежать на нем не только спринт прототипа, но и весь марафон.]]></description><content:encoded><![CDATA[
  <p id="2Tvu">Я сам прошел все стадии от отрицания до принятия. Нам всем очень хочется творить, но не у всех есть ресурсы для этого. AI ощущается как допинг, обещая  пробежать на нем не только спринт прототипа, но и весь марафон. </p>
  <p id="a4Xw">Я проработал с агентом почти год. Однозначно позитивные эффекты:</p>
  <p id="156X">1) Время отладки проблем уменьшается на порядки. <br />2) Время выполнения микрозадач так же на порядки. <br />3) Время на выполнение средних задач такое же, как если бы я делал руками.</p>
  <p id="swdW">А вот время на выполнение сложных задач увеличилось.</p>
  <p id="GjNc">В подходе к очень большой задаче, программист сначала формирует общую картину, прикидывает дизайн системы целиком, а потом прорабатывает отдельные части, подкладывая под слои интерфейсы, чтобы можно было работать с любым из них. У агента с «прикинуть картину целиком», держа ее в «голове» поработать с отдельными частями - нерешаемая проблема. Если несколько раз запустить агента против «верхнеуровневого описания задачи» получишь каждый раз новую интерпретацию.</p>
  <p id="4js0">Даже если итеративно работать с агентом, он всегда отклоняется от твоего «как надо». Прерывать бесполезно, это оборачивается утерей контекста и откатом к старту.</p>
  <p id="ktJX">В итоге, либо принимаешь код как есть и ревьюишь на уровне отдельных строк, либо делаешь почти всё руками, а значит выигрыша по скорости нет. </p>
  <p id="Mxrs">И всё это ощущается как припарка, но не замена. Не считая минус вайб к программированию в целом. </p>
  <p id="biCi">Я каждый день слышу, что кто-то там дирижирует оркестром claude-кодов, но почему-то не видно продуктов из этой адской кузни. Новости типа той, что claude переписал bun с Zig на Rust не в счет. Невелика заслуга сконвертировать отполированный людьми код с одного языка на другой.</p>
  <p id="Pjoh">Так что нет, не заменит. Не Claude. Ни GPT. Ни кто-либо другой. Также <a href="https://arxiv.org/abs/2603.15381" target="_blank">не будет AGI на llm моделях</a>. Пора перестать вестись на pre-IPO маркетинг и дозировать допинг с работой головой и руками.</p>
  <p id="Eog5">Подписывайтесь на <a href="https://t.me/machine_head_ru" target="_blank">MachineHead</a> и делитесь с друзьями! Stay tuned! ✌️</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://machine-head.ru/MM0h4nN0mq_</guid><link>https://machine-head.ru/MM0h4nN0mq_?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/MM0h4nN0mq_?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>TL:DR к статье, для тех кто не тимлид и не руководитель, но хочет резко прокачать свою работу с агентами</title><pubDate>Tue, 02 Jun 2026 17:54:14 GMT</pubDate><category>AI</category><description><![CDATA[Я вывел для себя, что мне веселее когда агент не пишет всё сам по одному промпту &quot;сделай хорошо, а плохо постарайся не делать&quot;, а помогает креативить, комплексно искать подходы к реализации фич, подбирать архитектурные решения, собирать спецификацию, которую я одобрил. Где вместо предположения &quot;наверное там всё ок&quot;, я точно знаю потому, что каждый шаг обдумывал и подтвердал.]]></description><content:encoded><![CDATA[
  <p id="mkoA">Я вывел для себя, что мне веселее когда агент не пишет всё сам по одному промпту &quot;сделай хорошо, а плохо постарайся не делать&quot;, а помогает креативить, комплексно искать подходы к реализации фич, подбирать архитектурные решения, собирать спецификацию, которую я одобрил. Где вместо предположения &quot;наверное там всё ок&quot;, я точно знаю потому, что каждый шаг обдумывал и подтвердал. </p>
  <p id="PRV0">Для этого, путем многих итераций был создан скилл brainstorm. Он организует весь этот цикл. Просто попробуйте. Работает в Codex, Claude Code, и более менее других популярных агентах. Обычно, в промпте я триггерю скилл вручную и начинаю фразу &quot;давай спроектируем/продумаем и тд&quot;. Крайне полезно после перечислить UserStory или верхнеуровневые требования. Самая крутая фича этого скила: возможность обсудить проблему/подход/решение с агентом и когда вопрос уточнен, он сам возвращается на прежний трек последовательных вопросов-ответов. Без форка сессии, с сохранением в контексте потока мыслей и гипотез.</p>
  <p id="03u7">Далее. Эту спеку я перекладываю в скилл Planner. Этот скилл разбивает спеку на спринты так, чтобы с 90% вероятностью 1 спринт уложился в 1 контекстное окно и выполнен за 1 заход. Кто бы что ни говорил, а 1М контекста в клоде либо оверюзает токены, либо качество деградирует. Модель держит форму до 400К, но после ... такое себе. GPT 5.5 стал есть драматически меньше токенов и я перестал сталкиваться с ухудшением результатов после автокомпакта.</p>
  <p id="3DyA">На выходе обоих скиллов я получаю 2 артекфакта: спека + план. Далее я приступаю к методичной работе plan-implement используя простейший промпт, как например этот, когда делал дешборды аналитики в Prospect Guide:</p>
  <p id="Loek"><code>Бери в работу Sprint 1 плана content-section-analytics-plan.md</code></p>
  <p id="Qitl">И финалочка - скилл code-review. Через него я прогоняю результат работы по спринту. </p>
  <p id="y5NR"><code>/code-review Sprint 1 of content-section-analytics-plan.md</code></p>
  <p id="KyMv">Не доверяясь целиком машине, ревьюю глазами, правлю, слежу за полной тестов и тд. В масштабе 1 спринта, делать это комфортно, есть возможность сверяться со спекой. </p>
  <p id="h778">Вы вероятно спросите, почему это лучше популярного набора скилов superpowers, в котором есть brainstorm, write-plan, implement и другие? </p>
  <p id="zPyL">1. Их brainstorm не дает подумать или изменить решение. Задает 3-4 вопроса, зачастую просто подтверждая указанные требования и фиксирует их в спеке. Я хочу, чтобы вопросов было больше, они были глубже, агент фильтровал их по значимости, исследовал код и нашел проблемы, невидимые с поверхности и обсудил и со мной. А потом убедился, что он правильно понял мое намерение. </p>
  <p id="TM1x">2. write-plan пишет готовые вставки куда код воткнуть. Это дичь, которая меня дико бесила. Я хочу, чтобы спека и план формулировали ЧТО я хочу и КАК это лучше сделать, а не впихивали в план готовые куски кода, чтобы потом растасовать их по файлам. Ну и этот план нереально рабивать на куски. Useless вообщем. Хорошо для замены примитивного промптинга, но для серьезной работы никуда не годится.</p>
  <p id="yS6q">Вот мой пак скилов завернутый в набор <a href="https://github.com/pridees/skillforce" target="_blank">Skillforce</a> на Github, забирайте, пользуйтесь, кидайте идеи и фидбек. Ставятся на изи, стандартным способом в любой репозиторий.</p>
  <p id="xmhj">Подписывайтесь на <a href="https://t.me/machine_head_ru" target="_blank">MachineHead</a> и делитесь с друзьями! Stay tuned! ✌️</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://machine-head.ru/ai-with-large-engineering-team</guid><link>https://machine-head.ru/ai-with-large-engineering-team?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/ai-with-large-engineering-team?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>ИИ в больших инженерных командах</title><pubDate>Tue, 02 Jun 2026 17:50:22 GMT</pubDate><category>AI</category><description><![CDATA[<img src="https://img3.teletype.in/files/a2/e1/a2e1afbf-2409-411c-85e6-60ce623df78e.png"></img>В этом гайде — что нужно построить, чтобы синьоры сами выбрали работать с агентом, а через три месяца стали евангелистами]]></description><content:encoded><![CDATA[
  <p id="mNyY">Давно собирался расписать.</p>
  <p id="fB60">В разговорах с тимлидами и CTO постоянно одна и та же картина: дали кодерам ИИ (тот же Cursor), надеялись на буст продуктивности, а бустанули число инцидентов или просто замедлились в тех или иных местах.</p>
  <p id="gXDN">Поначалу я думал, дело в инструментах. Потом в зрелости команд. Потом в моделях. Оказалось, нет. Подход. Административная инициатива &quot;сверху-вниз&quot; без ясного понимания как это будет работать на местах, не работает с разработчиками высоких грейдов.</p>
  <p id="E97z">Расписал, как с этим жить. </p>
  <p id="ODAS">Туториал для IT руководителей как дать ИИ команде, чтобы пересадить ребят на работу с агентами: </p>
  <p id="RRu1">1️⃣ почему решение спущенное сверху-вниз проваливается, <br />2️⃣ что такое «подчинённая проактивная позиция» агента<br />3️⃣ три фазы интеграции агентского кодинга. </p>
  <p id="bef4">Там же скилы для агентов и расписанный воркфлоу, как кодить в кодовой базе любого масштаба, которыми я давно хотел поделиться. Наконец-то всё запаковал в статью для удобного восприятия не только разработчиками.</p>
  <p id="HekB">Подписывайтесь на MachineHead и делитесь с друзьями! Stay tuned! ✌️</p>
  <p id="ahnv"><a href="https://habr.com/ru/articles/1030314" target="_blank">https://habr.com/ru/articles/1030314</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://machine-head.ru/end-of-file</guid><link>https://machine-head.ru/end-of-file?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest</link><comments>https://machine-head.ru/end-of-file?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=spaceguest#comments</comments><dc:creator>spaceguest</dc:creator><title>End of file (EOF)</title><pubDate>Thu, 29 Apr 2021 08:51:35 GMT</pubDate><category>Программистские заметки</category><tt:hashtag>programming</tt:hashtag><description><![CDATA[Сегодня расскажу об одной загадочной штуке под названием EOF. &quot;Спецсимвол в конце файла!&quot; - воскликнет юный падаван будет не прав. Разберемся, что за мазафака такая.]]></description><content:encoded><![CDATA[
  <tt-tags id="vije">
    <tt-tag name="programming">#programming</tt-tag>
  </tt-tags>
  <p id="AdRM">Сегодня расскажу об одной загадочной штуке под названием EOF. &quot;Спецсимвол в конце файла!&quot; - воскликнет юный падаван будет не прав. Разберемся, что за мазафака такая.</p>
  <p id="5Xxb"><strong>EOF</strong> - это особая ситуация! Которая может быть проверена с помощью средств стандартных библиотек любого языка программирования. Не существует никого особого символа на манер символа <strong>new line</strong> &quot;<strong>\n&quot;.</strong></p>
  <p id="fk3L">Чтобы убедиться в этом достаточно вспомнить, что в Unix системах, терминал умеет имитировать ситуацию <strong>EOF</strong> с помощью сочетания клавиш <strong>Ctrl-D,</strong> которая прерывает поток ввода более гуманным способом, чем SIGINT. </p>
  <p id="rcQG">Ситуация <strong>&quot;End of file&quot;</strong> это набор признаков, при которых можно сделать вывод что файл закончился. Если пойти &quot;в лоб&quot; и попытаться читать файл посимвольно, в надежде, что цикл прекратится на последнем символе - то можно обратить внимание, что кол-во прочитанных символов будет больше, чем мы ожидаем. При при отсутствии проверки на <strong>EOF</strong>, последним символом окажется - <strong>0</strong>. В этот момент цикл упирается в конец файла и зависает, без передачи управления дальнейшим инструкциям.</p>
  <p id="YZQG">В каком нибудь питоне этот процесс так глубоко спрятан под капот функций чтения из файла, что коренные питонисты, не выходившие за пределы уютных py файлов даже не в курсах, че это ваще.</p>
  <p id="ZAFr"><strong>Читаем файл из Python:</strong></p>
  <pre data-lang="python" id="5app">with open(&#x27;somefile&#x27;) as openfileobject:
    for line in openfileobject:
        do_something()</pre>
  <p id="eCuL">че вообще? какой EOF. Закончились строки - вышел из цикла.</p>
  <p id="FLUJ">В то же время <strong>Си</strong>-шнику стоит быть начеку:</p>
  <pre data-lang="c" id="5BIv">while ((ch != &#x27;\n&#x27;) &amp;&amp; (ch != EOF)) {
// read the next ch
}</pre>
  <p id="fEii">Внимательный юзер заметит что <strong>char</strong> проверяется на <strong>EOF</strong>, аналогично <strong>\n, </strong>будто это символ такой. Как же так? Дело в том что char - беззнаковое число. В случае, если достигнут конец файла <strong>EOF</strong> вернет <strong>-1. </strong></p>
  <p id="imvI">Способ проверки концовки файла в разных языках разный. Вот такая загогулина. </p>

]]></content:encoded></item></channel></rss>