Pull to refresh
2K+
324
Иван Сорокин@unxed

веб

92
Subscribers
Send message

Адаптивная мимикрия: как обмануть DPI, имитируя цифровой след пользователя

Level of difficultyEasy
Reading time5 min
Reach and readers17K

Привет, Хабр! Последние несколько лет мы наблюдаем за захватывающей, но тревожной гонкой вооружений между разработчиками средств обхода блокировок и инженерами цензуры (ТСПУ в РФ, GFW в Китае). Ситуация накаляется: после участившихся сбоев в работе Telegram, риск полной блокировки мессенджера в России перестал казаться «страшилкой» и перешел в разряд рабочих сценариев. Уже сейчас иногда умудряются блокировать даже VLESS. Если завтра подобные инструменты «выключат» полностью, нам понадобится что-то принципиально иное.

Сразу оговорюсь: это не «серебряная пуля» и не коммерческий продукт. Это концепт для обсуждения инженерами, обладающими критическим мышлением. Мы будем говорить не о том, как смотреть YouTube в 4K, а о том, как создать сверхнадежный «канал последней надежды» для условий цифрового ГУЛАГа.

Читать далее

far2l и буфер обмена: ускоряем bracketed paste

Level of difficultyMedium
Reading time4 min
Reach and readers11K

Спасибо всем, кто пришел высказаться в комментарии к моей вечерашней статье про перенос по словам в far2l. Получилась интересная дискуссия о том, что такое современный менеджер файлов, и куда ему стоит двигаться. Решил заодно написать про ещё одну недавно добавленную «фишку» far2l: ускоренную вставку из буфера терминала. Технически это может показаться очень локальной оптимизацией, но в некоторых кейсах меняет качество жизни кардинально.

Поговорим о скорости. А точнее — о том, как мы заставили far2l мгновенно «проглатывать» большие объемы текста из буфера обмена терминала, даже если вы сидите через медленный SSH на сервере, где нет иксов.

Читать далее

Как я делал перенос по словам в редакторе far2l

Level of difficultyEasy
Reading time5 min
Reach and readers11K

Привет, Хабр! Обычно в своих дайджестах разработки far2l я рассказываю сразу о пачке новостей, накопившихся за год. Но сегодня случай особый. Мы реализовали фичу, тикет на которую висел в багтрекере с 10 ноября 2016 года. Фичу, которой мне самому остро не хватало ещё со времён использования Far Manager в Windows. Фичу, к которой многие боялись подступиться из-за сложности реализации в архитектуре, заточенной под «одна строка кода = одна строка на экране». Встречайте: перенос по словам (Word Wrap) во встроенном редакторе far2l! Под катом — рассказ о том, почему это заняло 9 лет, как Junior/Middle навыков C/C++ хватило для задачи уровня Senior благодаря Gemini 2.5 и 3 Pro, и как помог процесс формат патчей .ap.

Читать далее

ИИ в IDE против декларативных патчей ap: почему плагины не всегда могут то, что нам нужно

Level of difficultyEasy
Reading time5 min
Reach and readers5.1K

Привет, Хабр! Многие из вас, возможно, помнят мои предыдущие посты про формат файлов .ap — попытку создать AI-friendly формат для применения изменений в коде. В комментариях к каждой статье неизбежно возникает один и тот же вопрос: «А зачем всё это, если есть плагины для IDE вроде Copilot Chat?». Вопрос абсолютно справедливый, и сегодня я хочу дать на него развёрнутый, технический ответ. Потому что эти два подхода решают задачи совершенно разного масштаба.

Для начала, кратко напомню, что такое .ap. Это декларативный, человекочитаемый формат патчей, спроектированный специально для генерации нейросетями. Вместо хрупких и сложных для генерации LLM номеров строк, как в diff (модель ведь «мыслит» не строками, а токенами), он использует семантические «якоря» и уникальные фрагменты кода для поиска места изменения. Модель генерирует простой текстовый файл с командами вроде REPLACE или INSERT_AFTER, а специальная утилита-патчер применяет эти изменения к вашим файлам. А теперь — к самому интересному.

Давайте сравним этот подход с тем, как устроены AI-редакторы и плагины к ним.

Читать далее

AP 2.0: Учим ИИ думать, прежде чем патчить

Level of difficultyEasy
Reading time6 min
Reach and readers8.2K

Привет, Хабр!

Не так давно я рассказывал вам о рождении формата .ap (AI-friendly Patch) — моей попытке избавить мир от боли ручного копипаста при работе с AI-ассистентами. Идея была проста: вместо генерации блоков кода, который нужно переносить в исходники руками, ИИ генерирует семантический патч в специальном, удобном именно для ИИ формате, который применяется автоматически. Судя по числу добавлений статьи в закладки, идея многим пришлась по душе!

Но теория — это одно, а суровая практика — совсем другое. В процессе активного использования ap в реальных задачах (в том числе при работе над far2l) вскрылись узкие места и накопились идеи, как сделать формат ещё надёжнее, удобнее и, что самое главное, — ещё более «понятным» для нейросетей. Сегодня я хочу рассказать вам о результате этой работы — большом обновлении ap 2.0

Это не просто косметические правки, а серьезный шаг вперёд, основанный на главном инсайте: лучшие результаты ИИ показывает тогда, когда мы позволяем ему сначала спланировать свои действия на человеческом языке, и только потом — реализовать их в виде кода. Поехали!

Читать далее

.ap: удобный для ИИ формат патчей, который экономит мне часы

Level of difficultyEasy
Reading time3 min
Reach and readers11K

Привет, Хабр! Возможно, вы знаете меня по дайджестам проекта far2l, но сегодня хочу поделиться кое-чем другим. Это небольшая и очень полезная утилита и формат файлов для неё, которые родились из моей повседневной работы с AI-ассистентами (в том числе в процессе работы над тем же фаром). Штука получилась настолько удобной, что я решил поделиться ей с сообществом. Поехали!

Читать далее

far2l: что нового за 2025й?

Level of difficultyEasy
Reading time4 min
Reach and readers41K

Привет, друзья! Примерно раз в год я пишу большой пост о развитии проекта far2l — порта Far Manager под Linux, MacOS и BSD. И, должен сказать, 2025-й выдался невероятно продуктивным! Накопилось столько всего вкусного, что пора поделиться с вами очередным выпуском нашего дайджеста. Под катом — обзор двух больших и двух небольших, но очень ценных нововведений, которых мы все очень долго ждали.

Читать далее

Как начать вайбкодить и снова полюбить программирование

Level of difficultyEasy
Reading time4 min
Reach and readers37K

Сегодня я и моя командой заняли первое место на хакатоне гражданских проектов. Сделали бота, ищущего контракты на капремонт по адресу, и выкачивалку-парсилку Госзакупок для него. Можно использовать как референс или брать готовый код в свои проекты, он в Public Domain: https://github.com/unxed/crwatch

Для меня это был первый хакатон и первый проект, с нуля сделанный вайбкодингом. Учитывая, что пользуюсь я нейронками в разработке довольно давно, накопился некоторый опыт, которым решил поделиться и с вами.

Читать далее

far2l в Ubuntu 25.04: наконец-то GUI-версия из коробки

Level of difficultyEasy
Reading time5 min
Reach and readers20K

Исторически первая версия far2l — порта Far Manager на Linux, BSD и Mac, была реализована как графическое приложение. Терминалы той эпохи не умели ни передавать приложению некоторые сочетания клавиш (такие как Control+Enter), ни давать ему возможность взаимодействия с буфером обмена. Кому же нужен Far без этих возможностей? Поэтому пришлось сделать своё собственное консольное окно со своим собственным рендерингом текста — да, усложнение, зато всё сразу заработало «как-в-Винде» (а потом и консольную версию сделали тоже). И сегодня мы празднуем историческое событие: графическая версия, наиболее полная в плане соответствия UX Windows-версии, попала, наконец, в официальные репозитории Ubuntu:

Читать далее

far2l в Ubuntu 24.04 LTS готов для повседневного использования

Level of difficultyEasy
Reading time6 min
Reach and readers53K

Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04! В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!

sudo apt update

sudo apt install far2l

Читать далее

far2l в Ubuntu 23.10

Level of difficultyEasy
Reading time4 min
Reach and readers33K

Ура! В новой версии Ubuntu, наконец-то, можно установить Far Manager (far2l) самым обычным sudo apt install far2l — прямо из коробки, без всяких ppa и кастомных сборок! Под катом — немного подробностей, а также обычный дайджест новостей проекта за прошедшее время.

Читать далее

Как ChatGPT помогла мне исправить баг в far2l, turbo и wxWidgets

Level of difficultyMedium
Reading time11 min
Reach and readers11K

Работая над проектом far2l (порта Far Manager) для Linux, я наткнулся на один очень красивый баг, который в итоге удалось починить только с помощью нейросети ChatGPT. Причём баг оказался не столько в самом far2l, сколько в проекте кроссплатформенной UI библиотеки wxWidgets. Бесплатная версия ChatGPT (3.5) с задачей справиться не смогла, а вот платная (4) таки справилась. Сегодня поделюсь с вами рассказом о том, как это было.

Читать далее

Linux-порт Far Manager: новости весны 2023

Level of difficultyMedium
Reading time4 min
Reach and readers33K

Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.

Нас взяли в Debian!

Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l, без всяких сложностей с ppa или самостоятельной сборкой!

Читать далее

Linux-порт Far Manager: что нового за 2022й?

Reading time5 min
Reach and readers21K

Примерно раз в год я пишу длинный статус апдейт по проекту far2l — порту Far Manager под Linux, MacOS и BSD. Пожалуй, накопилось достаточно изменений для очередного выпуска.

Поддержка Unicode: составные символы и символы двойного размера

Оригинальный Far Manager для консоли Windows писался в парадигме «одна экранная ячейка — один символ». И даже когда Far переводили с однобайтных кодировок на Unicode (внутри у современного Far все строки в UTF16, в Linux версии — в UTF32), от этой парадигмы не отходили.

Однако Unicode устроен сложнее. Во-первых, существуют иероглифы, которые в одно знакоместо латинского символа помещаться категорически не желают. Для них придумали концепцию Full-Width знаков, которые в моноширинных шрифтах занимают не одно знакоместо, а два, логически являясь при этом одним символом. Во-вторых, существуют диакритические символы (это могут быть знаки ударения или, например, точки над ё), которые в Unicode кодируются отдельным символом, а отображаются над (или под) предыдущим.

В результате имена файлов, содержащие иероглифы или диакритику (или эмодзи, они тоже двойного размера) приводили к ошибкам рендеринга интерфейса.

Читать далее

Линукс-порт Far Manager: что нового за 2021

Reading time4 min
Reach and readers29K

Предыдущий пост про порт Far Manager под Linux, far2l, оказался невероятно популярным, так что я подумал, что неплохо бы раз в год писать что-то вроде дайджеста самых интересных новостей разработки. Начнём.

Буфер обмена в консольной версии

Теперь far2l, как и mc, умеет использовать буфер обмена X11 даже в консольной версии (в графической умел с самого начала). Для этого собирается отдельный модуль взаимодействия с X, который загружается, только если в системе установлена библиотека libx11. Можно даже ходить на удаленные сервера через ssh -X, буфер обмена будет работать и там (опять же, если libx11 на сервере установлена).

И ещё о консольном режиме. Не забываем про параметр командной строки --ee, позволяющий избавиться от необходимости нажимать ESC дважды.

Кстати, о клавиатуре в консоли. Горячие клавиши в сторонних терминалах поддерживаются практически все — по крайней мере, я знаю только про проблемы с комбинациями Ctrl+цифра, над ними идёт работа.

Читать далее

Линукс-порт Far Manager: прогресс за 4 года

Reading time5 min
Reach and readers72K
Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

Консольная версия


Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

Вот, смотрите, это far2l в GNOME Terminal


Читать дальше →

Новости формата WebP

Reading time2 min
Reach and readers4.4K
Можно смело утверждать, что этой осенью формат WebP переживает второе рождение. Сообщения о новых возможностях следуют буквально одно за другим. Здесь я приведу перевод самых интересных новостей, касающихся формата WebP и перспектив его развития и поддержки. Топик сознательно не оформляется как перевод, так как данные приведены сразу из нескольких источников. Итак, полупрозрачность, сжатие без потерь, поддержка IE6+ и так далее!
Читать дальше →

Представляем Chrome Frame, не требующий прав администратора

Reading time4 min
Reach and readers11K
Мы выпустили первую версию Chrome Frame в сентябре 2009 года. Нашей целью было расширить область применения современных веб-технологий, а также помочь веб-разработчикам использовать все возможности HTML5. И что самое впечатляющее, мы получили множество отзывов от разработчиков, которым Chrome Frame помог создать приложения, свободные от унаследованного (legacy) кода, которые, таким образом, гораздо легче создавать, поддерживать и оптимизировать.

Тем не менее, оставалась одна проблема, мешающая широкому применению Chrome Frame всеми пользователями Internet Explorer: для установки Chrome Frame пользователь должен был обладать правами администратора. В этом году, на конференции Google I/O мы объявили о том, что эта проблема, наконец, полностью решена.
Читать дальше →

Свежий эксплойт для IE9: подробности

Reading time3 min
Reach and readers3.6K

От переводчика


В недавнем посте об ошибках IE9 умпоминается 0-day уязвимость. Меня заинтересовала эта информация, и я попробовал выяснить кое-какие подробности. Результатом стал следующей перевод. Я затрудняюсь дать точную ссылку на описание конкретной уязвимости, желающие получить более подробную информацию могут найти её на сайте компании Vupen.

Новый эксплойт IE9


Новый эксплойт IE9 обходит все средства обеспечения безопасности даже в последней версии Windows 7 со всеми обновлениями, сообщает французская компания Vupen, специализирующаяся на информационной безопасности.
Читать дальше →

Разработчики ReactOS с гордостью представляют версию 0.3.13

Reading time2 min
Reach and readers2.2K
В этой версии была продолжена работа, результаты которой были впервые представлены в 0.3.12, начиная от улучшений в механизмах работы с памятью, и заканчивая улучшениями в управлении звуком и экраном. Кроме того, между версиями 0.3.12 и 0.3.13 был проведен статический анализ кода при помощи Coverity, что помогло нам вычистить потенциальные дыры в безопасности, а также в целом улучшить стабильность системы за счет более аккуратного обращения с памятью.
Читать дальше →
1

Information

Rating
6,672-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity