В Cursor с 12 ноября перестанут работать модели OpenAI
OpenAI сворачивает контракт, по которому её модели были доступны в редакторе Cursor. Предложенная дата отключения — 12 ноября 2026 года, то есть чуть больше двух месяцев с сегодняшнего дня.
Причина корпоративная: разработчика Cursor, компанию Anysphere, в августе купила SpaceX, и OpenAI, как пишет The New Stack, не уверена, что там будут соблюдать её условия использования. Срок отключения взят максимально дальний из возможных по контракту.
Что с этим делать: если ваша работа в Cursor завязана на модель OpenAI, за оставшиеся два месяца прогоните привычные задачи (автодополнение, агентский режим, разбор диффа) на других моделях из списка редактора и посмотрите, где придётся переписывать промпты. OpenAI обещает помочь с переходом, но чем именно, пока не сказала.
#инструменты
OpenAI сворачивает контракт, по которому её модели были доступны в редакторе Cursor. Предложенная дата отключения — 12 ноября 2026 года, то есть чуть больше двух месяцев с сегодняшнего дня.
Причина корпоративная: разработчика Cursor, компанию Anysphere, в августе купила SpaceX, и OpenAI, как пишет The New Stack, не уверена, что там будут соблюдать её условия использования. Срок отключения взят максимально дальний из возможных по контракту.
Что с этим делать: если ваша работа в Cursor завязана на модель OpenAI, за оставшиеся два месяца прогоните привычные задачи (автодополнение, агентский режим, разбор диффа) на других моделях из списка редактора и посмотрите, где придётся переписывать промпты. OpenAI обещает помочь с переходом, но чем именно, пока не сказала.
#инструменты
Metalterm: терминал для macOS на Rust и Metal весом 10 МБ
Metalterm — нативный эмулятор терминала для macOS: состояние сессии и разбор вывода живут в Rust, а картинку рисует собственный рендерер поверх Metal, без Electron и веб-движка. Приложение занимает около 10 МБ; в замерах автора Ghostty 1.3.1 весит 40 МиБ, а Rio 0.5.24 добирается до 41,2 МиБ.
На кадр уходит 0,22 мс работы видеокарты. На экране со 120 Гц кадр длится 8,33 мс, то есть терминал забирает 2,6% этого времени. Остаток автор тратит на плавную прокрутку и фоновые шейдеры.
Где пригодится: если вы на macOS и держите терминал открытым весь день, а вес и отзывчивость важнее кроссплатформенности. Сборка лежит на metalterm.dev.
Замеры сняты на одной машине и одной конфигурации, так что за методикой и полной таблицей идите в пост автора на dev.to и перепроверяйте у себя.
#инструменты
Metalterm — нативный эмулятор терминала для macOS: состояние сессии и разбор вывода живут в Rust, а картинку рисует собственный рендерер поверх Metal, без Electron и веб-движка. Приложение занимает около 10 МБ; в замерах автора Ghostty 1.3.1 весит 40 МиБ, а Rio 0.5.24 добирается до 41,2 МиБ.
На кадр уходит 0,22 мс работы видеокарты. На экране со 120 Гц кадр длится 8,33 мс, то есть терминал забирает 2,6% этого времени. Остаток автор тратит на плавную прокрутку и фоновые шейдеры.
Где пригодится: если вы на macOS и держите терминал открытым весь день, а вес и отзывчивость важнее кроссплатформенности. Сборка лежит на metalterm.dev.
Замеры сняты на одной машине и одной конфигурации, так что за методикой и полной таблицей идите в пост автора на dev.to и перепроверяйте у себя.
#инструменты
👍7⚡1❤1
С днем программиста, коллеги!
Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.
И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/2mAD
Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.
И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/2mAD
Forwarded from Типичный программист
Плагин для GitHub Accessibility Scanner ловит alt-текст, который проходит обычные проверки
Проверки доступности отвечают на один вопрос: есть ли у картинки атрибут alt. Поэтому
Плагин GitHub для Accessibility Scanner добавляет пять правил, которым не нужна сама картинка: атрибут отсутствует или состоит из пробелов; вместо описания имя файла вроде hero.png; забытая заглушка TODO или tbd; одно общее слово вместо описания: image, logo, chart; один и тот же alt у соседних изображений.
Где пригодится: прогнать по своей вёрстке и увидеть места, где alt формально есть, а незрячему пользователю не даёт ничего.
#инструменты
Проверки доступности отвечают на один вопрос: есть ли у картинки атрибут alt. Поэтому
alt="IMG_2847.png" проходит, и одинаковое alt="3/5 stars" на пяти разных иконках тоже. По отчёту WebAIM Million за 2026 год alt нет у 16,2% изображений на миллионе главных страниц, а ещё у 10,8% он ничего не описывает.Плагин GitHub для Accessibility Scanner добавляет пять правил, которым не нужна сама картинка: атрибут отсутствует или состоит из пробелов; вместо описания имя файла вроде hero.png; забытая заглушка TODO или tbd; одно общее слово вместо описания: image, logo, chart; один и тот же alt у соседних изображений.
Где пригодится: прогнать по своей вёрстке и увидеть места, где alt формально есть, а незрячему пользователю не даёт ничего.
#инструменты
Dependabot теперь выжидает перед обновлением: причина в двух часах сентября 2025 года
В сентябре 2025-го атакующий выудил учётные данные одного мейнтейнера npm и выложил заражённые версии
🔘 отравленные версии прожили около двух часов, пока сообщество их не заметило и npm не снял;
🔘 двух часов хватает, чтобы ночная сборка в CI утянула их к вам;
🔘 отсюда период ожидания: Dependabot выдерживает паузу перед тем, как предложить свежую версию.
GitHub объясняет, как это соотносится со скоростью закрытия настоящих уязвимостей.
#инструменты
В сентябре 2025-го атакующий выудил учётные данные одного мейнтейнера npm и выложил заражённые версии
chalk, debug и ещё примерно десятка пакетов с суммарными двумя миллиардами загрузок в неделю. Код переписывал адреса криптокошельков в любом браузерном приложении, которое его подгружало.🔘 отравленные версии прожили около двух часов, пока сообщество их не заметило и npm не снял;
🔘 двух часов хватает, чтобы ночная сборка в CI утянула их к вам;
🔘 отсюда период ожидания: Dependabot выдерживает паузу перед тем, как предложить свежую версию.
GitHub объясняет, как это соотносится со скоростью закрытия настоящих уязвимостей.
#инструменты
The GitHub Blog
The case for a cooldown: Why Dependabot now waits before issuing version updates
A new default three-day cooldown delays version update pull requests so maintainers and security researchers can address findings in a release before it gets into your code.
jless: как читать и искать JSON в терминале
jless показывает JSON в терминале с форматированием и подсветкой синтаксиса. Объекты и массивы можно сворачивать и раскрывать, чтобы сначала увидеть структуру документа, а затем перейти к нужным значениям.
Полнотекстовый поиск поддерживает регулярные выражения: так можно найти фрагмент внутри длинной строки или перейти между значениями одного ключа. Инструмент пригодится при изучении ответов внешних API и отладке содержимого запросов. Управление включает набор команд в стиле Vim.
На macOS и Linux jless можно поставить через несколько пакетных менеджеров. Для Homebrew команда одна:
jless показывает JSON в терминале с форматированием и подсветкой синтаксиса. Объекты и массивы можно сворачивать и раскрывать, чтобы сначала увидеть структуру документа, а затем перейти к нужным значениям.
Полнотекстовый поиск поддерживает регулярные выражения: так можно найти фрагмент внутри длинной строки или перейти между значениями одного ключа. Инструмент пригодится при изучении ответов внешних API и отладке содержимого запросов. Управление включает набор команд в стиле Vim.
На macOS и Linux jless можно поставить через несколько пакетных менеджеров. Для Homebrew команда одна:
brew install jless. Другие варианты установки и полный список возможностей собраны на сайте jless.Как direnv переключает переменные окружения между проектами
direnv загружает настройки окружения для текущего каталога и убирает их при выходе. Так переменные проекта не приходится складывать в общий
Перед выводом очередной командной строки утилита ищет разрешённый
После установки подключите direnv к своей оболочке, создайте
direnv загружает настройки окружения для текущего каталога и убирает их при выходе. Так переменные проекта не приходится складывать в общий
~/.profile.Перед выводом очередной командной строки утилита ищет разрешённый
.envrc в текущем и родительских каталогах. Затем запускает файл в отдельном процессе Bash, сравнивает экспортированные переменные до и после запуска и переносит изменения в текущую оболочку. Поэтому такой файл может менять переменные, но не передаёт наружу функции и псевдонимы команд.После установки подключите direnv к своей оболочке, создайте
.envrc в проекте и разрешите его командой direnv allow .. Инструмент подойдёт для отдельных настроек разработки, секретов развёртывания и дополнений к PATH. Команды установки, интеграция с bash, zsh и fish, а также готовые функции для .envrc собраны в документации direnv.hexyl: цветной просмотр байтов в терминале
hexyl показывает содержимое файла в шестнадцатеричном виде и окрашивает разные категории байтов. Отдельные цвета получают нулевые байты, печатные ASCII-символы, пробелы и переносы строк, прочие ASCII-символы и байты вне ASCII. Так категории можно различать прямо в выводе терминала.
В Ubuntu и Debian утилита ставится командой
Цвета категорий и смещения настраиваются переменными окружения: можно выбрать стандартные цвета терминала, их яркие варианты или значение RGB. Команды для других систем и список настроек собраны в репозитории hexyl на GitHub.
hexyl показывает содержимое файла в шестнадцатеричном виде и окрашивает разные категории байтов. Отдельные цвета получают нулевые байты, печатные ASCII-символы, пробелы и переносы строк, прочие ASCII-символы и байты вне ASCII. Так категории можно различать прямо в выводе терминала.
В Ubuntu и Debian утилита ставится командой
sudo apt install hexyl, в Fedora через sudo dnf install hexyl, а в macOS через brew install hexyl. Сборка из исходников доступна через Cargo при Rust 1.56 или новее.Цвета категорий и смещения настраиваются переменными окружения: можно выбрать стандартные цвета терминала, их яркие варианты или значение RGB. Команды для других систем и список настроек собраны в репозитории hexyl на GitHub.
Как попробовать Zellij без установки
Zellij — бесплатное рабочее пространство для терминала с открытым исходным кодом. На сайте Zellij есть отдельные команды пробного запуска для Bash, Zsh, fish и PowerShell. Для Bash и Zsh команда выглядит так:
Перед запуском откройте и проверьте сценарий, который собираетесь выполнить. На сайте можно отдельно посмотреть его варианты для Linux и Mac или Windows. Так получится оценить Zellij до установки и затем решить, подходит ли инструмент для вашей работы в терминале.
Разработчики также предлагают платный размещённый сервис для совместного доступа к сессиям. Пока он находится в бета-версии.
Zellij — бесплатное рабочее пространство для терминала с открытым исходным кодом. На сайте Zellij есть отдельные команды пробного запуска для Bash, Zsh, fish и PowerShell. Для Bash и Zsh команда выглядит так:
bash <(curl -L https://zellij.dev/launch)
Перед запуском откройте и проверьте сценарий, который собираетесь выполнить. На сайте можно отдельно посмотреть его варианты для Linux и Mac или Windows. Так получится оценить Zellij до установки и затем решить, подходит ли инструмент для вашей работы в терминале.
Разработчики также предлагают платный размещённый сервис для совместного доступа к сессиям. Пока он находится в бета-версии.
Как перехватывать и изменять HTTPS-трафик через mitmproxy
mitmproxy — бесплатный инструмент с открытым исходным кодом для отладки и тестирования веб-трафика. Он перехватывает HTTP/1, HTTP/2, HTTP/3 и WebSocket-сообщения, показывает их содержимое и позволяет изменить запрос или ответ до отправки адресату.
Для работы есть интерактивная командная строка и mitmweb с графическим интерфейсом, похожим на Chrome DevTools. Сценарий можно автоматизировать на Python через mitmdump: например, перенаправлять запросы на другой хост или возвращать подготовленный ответ для выбранного пути.
Установить инструмент можно командой
mitmproxy — бесплатный инструмент с открытым исходным кодом для отладки и тестирования веб-трафика. Он перехватывает HTTP/1, HTTP/2, HTTP/3 и WebSocket-сообщения, показывает их содержимое и позволяет изменить запрос или ответ до отправки адресату.
Для работы есть интерактивная командная строка и mitmweb с графическим интерфейсом, похожим на Chrome DevTools. Сценарий можно автоматизировать на Python через mitmdump: например, перенаправлять запросы на другой хост или возвращать подготовленный ответ для выбранного пути.
Установить инструмент можно командой
brew install mitmproxy. На странице mitmproxy есть другие варианты загрузки, примеры дополнений и описание возможностей.Forwarded from Типичный программист
Delta делает вывод Git, diff и grep удобнее для чтения
Delta — настраиваемая программа для просмотра вывода в терминале. Она подсвечивает синтаксис и изменения внутри строк, показывает версии рядом, добавляет номера строк и позволяет переходить между файлами клавишами
Для Git установите пакет
В репозитории Delta есть начальная конфигурация и полное руководство. Попробуйте инструмент, если в больших diff сложно быстро найти нужный файл и изменённую строку.
Delta — настраиваемая программа для просмотра вывода в терминале. Она подсвечивает синтаксис и изменения внутри строк, показывает версии рядом, добавляет номера строк и позволяет переходить между файлами клавишами
n и N. Работает с Git, diff, grep и ripgrep.Для Git установите пакет
git-delta и настройте delta как программу просмотра. Delta определяет светлый или тёмный фон; темы подсветки берёт из набора bat. Можно улучшить отображение конфликтов слияния и превратить хеши коммитов в ссылки на GitHub, GitLab, SourceHut или Codeberg.В репозитории Delta есть начальная конфигурация и полное руководство. Попробуйте инструмент, если в больших diff сложно быстро найти нужный файл и изменённую строку.
❤🔥1
Difftastic сравнивает код по синтаксису, а не по строкам
Difftastic — консольный инструмент для сравнения файлов. Он распознаёт выражения и скобочные конструкции, затем сопоставляет их между версиями файла. Поэтому перенос выражения на другие строки не прячет реальную правку, а добавленная обёртка отображается отдельно от содержимого, которое осталось прежним.
Утилита показывает номера строк до и после изменений и работает с Git. Среди поддерживаемых языков есть C++, Go, JavaScript, Python, Rust и TypeScript; среди форматов — HCL, HTML, JSON и YAML. Проект распространяется по лицензии MIT.
Попробуйте его на изменении после автоформатирования: так проще отделить новую логику от переставленных переносов. На сайте Difftastic есть минутное демо, полный список языков и инструкция по настройке Git.
Difftastic — консольный инструмент для сравнения файлов. Он распознаёт выражения и скобочные конструкции, затем сопоставляет их между версиями файла. Поэтому перенос выражения на другие строки не прячет реальную правку, а добавленная обёртка отображается отдельно от содержимого, которое осталось прежним.
Утилита показывает номера строк до и после изменений и работает с Git. Среди поддерживаемых языков есть C++, Go, JavaScript, Python, Rust и TypeScript; среди форматов — HCL, HTML, JSON и YAML. Проект распространяется по лицензии MIT.
Попробуйте его на изменении после автоформатирования: так проще отделить новую логику от переставленных переносов. На сайте Difftastic есть минутное демо, полный список языков и инструкция по настройке Git.
uv: один инструмент для пакетов, проектов и версий Python
uv объединяет задачи pip, pip-tools, pipx, Poetry, pyenv, virtualenv и Twine. Он устанавливает зависимости, создаёт виртуальные окружения, фиксирует точные версии пакетов в едином файле, запускает скрипты с их зависимостями и устанавливает нужные версии Python. Авторы заявляют ускорение в 10–100 раз по сравнению с pip и экономию места благодаря общему кэшу: одинаковые зависимости не хранятся повторно.
Для первого проекта установите uv командой
uv объединяет задачи pip, pip-tools, pipx, Poetry, pyenv, virtualenv и Twine. Он устанавливает зависимости, создаёт виртуальные окружения, фиксирует точные версии пакетов в едином файле, запускает скрипты с их зависимостями и устанавливает нужные версии Python. Авторы заявляют ускорение в 10–100 раз по сравнению с pip и экономию места благодаря общему кэшу: одинаковые зависимости не хранятся повторно.
Для первого проекта установите uv командой
pip install uv, затем выполните uv init example и добавьте пакет через uv add ruff. Команда uv run ruff check запустит установленный инструмент в окружении проекта. Остальные сценарии и варианты установки собраны в репозитории uv от Astral.VisiData: исследуем табличные данные в терминале
VisiData — интерактивный инструмент с открытым исходным кодом для изучения табличных данных. Он сочетает наглядность электронной таблицы, эффективность терминала и возможности Python. Утилита рассчитана на таблицы с миллионами строк, поэтому подходит для первичного разбора больших CSV и других табличных файлов.
Одной клавишей можно построить гистограмму, а диаграмму рассеяния показать прямо в терминале. Сессию можно сохранить и позднее воспроизвести, чтобы не повторять исследование вручную. Для пакетного режима авторы приводят команду
На сайте VisiData есть обзор возможностей и материалы для начала работы.
VisiData — интерактивный инструмент с открытым исходным кодом для изучения табличных данных. Он сочетает наглядность электронной таблицы, эффективность терминала и возможности Python. Утилита рассчитана на таблицы с миллионами строк, поэтому подходит для первичного разбора больших CSV и других табличных файлов.
Одной клавишей можно построить гистограмму, а диаграмму рассеяния показать прямо в терминале. Сессию можно сохранить и позднее воспроизвести, чтобы не повторять исследование вручную. Для пакетного режима авторы приводят команду
vd -b input.csv.На сайте VisiData есть обзор возможностей и материалы для начала работы.