Инструменты программиста
От чатбота к агентам: опыт Митчелла Хашимото Для работы с кодом Хашимото перешёл от отдельного чата к агенту, который читает файлы проекта и запускает программы. После этого начал повторять собственную работу: сначала решал задачу сам, затем давал её агенту…
Где вы чаще всего работаете с ИИ-инструментом?
Anonymous Poll
33%
В отдельном окне чата или веб-версии
21%
Прямо в редакторе кода
26%
В терминале
2%
Через корпоративные сервисы или платформы
18%
По-разному, зависит от того, что нужно сделать
Как найти самые большие файлы в Zsh
Zsh умеет отбирать и сортировать файлы по размеру прямо в шаблоне поиска. Команда
Адам Джонсон на примере репозитория Django разбирает синтаксис этих квалификаторов, то есть правил отбора и сортировки после шаблона. Есть и пример поиска Python-файлов больше 150 КиБ. Такой список поможет выбрать, какие крупные файлы изучить перед очисткой репозитория.
#терминал #инструменты
Zsh умеет отбирать и сортировать файлы по размеру прямо в шаблоне поиска. Команда
du -h **/*(.OL[1,5]) покажет занятое место для пяти самых больших обычных файлов в текущем каталоге и подкаталогах. Точка исключает каталоги, OL сортирует файлы по убыванию размера, а [1,5] оставляет первые пять результатов.Адам Джонсон на примере репозитория Django разбирает синтаксис этих квалификаторов, то есть правил отбора и сортировки после шаблона. Есть и пример поиска Python-файлов больше 150 КиБ. Такой список поможет выбрать, какие крупные файлы изучить перед очисткой репозитория.
#терминал #инструменты
Поиск и замена кода по структуре с ast-grep
ast-grep ищет код по синтаксической структуре: вместо совпадений текста, как у grep, сопоставляет узлы дерева, представляющего устройство кода. Шаблон выглядит как обычный код, а метапеременная
Например, можно найти в TypeScript проверку значения перед его вызовом. Пробелы и переносы строк не мешают совпадению:
В Linux имя sg может быть занято системной командой; тогда используйте ast-grep вместо sg.
В README есть установка, примеры поиска и замены кода, а также описание собственных правил проверки в YAML. Это пригодится, если нужно находить повторяющиеся конструкции или менять код при обновлении библиотеки.
#инструменты #cli
ast-grep ищет код по синтаксической структуре: вместо совпадений текста, как у grep, сопоставляет узлы дерева, представляющего устройство кода. Шаблон выглядит как обычный код, а метапеременная
$A обозначает один узел этого дерева.Например, можно найти в TypeScript проверку значения перед его вызовом. Пробелы и переносы строк не мешают совпадению:
sg run -p '$A && $A()' -l ts
В Linux имя sg может быть занято системной командой; тогда используйте ast-grep вместо sg.
В README есть установка, примеры поиска и замены кода, а также описание собственных правил проверки в YAML. Это пригодится, если нужно находить повторяющиеся конструкции или менять код при обновлении библиотеки.
#инструменты #cli
👍1🐳1
bat: просмотр кода в терминале с подсветкой синтаксиса
bat выводит содержимое файлов с подсветкой синтаксиса, номерами строк и пометками изменений относительно индекса Git, то есть версии, подготовленной к коммиту. Если текст не помещается на экран, утилита по умолчанию открывает его в программе для постраничного просмотра.
Конкретный сценарий: предпросмотр файлов при поиске через fzf. Опция
В руководстве bat есть готовая команда для fzf, способы установки и примеры работы с файлами. При передаче вывода другой программе bat автоматически отдаёт чистое содержимое без номеров строк и пометок.
#инструменты #терминал
bat выводит содержимое файлов с подсветкой синтаксиса, номерами строк и пометками изменений относительно индекса Git, то есть версии, подготовленной к коммиту. Если текст не помещается на экран, утилита по умолчанию открывает его в программе для постраничного просмотра.
Конкретный сценарий: предпросмотр файлов при поиске через fzf. Опция
--line-range=:500 ограничивает вывод первыми 500 строками, чтобы сократить время загрузки длинных файлов. А --color=always сохраняет цветную подсветку в предпросмотре.В руководстве bat есть готовая команда для fzf, способы установки и примеры работы с файлами. При передаче вывода другой программе bat автоматически отдаёт чистое содержимое без номеров строк и пометок.
#инструменты #терминал
⚡1❤1
Для нового сервиса нужны репозиторий, ресурсы, сборка, тесты, доступы и мониторинг. Для каждого аспекта нужна была своя заявка и существовала отдельная очередь. В VK всё это свели в одну внутреннюю платформу: разработчик выбирает шаблон, получает ресурсы и сам может провести фичу от кода до запуска. Подготовка типового сервиса теперь занимает часы вместо недель.
В процесс встроены автопроверки, тесты в изолированной среде и фича-флаги. Среда ловит ошибки до релиза, а флаг позволяет включить функцию, например, для 1% пользователей и посмотреть, как она работает на реальных запросах.
Разобрали этот подход на примере ВКонтакте: какие операции автоматизировали, за что отвечает команда и с чего можно начать в своём проекте.
В процесс встроены автопроверки, тесты в изолированной среде и фича-флаги. Среда ловит ошибки до релиза, а флаг позволяет включить функцию, например, для 1% пользователей и посмотреть, как она работает на реальных запросах.
Разобрали этот подход на примере ВКонтакте: какие операции автоматизировали, за что отвечает команда и с чего можно начать в своём проекте.
Локальная модель в Bruno: подключение через Ollama и LM Studio
Bruno 4.0.0+ позволяет подключить ИИ на вашем компьютере для генерации проверок ответов API, скриптов и документации. Запросы к модели остаются на машине, помощник работает без интернета. ИИ-функции пока в бете и по умолчанию выключены.
В руководстве по подключению локальных моделей разобраны выбор модели под доступную память, запуск сервера и добавление его адреса и идентификатора модели в настройки Bruno. Ollama запускает сервер автоматически; в LM Studio его нужно включить вручную через графический интерфейс.
Для проверки подключения показаны команды, которые запрашивают список моделей у локального сервера. Небольшие модели подходят для типовых проверок, но уступают ведущим облачным моделям в сложных рассуждениях.
#инструменты #автоматизация
Bruno 4.0.0+ позволяет подключить ИИ на вашем компьютере для генерации проверок ответов API, скриптов и документации. Запросы к модели остаются на машине, помощник работает без интернета. ИИ-функции пока в бете и по умолчанию выключены.
В руководстве по подключению локальных моделей разобраны выбор модели под доступную память, запуск сервера и добавление его адреса и идентификатора модели в настройки Bruno. Ollama запускает сервер автоматически; в LM Studio его нужно включить вручную через графический интерфейс.
Для проверки подключения показаны команды, которые запрашивают список моделей у локального сервера. Небольшие модели подходят для типовых проверок, но уступают ведущим облачным моделям в сложных рассуждениях.
#инструменты #автоматизация
Как подключить личный GitHub и корпоративные аккаунты к GitButler
GitButler позволяет работать с личными репозиториями GitHub и корпоративными серверами GitHub Enterprise в одном Git-клиенте. Для каждого репозитория он сохраняет свой аккаунт: при переходе между проектами вручную переключать учётные данные не нужно.
В руководстве по подключению аккаунтов показаны вход через код подтверждения в браузере и подключение с токеном доступа. Для Enterprise понадобятся адрес API сервера и токен именно этого сервера.
Отдельно разобрана блокировка корпоративного сервера сетевой политикой GitButler: нужные адреса добавляют в поле
#git #инструменты
GitButler позволяет работать с личными репозиториями GitHub и корпоративными серверами GitHub Enterprise в одном Git-клиенте. Для каждого репозитория он сохраняет свой аккаунт: при переходе между проектами вручную переключать учётные данные не нужно.
В руководстве по подключению аккаунтов показаны вход через код подтверждения в браузере и подключение с токеном доступа. Для Enterprise понадобятся адрес API сервера и токен именно этого сервера.
Отдельно разобрана блокировка корпоративного сервера сетевой политикой GitButler: нужные адреса добавляют в поле
extraCsp файла настроек, затем перезапускают клиент. Учётные данные хранятся локально, в зашифрованном виде в системном хранилище ключей.#git #инструменты
Команды Git для восстановления коммитов и переноса изменений
Git позволяет отменить локальный коммит, найти потерянный и перенести изменения без нового коммита. В подборке команд под рабочие задачи разобраны эти сценарии и управление отложенными изменениями.
Флаг
#git #терминал
Git позволяет отменить локальный коммит, найти потерянный и перенести изменения без нового коммита. В подборке команд под рабочие задачи разобраны эти сценарии и управление отложенными изменениями.
git reset --soft HEAD~1 отменяет последний коммит, сохраняя изменения подготовленными к следующему. Для уже отправленных и общих коммитов источник рекомендует git revert. Через git reflog можно найти хеш потерянного коммита и создать от него ветку.Флаг
-n у git cherry-pick переносит изменения без создания коммита, чтобы вы могли их доработать. Для stash, временно сохранённых изменений, показаны именование и выборочное применение с сохранением записи или её удалением.#git #терминал
💯1
Forwarded from Нейроканал
Showboat и Rodney помогают показать работу ИИ-агента
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.
Эту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции.
Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки.
#ии #инструменты
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.
uvx showboat --helpЭту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции.
Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки.
#ии #инструменты
Forwarded from Нейроканал
Вспомните последний раз, когда ИИ сделал для вас рабочий результат: код, тесты, документацию или требования. Как вы его проверяли?
Anonymous Poll
16%
Внимательно разобрал сам
36%
Проверил на практике: тесты, запуск, реальные данные
27%
И разобрал, и проверил на практике
1%
Отдал на ревью коллеге
12%
Не проверял, сразу использовал
5%
Не было такого случая или не помню
3%
Другое (напишу в комментариях)
git range-diff: проверка изменений в коммитах после rebase
Команда
В воспроизводимом упражнении с тремя коммитами при разрешении конфликта намеренно меняют вычитание
Разбор показывает, как сохранить исходную ветку командой
#git #инструменты
Команда
git range-diff сравнивает серии коммитов до и после переноса ветки на новую базу. Одинаковые сообщения в git log не гарантируют, что код сохранился: ручное разрешение конфликта становится частью переписанного коммита.В воспроизводимом упражнении с тремя коммитами при разрешении конфликта намеренно меняют вычитание
x.patch - y.patch на y.patch - x.patch. Ошибка оказывается в коммите про оформление кода.Разбор показывает, как сохранить исходную ветку командой
git branch before-rebase и прочитать результат сравнения: знак = отмечает совпавшие изменения, ! указывает на различия. Два уровня знаков в выводе помогают найти случайную правку внутри изменённого коммита.#git #инструменты
Forwarded from Типичный программист
🧑💻 Какие навыки помогают вам в разработке в 2026 году?
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Шпаргалка по GitHub Copilot CLI: история диалога, каталоги и экспорт сессий
GitHub Copilot CLI позволяет управлять работой ИИ-помощника в терминале командами с префиксом
Если Copilot ссылается на прошлую задачу,
В шпаргалке с примерами команд и их вывода есть и экспорт:
#cli #инструменты
GitHub Copilot CLI позволяет управлять работой ИИ-помощника в терминале командами с префиксом
/. Для очистки истории или смены рабочего каталога не нужно каждый раз писать запрос обычным текстом.Если Copilot ссылается на прошлую задачу,
/clear удалит историю текущего диалога. Команда /cwd покажет рабочий каталог, а с указанным путём сменит его. Через /list-dirs можно проверить, к каким директориям у помощника есть доступ.В шпаргалке с примерами команд и их вывода есть и экспорт:
/share file сохраняет историю сессии в Markdown-файл, чтобы передать коллеге ход работы или приложить его к обсуждению задачи.#cli #инструменты
👍1
Logpoints в IntelliJ IDEA: поиск ошибок в gRPC-сервисе без остановки
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
❤1
Forwarded from Типичный программист
Типичный программист
Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так: Папка хранит исходные материалы и решения ↓ Индекс указывает, где искать данные для задачи ↓ Claude…
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Anonymous Poll
17%
Код
28%
Описание задачи
14%
Документацию
17%
Результаты работы
20%
Настройки и контекст: историю чатов, промпты, скиллы
50%
Ничего, использую один инструмент
curl: пароль для сервера и пароль для прокси — разные вещи
Получили
При
Если метод заранее неизвестен,
📎 Авторизация в руководстве everything curl
#cli #инструменты
Получили
401? Сервер запрашивает авторизацию через WWW-Authenticate. Для него предназначен --user, который задаёт заголовок Authorization.При
407 пароль нужен HTTP-прокси: ответ содержит Proxy-Authenticate. Здесь используйте --proxy-user, а не повторяйте пароль сервера. Учётные данные прокси передаются в Proxy-Authorization.Если метод заранее неизвестен,
--anyauth сначала проверяет ответ сервера. Для прокси есть отдельный --proxy-anyauth. Basic кодирует пароль в base64, а не шифрует его, поэтому для реальных паролей нужен защищённый транспорт.#cli #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Рецепты curl для авторизации и проверки доступа к серверу
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
Отдельный пример посвящён
#инструменты #терминал
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
--cookie-jar сохраняет их в файл, а --cookie читает оттуда. Так можно запросить защищённую страницу после входа.Отдельный пример посвящён
--connect-to: curl подключается к указанному серверу и порту, сохраняя имя исходного узла в заголовках запроса. Это позволяет проверить сервис напрямую, исключив балансировщик как возможную причину ошибки.#инструменты #терминал
GDB: breakpoint и watchpoint отвечают на разные вопросы
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
📎 Breakpoint и watchpoint в руководстве GDB
#инструменты
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
GDB: отладка программ на C на двух примерах
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
#инструменты #терминал
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
-g, который связывает машинный код со строками исходника. В конце есть шпаргалка команд и таблица решений проблем настройки, например когда отладчик не показывает переменные.#инструменты #терминал