Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Retry в Go: От граблей к дзену отказоустойчивости

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.6K

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

Читать далее

Еще раз про Di-контейнеры в golang

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.8K

В предыдущей статье я попросил — «Расскажите, зачем вам DI‑контейнер в golang». Большое спасибо всем, кто оставил коммент и проголосовал. Общий вывод такой: используем контейнер, потому что с ним удобно писать тесты. Тесты — весомый аргумент, особенно в контексте того, что тест — это часть кода. Получается, мы все таки «тащим» Di‑контейнер в проект. Ну, хорошо....

Вероятно, это будет uber‑fx, ведь у него хорошая документация, самое простое и понятное API по сравнению с другими..., или нет — не «тащим»?

Мой ответ — нет, uber‑fx не «тащим», потому что можно еще проще и понятнее.

Делаем...

Пишем web-фреймворк на Go: как работают современные web-фреймворки под капотом

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.1K

В данной статье представлен пошаговый процесс разработки легковесного веб-фреймворка на языке программирования Go. Основываясь на стандартной библиотеке net/http, мы исследуем ключевые концепции, лежащие в основе современных Go-фреймворков, таких как Gin, Echo и тд.

Читать далее

Обзор на Model Context Protocol (MCP) от Anthropic

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8K

На заре появления LLM пользователям приходилось просто копировать свой код в текстовое окно, чтобы ИИ могла его обработать. Естественно, такой подход быстро всех утомил, и разработчики начали искать свои способы загрузки данных в модель. У этого подхода была серьезная проблема — каждому приходилось изобретать велосипед заново.

Именно поэтому появился протокол MCP (Model Context Protocol) — универсальный способ дать искусственному интеллекту доступ к нужным данным, неважно где они хранятся — на компьютере пользователя или же в интернете.

Читать далее

Model Context Protocol (MCP): Стандартизация взаимодействия AI-приложений

Время на прочтение6 мин
Количество просмотров13K

Где-то летом 2024 года в некоторых OpenAI сервисах появилась возможность использовать "инструменты".
Инструмент — это функция, которая выполняется на сервере и возвращает некий результат. Например, в ChatGPT можно было использовать инструменты для поиска информации в интернете, для генерации изображений и т.д.

Это был закрытый API, который использовался внутри OpenAI, и как и что там происходило было довольно туманно.

Anthropic (создатель Claude) совершил мини-революцию в AI инструментарии, создав открытый протокол Model Context Protocol (MCP) с расширенными возможностями для создания подобных инструментов и даже больше.

Уже сейчас можно подключать MCP серверы к IDE, например, Cursor AI или Cline, и значительно расширить их возможности. Так же это может рассматриваться как, как минимум, частичная замена RAG и fine-tuning.

И если раньше ваше приложение заискивая пыталось выклянчить у чатбота подходящий результат, то теперь доминанта бизнес-логики снова вернулась к нему, а LLM работает простым сервисом.

Читать далее

Газоразрядная лампа с символами, своими руками

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров6.9K

Текущая работа в домашней лаборатории-мастерской — практический крупный декоративно-сувенирный электровакуумный прибор (ЭВП), развитие прототипа [1] c аргоновым наполнением и дополнительным титановым электродом-геттером, распыляемым разрядом — для некоторого понижения давления и удаления нежелательных примесей в рабочем газе. В работе использовано дешёвое стекло от трубчатых ламп дневного света (ЛДС), несложное самодельное оборудование и оснастка, простые приборы и инструменты.
Читать дальше →

В двух словах о привилегиях Linux (capabilities)

Время на прочтение8 мин
Количество просмотров46K
Перевод статьи подготовлен специально для студентов курса «Администратор Linux».


Привилегии (capabilities) используются всё больше и больше во многом благодаря SystemD, Docker и оркестраторам, таким как Kubernetes. Но, как мне кажется, документация немного сложна для понимания и некоторые части реализации привилегий для меня оказались несколько запутанными, поэтому я и решил поделиться своими текущими знаниями в этой короткой статье.



Самая важная ссылка по привилегиям — это man-страница capabilities(7). Но она не очень хорошо подходит для первоначального знакомства.
Читать дальше →

Механизмы контейнеризации: cgroups

Время на прочтение11 мин
Количество просмотров123K
механизмы контейнеризации

Продолжаем цикл статей о механизмах контейнеризации. В прошлый раз мы говорили об изоляции процессов с помощью механизма «пространств имён» (namespaces). Но для контейнеризации одной лишь изоляции ресурсов недостаточно. Если мы запускаем какое-либо приложение в изолированном окружении, мы должны быть уверены в том, что этому приложению выделено достаточно ресурсов и что оно не будет потреблять лишние ресурсы, нарушая тем самым работу остальной системы. Для решения этой задачи в ядре Linux имеется специальный механизм — cgroups (сокращение от control groups, контрольные группы). О нём мы расскажем в сегодняшней статье.
Читать дальше →

Механизмы контейнеризации: namespaces

Время на прочтение11 мин
Количество просмотров67K
namespaces

Последние несколько лет отмечены ростом популярности «контейнерных» решений для ОС Linux. О том, как и для каких целей можно использовать контейнеры, сегодня много говорят и пишут. А вот механизмам, лежащим в основе контейнеризации, уделяется гораздо меньше внимания.

Все инструменты контейнеризации — будь то Docker, LXC или systemd-nspawn,— основываются на двух подсистемах ядра Linux: namespaces и cgroups. Механизм namespaces (пространств имён) мы хотели бы подробно рассмотреть в этой статье.

Начнём несколько издалека. Идеи, лежащие в основе механизма пространств имён, не новы. Ещё в 1979 году в UNIX был добавлен системный вызов chroot() — как раз с целью обеспечить изоляцию и предоставить разработчикам отдельную от основной системы площадку для тестирования. Нелишним будет вспомнить, как он работает. Затем мы рассмотрим особенности функционирования механизма пространств имён в современных Linux-системах.
Читать дальше →

Как я создавал Observability для своих pet-проектов. Часть 2

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.4K

В первой части мы развернули базовый стек для сбора метрик, логов и трейсов и интегрировали его с приложением на Laravel. Теперь покажу настройку Observability на примере простого Golang-приложения — настроим в нём структурированные логи, распределённый трейсинг и метрики, а также интегрируем с нашим стеком.

Читать далее

Кастомные memory pools в Golang

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.2K

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

В этой статье рассмотрим, почему стандартный sync.Pool в Go не всегда спасает, когда речь идёт о высоконагруженных сервисах, и как кастомные memory pools позволяют взять под контроль работу с памятью.

Читать далее

Fundamentals SNMP

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.5K

SNMP (Simple Network Management Protocol) — это протокол для управления и мониторинга сетевых устройств, таких как маршрутизаторы, коммутаторы и фаерволы. Он является частью системы управления сетью и позволяет администраторам:

Раскройте все возможности SNMP

FRRouting. Без кликбейтного названия

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров8.5K

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

Читать далее

Как мы взломали цепочку поставок и получили 50 тысяч долларов

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров14K

В 2021 году я только начинал свой путь в наступательной безопасности. Я уже взломал довольно много компаний и получал стабильный доход охотой за баг-баунти — практикой этичного хакинга, при которой исследователи безопасности находят уязвимости и сообщают о них, получая за это вознаграждение. Однако я ещё не достиг уровня, позволившего бы мне быстро обнаруживать критические уязвимости цели. Этот уровень умений казался мне недостижимым. Но всё поменялось, когда я познакомился с человеком, ставшим ключевой фигурой в моей карьере баг-баунти: Snorlhax.

Поначалу я видел в нём конкурента. Он был намного выше меня во французской таблице лидеров HackerOne, что стимулировало меня расти над собой. Мы начали общаться в Discord, и спустя несколько недель я рассказал ему о многообещающей программе баг-баунти. Вскоре после этого он обнаружил у этой цели критическую уязвимость, оценённую в 10000 долларов — сумму вдвое больше, чем максимальная полученная мной от этой же цели. Мотивировавшись этим, я вернулся к этой же цели и за ту же неделю нашёл собственную критическую уязвимость за 10000 долларов в другом классе багов.

Вместо того, чтобы продолжать состязаться, мы решили сотрудничать. Теперь нашей задачей стало выявление у этой цели всех возможных классов багов: IDOR, SQL-инъекций, XSS, багов OAuth, Dependency Confusion, SSRF, RCE и так далее. Все их мы нашли, сообщили компании и написали отчёты. Это сотрудничество длилось несколько лет, и даже сегодня мы время от времени снова возвращаемся к этой цели.

Однако недостижимой оставалась одна задача: обнаружение «чудовищной уязвимости». Это должен быть настолько критичный баг, что нам выплатят нестандартное вознаграждение, намного превышающее обычные выплаты. Это стало для нас главной целью.

В посте я расскажу, как мы со Snorlhax наконец-то этого добились.
Читать дальше →

Самодельная танцевальная платформа для игры Dance Dance Revolution

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров2.1K

В этой статье я хочу рассказать, как сделать танцевальную платформу для игры Dance Dance Revolution, аналогичную платформам аркадных автоматов, чтобы можно было играть дома

Читать далее

Строим карту IP коннектов домашних девайсов, без регистрации и смс

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров18K

Вы никогда не задумывались, а куда вообще коннектится все то что у вас дома в сети ? Все эти Windows, MacOS, iOS и прочие проприетарные и умные утюги ? А это не сложно посмотреть. Сегодня в нашем кружке 'Оч.умелые ручки' мы будем следить за теми, кто следит за нами.

Наша цель - построить карту и графики того куда коннектится все то что сидит в сети дома. И не по трафику, понятно что какая-то там условная Амедиатека будет в топе, а именно про то, куда устанавливаются соединения. Готовить будем на Mikrotik, Grafana и Victoria Logs. В результаты мы получим что-то вроде вот этого:

Читать далее

Сливаем отчетность американской Cyber League с помощью базовых утилит Linux

Время на прочтение11 мин
Количество просмотров5.5K

В этой статье я расскажу, как создать хакерское приложение, используя встроенный язык программирования Linux, и собрать базу данных участников западной «Национальной Киберлиги». Можно сказать, хакнем хакеров! ;)

Начнем со ссылки на отчет о соревнованиях Western National Cyber League, а закончим полноценным инструментом автоматизации. По пути рассмотрим основы работы с сURL, научимся обходить базовые ограничения веб-приложений и поработаем с PDF-документами из командной строки. 

Статья будет полезна специалистам по информационной безопасности и всем, кто интересуется автоматизацией процессов в Linux.

Читать далее

Зачем Яндекс.Браузеру эти данные?

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров112K

TL;DR После установки Яндекс.Браузера с опцией отправки статистики, слишком много данных, на мой взгляд, отправляется куда-то в недра api.browser.yandex.ru. С помощью коллеги по цеху ИБ – Олега Анциферова – удалось раскопать следующее: улетает список пользователей, список установленного ПО, файл hosts и т.д. Под катом подробности.

Читать далее

Человеческим языком про метрики 3: перцентили для чайников

Время на прочтение10 мин
Количество просмотров163K

Это третья статья из цикла. В прошлой части мы разбирали типы метрик, и уже там начали встречаться перцентили. Это полезная штука, но для неподготовленного читателя она выглядит просто как математическая дичь. Эта статья поможет разобраться в перцентилях по-инженерному, не заканчивая профильный факультет.

Читать далее

Какую бюрократию мы прошли, чтобы открыть публичное облако в России по новым законам

Время на прочтение9 мин
Количество просмотров11K
image

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

И это только один пример того, что нас ждало в реалиях 2024 года, когда поменялись требования к хостинг-провайдерам. А раз мы открываем публичное облако, то должны им соответствовать.

При открытии облака есть 3 больших области, где нужно всё сделать:
  • Открыть юрлицо (как и любому бизнесу) и прикрутить оплату.
  • Запустить ЦОД (у нас несколько площадок, и одна в собственности, потому что там серверы с иммерсионным охлаждением). Там из интересного, например, строительство оптических линий связи.
  • И, собственно, соблюсти требования РКН по включению в реестр хостингов.

Именно третья часть вызвала больше всего приключений.
Читать дальше →
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность