Подборка инструкций по работе с сетью для начинающих
Привет, Хабр! В пятницу я снова с подборкой статей. На этот раз несу инструкции по работе с сетями.
Зачем сетям нужен RADIUS и как его развернуть. Как работает RADIUS, за что отвечает AAA и как развернуть свой сервер на базе FreeRADIUS в облаке — от установки до интеграции с оборудованием MikroTik.
Настройка SSL-сертификата на Nginx. Как установить и настроить SSL-сертификат для серверов на nginx. Разбираем получение сертификата Let’s Encrypt® или работу со своим для настройки HTTPS-соединения.
Обстановка с ростом цен на ОЗУ: планка на 256 ГБ стоит на $1400 дороже, чем RTX 5090.
Ранее из-за дефицита ОЗУ (бум искусственного интеллекта и скупка любых карт памяти для серверов) 2 плашки памяти на 64 ГБ оперативной памяти в США стали стоить столько же или дороже (после скидки) полуавтоматической винтовки AR15 или как MacBook Air.
Перевел почти всё на Grok 4.1 с декабря не смотря на ажиотаж в других моделях. 1. Дешево за большой контекст 2. Code execution дает возможность дешево анализировать данные 3. Реальные расходы токенов на задачи уровня flash и mini моделей, но качество заметно лучше 4. Хорошо следует схемам 5. Контекст 2M
Экономия в 3-4 раза с Claude Sonnet.
Где использовал: HR-тематика: массовая обработка резюме и вакансий Анализ данных, поиск информации
Claude Sonnet: $3 / $15 за 1M токенов (input/output)
Grok 4.1 Fast: $0.20 / $0.50 за 1M токенов
Использую Grok 4.1 Fast для простых задач и 4.1 Fast Reasoning когда нужно "подумать".
Расскажите в комментариях, на каких моделях работаете и для каких задач?
Геймер спрятал ПК в конструктиве 50-килограммовой викторианской батареи отопления. Это сделано для экстремального охлаждения компьютера. Никакого корпуса не нужно - чугунный радиатор XIX века работает как гигантский пассивный теплоотвод. Снизу батареи поместилась материнская плата, видеокарта и блок питания. Энтузиаст даже аккуратно спрятал проводку и сохранил «антикварный» внешний вид.
Когда говорят об автоматизации, чаще всего имеют в виду Python. Но важно понимать: Photoshop не выполняет Python-код напрямую.
Зато у него есть встроенная поддержка скриптов — Photoshop умеет исполнять код на JavaScript (ExtendScript).
Это не «JS как в браузере» и не замена Python. Это родной язык автоматизации Photoshop, с прямым доступом к:
слоям
тексту
смарт-объектам
экспорту файлов
истории документа
Если задача — управлять самим Photoshop, то скрипты внутри Photoshop — самый надёжный путь.
Что это даёт на практике
Через код можно:
массово менять текст в PSD
генерировать сотни изображений из одного шаблона
автоматизировать экспорт
исключить Actions и Variables с их ограничениями
По сути, мы описываем действия, которые дизайнер делает руками, но в виде кода.
Пример задачи
Есть:
один PSD
текстовый слой
значения 1 м → 100 м
Нужно:
автоматически подставить значения
сохранить 100 PNG-файлов
вернуть PSD в исходное состояние
Пример скрипта для Photoshop (JSX)
#target photoshop
var doc = app.activeDocument;
var layerName = "1 м"; // имя текстового слоя
var outputFolder = Folder.selectDialog("Выбери папку для сохранения");
if (!outputFolder) {
alert("Папка не выбрана");
exit();
}
function findTextLayer(layerSet) {
for (var i = 0; i < layerSet.layers.length; i++) {
var layer = layerSet.layers[i];
if (layer.kind == LayerKind.TEXT && layer.name == layerName) {
return layer;
}
if (layer.typename == "LayerSet") {
var found = findTextLayer(layer);
if (found) return found;
}
}
return null;
}
var textLayer = findTextLayer(doc);
if (!textLayer) {
alert("Текстовый слой не найден");
exit();
}
for (var i = 1; i <= 100; i++) {
textLayer.textItem.contents = i + " м";
var file = new File(outputFolder + "/pkabel_4x2_5_" + i + "m.png");
var opts = new PNGSaveOptions();
opts.compression = 9;
doc.saveAs(file, opts, true, Extension.LOWERCASE);
}
// откат без сохранения
doc.activeHistoryState = doc.historyStates[0];
alert("Готово!");
Новый год уже совсем скоро, а это значит, что пришло время получать и дарить подарки. Лучший подарок, который можно сделать себе в 2026 году — освоить новые навыки и получить оффер своей мечты.
А у нас на Хабр Карьере как раз есть все для этого — сотни проверенных и полезных курсов по самым разным направлениям. Сегодня у нас последняя в этом году подборка — по операционкам.
— Android. От основ Kotlin и архитектуры приложений до публикации в Google Play и работы над реальными проектами.
— iOS. Swift и все возможности Apple, чтобы разрабатывать приложения для iPhone и iPad.
— Windows. Системное администрирование и работа с корпоративной инфраструктурой.
— Linux. База для системных администраторов, DevOps и инженеров по безопасности.
→ Делайте полезные подарки себе и своим близким благодаря нашей витрине курсов.
Привет, Хабр. Мы уже почти отправились на новогодние праздники, но хотим обратить ваше внимание на обзор одной из наших интереснейших книг по теме искусственного интеллекта, вышедшей в конце октября. Это "Программирование с помощью искусственного интеллекта" (AI-Assisted Programming) Тома Таулли. Обзор вышел в корпоративном блоге компании SSP-Soft, он называется "Рецензия на книгу «Программирование с помощью искусственного интеллекта»". Не скроем, нас, как и всю отрасль, всерьёз интересует тема промпт-инжиниринга, однако эта книга - лишь первая ласточка. В настоящее время у нас в работе две рукописи, которые уже можно анонсировать. В высокой степени готовности работа Константина Клепикова с рабочим названием "Графы знаний и логика работы больших языковых моделей". Кроме того, недавно мы согласовали и заключили договор с Камилем Гадеевым @Kamil_GR, который рассматривает в своём блоге на Хабре различные темы, связанные с правильным формулированием промптов и с галлюцинациями искусственного интеллекта. Рабочее название его книги - "Как говорить с искусственным интеллектом. Практическое руководство по промпт-инжинирингу и работе с LLM". Книги по разработке ИИ-агентов (авторская) и RAG (переводная) - в ближайших планах.
Команда разработки Хабра запустила культовую игру Doom прямо на профильном ресурсе для IT-специалистов. Это открытая версия Chocolate Doom, доступная в браузерах на ПК и мобильных устройствах.
Управление на ПК стандартное, также работает мышка (поворот, движение, выстрел). В мобильной версии (в горизонтальной ориентации) также добавлены контролы для удобного управления.
«Зумеры ленивы, не хотят работать и уходят с обеда навсегда» — знакомые жалобы? Автор копает архивы и показывает: точно такие же претензии были к миллениалам («эгоисты без трудовой этики»), поколению X («бездельники MTV») и даже бэби-бумерам в 60-х.
Каждое поколение мнит себя жертвой, а стереотипы — нестареющая классика. Текст для тимлидов, HR и всех, кто устал от стереотипов — с историей, цитатами, опросами и мнениями из разных исследований и СМИ.
Неделю назад выступал с темой MCP сервера и как можно решить проблему с забиванием контекста как при старте диалога, так и при последующем общении через MCP сервера
Это больше походит на исследовательскую работу, а не на мой каждодневный сценарий использования. Мне было интересно, до скольки токенов можно сжать диалог без ухудшения качества
Вот, можете ознакомиться ⤵️⤵️⤵️
Давайте для начала о том, что такое MCP
MCP — протокол, который позволяет LLM подключаться к внешним сервисам: Notion, GitHub, Jira, Google Analytics, любой сервис с API. Один стандартный разъём вместо зоопарка интеграций — как USB для AI.
Протокол создали в Anthropic в ноябре 2024, в декабре 2025 передали в Linux Foundation с поддержкой OpenAI, Google, Microsoft и AWS. Де-факто стандарт индустрии. Вот тут есть каталог серверов, можете глянуть
Но у MCP есть две неочевидные проблемы, на которые я наткнулся после нескольких месяцев активного использования.
🛸 Проблема №1: Tools съедают контекст до старта
Предзагруженные MCP Tools занимают Context Window ещё до первого сообщения. Как системный промпт — уже там, когда вы только открыли чат.
Конкретные цифры из моих замеров:
Apify MCP — 7 инструментов, ~11.8k токенов
GitHub Official MCP — 40 инструментов, ~25-30k токенов
Несколько серверов вместе — легко съедают 40-70k токенов
При контексте в 200k это уже 20-35% бюджета — и вы ещё ничего не спросили.
🛸 Проблема №2: JSON забивает контекст в процессе
MCP-сервер — это переброска JSON-запросов между LLM и сервисом. Каждый вызов инструмента генерирует запрос и ответ, которые остаются в истории чата. Эти JSON часто громоздкие — особенно ответы с данными. Контекст забивается не на старте, а по ходу общения.
Почему это важно
Популярные модели имеют Context Window 128-200k токенов. Это весь бюджет чата: системные промпты, знания о вас, файлы, коннекторы. Что не влезает — забывается.
Хуже того: чем больше загружено в контекст, тем чаще модель теряет детали. В тестах на поиск 8 фактов GPT-5.1 падает с 65% до 30% при заполнении до 100k токенов. Даже более мощная GPT-5.2 проседает с 95% до 70%.
То есть проблема не только в лимите, но и в качестве работы модели при забитом контексте.
Решение для проблемы №1: Dynamic MCP
Docker Dynamic MCP — подключаем серверы не заранее, а динамически, во время разговора.
Например, вместо 40+ инструментов GitHub в контексте постоянно — лёгкий шлюз с базовыми командами:
mcp-find — найти сервер в каталоге
mcp-add — подключить к текущей сессии
mcp-exec — выполнить инструмент
mcp-remove — отключить сервер
Базовая нагрузка: ~4k токенов вместо 40-70k. Серверы подключаются по требованию и удаляются, когда больше не нужны. Работает с каталогом Docker MCP, где уже 300+ верифицированных серверов.
Нужно установить Desktop Client и в настройках Beta Features включить Enable Docker MCP Toolkit
Решение проблемы №2: запускать MCP сервера в SubAgents
SubAgents из Claude Code выполняют запрос в изолированном контексте, возвращая только результат.
Вся грязная работа — поиск серверов, подключение, вызовы инструментов, парсинг JSON-ответов — происходит в отдельном контексте подагента. В основной контекст попадает только чистый финальный ответ.
Claude Code (основной контекст)
│
▼ Запрос
┌─────────────┐
│ SubAgent │ ← вся работа с MCP
└─────────────┘
│
▼ Только результат
Claude Code (чистый контекст)
Итог: ~70k токенов экономии = 35% контекста свободно для реальной работы
Для полного описания всего этого нужна большая статья, так как без картинок и примеров суть идеи может быть непонятна
Факториалы и субфакториалы. Разбираемся с ними вместе с экспертами ИТ-компании «Криптонит».
Когда человек первый раз встречает восклицательный знак в математических записях, он обычно удивляется. Это выглядит, словно цены на распродаже: 50! 80! 100!
На самом деле запись вида n! называется факториал и означает произведение всех натуральных чисел от 1 до n. Например: 5! = 5 × 4 × 3 × 2 × 1 = 120.
Идея факториала встречалась ещё в Древней Индии, а современное обозначение n! ввёл французский математик Кристиан Крамп в 1808 году.
Функция вычисления факториала есть во многих математических библиотеках. Она применяется, в частности, при анализе алгоритмов сортировки для определения верхней границы их сложности.
В общем случае факториал n! показывает количество всех возможных перестановок ИЗ n элементов. Например, из трёх элементов [A, B, C] всего может быть 6 перестановок: ABC, ACB, BAC, BCA, CAB, CBA, т.е. 3! = 6.
Дальнейшее развитие идеи привело к появлению субфакториала.
Он обозначается !n и показывает число перестановок n элементов, в которых ни один элемент не остаётся на своём месте.
Для тех же трёх элементов [A, B, C] субфакториал записывается как !3 и равен двум, поскольку возможны только две комбинации, в которых каждый элемент меняет своё положение: [B, C, A] и [С, A, B].
Факториалы и субфакториалы используются в разных разделах математики.
В комбинаторике они выражают количество перестановок, в теории чисел их изучают в контексте делимости, в теории вероятностей — для подсчёта элементарных исходов.
В новостях нам чуть ли не каждую неделю рассказывают о том, что очередная новая AI-моделька начисто победила людей в каком-нибудь супер-невозможном бенчмарке – а значит, нас ждет полная доминация жестянок уже не далее, чем завтра. И меня тут внезапно настигло чувство дежавю с тем, как я два года назад изучал греческий (потерпите, сейчас всё станет понятно).
В 2024 году я чуть больше чем за полгода занятий с репетитором подготовился и сдал экзамен по греческому языку сразу двух уровней A2 и B1 на «отлично» (или, как говорят греки, «αρίστα»).
Но есть нюанс! Говорить/писать на греческом более-менее свободно я так и не могу. Потому что задачи «сдать экзамен по языку» и «выучить язык» хоть и являются частично пересекающимися, но они далеко не идентичны. И в условиях ограниченных ресурсов, решить первую задачу сверх-оптимизацией получаемых знаний и навыков конкретно под узкую цель «получить все нужные галочки на экзамене» – это гораздо легче, чем прямо «по-честному» осваивать весь широкий набор языковых навыков.
Похожая проблема существует и в мире бенчмарков для оценки искусственного интеллекта. Базовая логика у них понятна: «давайте возьмем какой-нибудь набор задач, которые люди более-менее умеют решать своим мясным умишком с успешностью в среднем эдак 80% – и, если AI их в этом обгонит, то можно заключить, что он уже умнее человека!»
Загвоздка здесь в том, что как только такого рода бенчмарк публикуют, и он привлекает к себе общественное внимание – достичь цели «набрать самый высокий результат и победить на этом фестивале писькомерства между альтмасками и цукербринами» оказывается гораздо проще не через длинный путь «делаем сверх-умную модель, которая вообще всё делает оче-оче круто, в том числе и этот набор задач», а через банальное задрачивание модели на конкретный тип задач в этом тесте.
К чему это я? Тут нейросети на днях успешно забороли очередной «непобедимый бенчмарк по креативности, который уж точно может решить только по-настоящему генерализованный интеллект не хуже человеческого» (читайте подробное описание сути дела у Игоря Котенкова). Значит ли это, что, наконец, «AGI achieved»? Ну, э-э, скорее нет, чем да (по причинам, описанным выше).
Отдельный здесь кек – это то, что для решениях самых сложных задач в такого рода бенчмарках нейросети уже не просто кидают на амбразуру с наказом «ну ты это, постарайся там». Нет, им сейчас делают целый обвес специальных правил, как правильно методологически раскалывать такие орешки. Типа: ты сначала нагенерируй 100 разных ответов на этот вопрос, потом каждый ответ попробуй заново подставить к задачке и прикинь «а не херню ли я сделала?», а потом еще пусть итоговое решение отберет из прошедших предыдущие фильтры вообще другая строгая нейросеть-критик.
И тут уже возникает вопрос: а можно ли считать, что тут действительно валидным будет утверждение «модель XXX решила бенчмарк YYY»? Ведь, в каком-то смысле, тут не сама модель придумала вот этот весь алгоритм – а кожаные датасаентисты сами его подобрали таким образом, чтобы максимизировать получающийся результат.
Мы много писали, вы много читали — и вместе мы сделали этот год насыщенным. А теперь самое интересное: давайте посмотрим, каким был 2025 год для нашего блога.
📚 215 публикаций Столько материалов мы выпустили за год. А вы их (почти все) прочитали. Спасибо за доверие!
👀 1 851 319 читателей Почти два миллиона взглядов на наши продукты, инфраструктуру и разработки команды.
⭐ 852 добавления в избранное Тексты, которые вы сохраняли, чтобы вернуться к ним позже и перечитать внимательнее. А чаще всего вы читали про облачные сервисы, OpenStack, DevOps-практики и тестирование — тексты, основанные на нашем опыте.
И ещё один повод гордиться этим годом — спецпроекты. Их посмотрели, прокомментировали и сохранили на будущее больше 350 000 человек! Масштаб, если честно, впечатляет даже нас.
И если этот год чему-то научил нас, то вот чему: честные истории, понятные разборы и свежие идеи важны и нужны. Поэтому мы продолжим в новом году!
Рассматриваем генетический код через призму машинного в новом выпуске ПВЗ
ПВЗ — подкаст команды Ozon Tech, в котором мы говорим о технологиях. На этот раз — о генной инженерии.
У микрофона ведущие Марина Самойлова, руководитель направления платформы данных, и Виктор Корейша, руководитель направления Managed Services. Гость выпуска: учёный-нейробиолог Владимир Алипов.
Разобрали, действительно ли у человека и бактерии один и тот же генетический код, возможности и этичность его редактирования. Узнали, с какой биг датой работают учёные и смогут ли они сделать человека умнее.
Дочитала замечательный роман «Гроздья гнева» — в России он, увы, не сильно популярен. А вот в Америке читал каждый школьник, как у нас «Тихий Дон». Кстати, автор получил Нобелевку за это произведение.
Эта книга Великую депрессию, а точнее про бедственное положение американских фермеров в те годы. Они массово покидали южные штаты и целыми семьями бежали в Калифорнию в поисках хоть какой-то работы. Естественно, никакой работы не было — люди умирали с голоду на обочинах дороги. Вот только они остались без работы из-за массового использования новой сельхоз техники.
Я читала и думала: ага, а нас-то, диджитальщиков и айтишников, без работы оставит искусственный интеллект. И допьем мы последний айс матча латте на кокосовом, оставим квартиры в Питере и Москве и огромной вереницей тружеников двинемся вдоль трассы. Куда-нибудь в Афганистан — туда, где ChatGPT ещё не успел отобрать работу. В дороге, как и положено: кто-то умрет, кто-то заболеет холерой, кто-то узнает, что в Кабул еще не завезли коворкинги.
И будем мы скитаться, выживать, и лет через двадцать кто-то напишет роман про наше стенание: «Великая айтишная миграция. Упадок».
Больше грустных постов про IT-рынок в моем телеграм-канале. А еще там лавина диких историй из мира маркетинга (про стыдные проекты с экстрасенсами, угрозы переломать ноги и обзоры на всратую рекламу от наших дедов) в моем канале - приходите, будем вместе рефлексировать.
Как тестировать Joomla PHP-разработчику? Компонент Patch tester.
Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать.
На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla.
Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора.
Записал видео (на английском языке) своей критики выдачи ИИ тула от Абишека Вармы из университета штата Иллинойс. Тул генерит SVA (SystemVerilog Assertions) для верификации (по простонародному - QA) цифровых аппаратных блоков систем на кристалле. Для повышения понятности, в начале видео рассказал основные идеи протокола AXI (Advanced eXtensible Interface): правила хендшейка valid/ready, конвейерность транзакций, внеочередной возврат данных по запросу чтения с тэгами.
Правила для проверок оно пишет некорректные. Например что если записать по адресу 100 число 123, то отныне и вовеки веков если прочитать с адреса 100, то там будет 123. Не задумывается, то после первой записи и до чтения может быть вторая, которая запишет число 456.
Далее, проверка для теста проверяет что после сброса (reset) данные на шине AXI будут равны X в виде data == 'x. Но это ерунда по двум причинам: Во-первых, данные могут быть после сброса какими угодно, хоть 0, хоть 123, так как они будуг игнорироваться если с ними не ходит бит valid=1, который кстати сбрасывается в 0. Во вторых, операция сравнения == 'x (неопределенным значением) дает в качестве результата 'x. Чтобы делать именно сравнение с 'x нужно использовать другую операцию ===, то это все равно не будет работать потому что (1). Это вообще невалидный тест.
Но это все цветочки - на это его можно натаскать. Более интересный вид тупости - ИИ конструирует проверку, что если сделаны запросы с тэгами 11, 3, 4, 7, то и данные будут возвращаться в таком же порядке - с тэгами 11, 3, 4, 7. Ему не приходит в голову задать себе вопрос - если бы это было так, зачем в AXI вообще были бы нужны тэги? Они ведь нужны чтобы идентифицировать данные которые приходят не в том порядке, скажем 4, 11, 3, 7.
Китайский разработчик создал мусорное ведро с автоприцеливанием. Умное устройство двигается за пользователем по всему дому и ловит любой мусор. В умное ведро встроены датчики движения и мини-ПК с ИИ, которых рассчитывает траекторию полёта мусора.