Азбука айтишника
3.55K subscribers
2K photos
89 videos
9 files
1.54K links
Айти для неайтишников: постигаем азы программирования.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6fce3cb

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🏃‍♀️ Эксплуатация race condition с помощью Turbo Intruder: гайд для начинающего этичного хакера

Уязвимости race condition часто встречаются в веб-приложениях и приносят достойные вознаграждения в рамках багбаунти. Под катом вас ждет гайд по эксплуатации данного бага на примере Vulnerable PHP App (Race Condition).

👉 Читать

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💼 30 сайтов для поиска работы в IT в 2026 году

Рынок IT-вакансий давно вышел за пределы hh.ru и LinkedIn. Одни площадки заточены под стартапы и equity-офферы, другие продвигают прозрачные зарплаты без буллшита, третьи созданы специально для первой работы после универа.

👉 В гайде собрали 30 джоб-сайтов с описанием, кому и зачем они подходят

🔹 Курс разработка AI-агентов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#карьерныйкоммит
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Почему AI-агенту мало просто «дать доступ к данным»

Вижу эту ошибку каждый день: человек решает сделать умного агента по базе знаний компании. Он берет выгрузку из Notion на 1000 страниц, корпоративный регламент в PDF, засовывает всё это в промпт (или прикрепляет файлом) и пишет: «Изучи это и отвечай на вопросы клиентов».

Агент первые два вопроса отвечает нормально, а на третий начинает нести откровенную дичь, путать тарифы и придумывать правила, которых нет.

Вы злитесь: «Я же дал тебе все данные, тупая ты ИИшка!» 🤬

Почему это не работает?
Существует проблема, которая в AI-тусовке называется «Lost in the Middle» (потеря в середине). Если выпихнуть в контекстное окно нейронки огромный лонгрид, она отлично запомнит начало текста, неплохо - конец, но полностью «забудет» или проигнорирует то, что было в середине. Плюс, чем больше контекста вы скармливаете за один раз, тем дороже вам обходится каждый запрос (токены улетают тысячами) и тем дольше агент «думает».

Как делать правильно: RAG (Retrieval-Augmented Generation)
Вместо того чтобы заставлять агента читать всю библиотеку каждый раз, когда его спрашивают, сколько стоит доставка, мы учим его пользоваться картотекой.

Вот реальный пайплайн, который работает в проде и который нужно собирать:
1. Дробим данные (Chunking). Вы берете свой регламент и через код режете его на маленькие кусочки (чанки), скажем, по 500-1000 символов.
2. Превращаем в векторы (Embeddings). Каждый кусочек текста мы прогоняем через специальную модель (например, дешевую и быструю text-embedding-3-small от OpenAI). Модель превращает текст в набор цифр: вектор. Для нейронки это координаты смысла.
3. Складываем в базу. Закидываем эти векторы в векторную базу данных. Забудьте про Excel, тут нужны ChromaDB, Pinecone или Qdrant.
4. Умный поиск. Когда клиент пишет: «Как оформить возврат?», агент не читает весь PDF. Он берет вопрос клиента, превращает его в такой же вектор и мгновенно находит в векторной базе топ-3 куска текста с похожими «координатами смысла».
5. Ответ. Агент отправляет в LLM только сам вопрос и эти 3 найденных абзаца. Всё. Ответ точный, галлюцинаций ноль, стоит копейки.

Что делать прямо сейчас (практический совет):
Открывайте ноут, запускайте Cursor.
Если хотите собрать свою первую RAG-систему за вечер, скажите Cursor'у: "Напиши мне скрипт на Python, используя фреймворк LangChain. Возьми вот этот PDF-файл, разбей его на чанки по 1000 токенов с overlap (перекрытием) в 200 токенов. Сделай эмбеддинги через OpenAI и сохрани локально в векторную базу Chroma. Затем напиши функцию поиска по этой базе".
Вы получите рабочий кусок кода, который станет "мозгом" вашего будущего агента.

Забирайте актуальную базу по ИИ-агентам.

В следующем посте расскажу про главный кошмар разработчика: что происходит, когда агент выходит из-под контроля и начинает жить своей жизнью.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2👍1🥰1
Если не следить за AI-агентом, он быстро начинает жить своей жизнью

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

Представьте: вы собрали агента-сейлза, дали ему доступ к вашей CRM и почте, написали промпт «найди неактивных клиентов и предложи им скидку» и ушли спать.
Утром вы просыпаетесь и видите, что агент:
а) Отправил 500 писем с текстом «Здравствуйте, [Имя_Клиента], держите скидку NaN%».
б) Вошел в бесконечный цикл ошибок и СЖЕГ ВАМ 50 БАКСОВ по API за ночь.

Как агент сходит с ума (анатомия шизы):
Агент работает в цикле ReAct (Reasoning and Acting): он подумал -> вызвал инструмент (например, API почты) -> посмотрел на результат -> снова подумал.
Если API вашей CRM вдруг отвалилось и вернуло ошибку 500, обычный код просто упадет. Но агент же не тупой! Он начинает импровизировать. Он пытается вызвать другой метод, придумывает несуществующие параметры (галлюцинирует аргументы функции), зацикливается на одной ошибке и долбит сервер, пока у вас не кончатся деньги.

Как взять агента за яйца (реальные инструменты):

1. Внедрите Observability (Наблюдаемость).
Вы обязаны видеть, КАК ИМЕННО мыслит ваш агент на каждом шаге.
Практика: Регистрируетесь в LangSmith (это мастхэв тулза от создателей LangChain). Добавляете две строчки кода в переменные окружения, и теперь каждое действие агента пишется в красивый дашборд. Вы буквально видите дерево: вот он получил промпт, вот он решил использовать калькулятор, вот он ошибся, вот он исправил ошибку. Без LangSmith вы кодите вслепую.

2. Ставьте Human-in-the-loop (Человек в цикле).
Никогда не давайте агенту делать критические действия (запись в базу, отправка писем, платежи) без апрува на старте.
Практика: Если вы собираете агента на фреймворке LangGraph, там есть встроенный механизм interrupt_before. Вы настраиваете граф так, что агент доходит до ноды "Отправить email", останавливается и выводит вам в консоль (или в Telegram): "Я хочу отправить такое-то письмо такому-то человеку. Подтверждаешь? (y/n)". Пока вы не нажмете "y", ничего никуда не уйдет.

3. Изолируйте выполнение кода (Песочница).
Если ваш агент умеет сам писать и запускать код (например, для парсинга сайтов), он может случайно написать os.system("rm -rf /") и снести вам систему.
Практика: Никогда не запускайте AI-генерированный код на своей основной машине. Используйте Docker. Пусть агент крутится в изолированном контейнере: даже если он сойдет с ума, он сломает только пустую виртуальную коробку, которую можно перезапустить за секунду.

Забирайте жесткую практику по ИИ-агентам тут.

Следующий постик.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
listen-to-the-whispers.pdf
1.7 MB
👂Прислушайтесь к шепоту: временные веб-атаки, которые действительно работают

Перед вами результаты исследования James Kettle из PortSwigger, которое он представил на DEF CON. Вас ждут новые концепции атак, позволяющие узнать секреты сервера, включая замаскированные неверные конфигурации, слепое внедрение структур данных, скрытые маршруты к запрещенным зонам и обширную область невидимых поверхностей атак.

👉 Читать онлайн

🔹 Курс «Математика для разработки AI-моделей»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
Случаи использования Redis

Redis может использоваться не только для кэширования.

➡️ Сессии – распределение сессии пользователя между разными сервисами

➡️ кэш - кэширование объектов или страниц

➡️ распределенная блокировка (Distributed Lock) – строка Redis может использоваться для блокировки распределенных сервисов

➡️ счетчик – подсчет количества лайков или чтений статьи

➡️ ограничение частоты запросов (Rate Limit) – ограничение частоты запросов на основе IP пользователя

➡️ генератор глобальных идентификаторов

➡️ корзина товаров – хэш Redis может использоваться для представления пар ключ-значение в корзине товаров

➡️ вычисление вовлеченности пользователя (User Retention) – Bitmap может использоваться для представления ежедневного входа пользователя в систему и его вовлеченности

➡️ очередь сообщений (Message Queue)

➡️ ранжирование - для сортировки статей может использоваться ZSet

🔹 Курс разработка AI-агентов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрать демку легко. Но как же сделать нормально 🤔

Ютуб забит роликами «Собрал AI-агента за 5 минут!». Чувак на видео запускает скрипт в терминале, нейронка пишет ответ, все хлопают.

Проблема в том, что когда вы попытаетесь внедрить этот 5-минутный скрипт в реальный бизнес, он ляжет через час 🤡

Демка (Proof of Concept) работает на вашем макбуке, когда вы один задаете ей один вопрос. А теперь представьте, что вы выкатили этого агента-саппорта в Telegram-канал, и ему одновременно написали 50 человек.

Что произойдет с демкой? Она намертво зависнет. Потому что LLM (даже самые быстрые) думают долго от 5 до 30 секунд. Если ваш код написан линейно (синхронно), 50-й клиент получит ответ через полчаса. Или, что вероятнее, API Telegram просто отстрелит вашего бота по таймауту.

В чем разница между демкой и нормальным продом:
1. Асинхронность и Очереди. Прод не ждет ответа от нейронки, заблокировав весь сервер. Он принимает задачу, кладет ее в очередь и идет обслуживать следующего клиента.
2. Управление памятью (Memory Management). В демке вы храните историю переписки в переменной list. Перезапустили скрипт — агент забыл, как его зовут. В проде каждое сообщение мгновенно пишется в базу данных.
3. Обработка отвалов API. В демке, если OpenAI на секунду упал с 502 ошибкой, скрипт крашится с красным текстом в консоли. В проде работает механизм Retry с экспоненциальной задержкой (агент ждет 1 сек, потом 2, потом 4, и только потом вежливо пишет юзеру, что сервис перегружен).

Что делать прямо сейчас (практический совет):
Если вы до сих пор гоняете код в консоли, пора взрослеть.
Открывайте ноут, ставьте Cursor и пишите промпт: "Напиши мне асинхронный Telegram-бот на библиотеке aiogram 3.x. Вся логика общения с ИИ (вызовы OpenAI API) должна быть вынесена в фоновые задачи (например, через Celery и Redis). Историю диалогов каждого пользователя сохраняй в базу PostgreSQL (используй SQLAlchemy). Напиши docker-compose.yml, чтобы поднять всё это одной командой".

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

Забирай жесткую практическую базу по сборке реальных ИИ-агентов на нашем курсе.

В следующем посте расскажу, почему даже идеальный агент через неделю может превратиться в тыкву, и как этого избежать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Как сделать, чтобы это не развалилось через неделю?

Допустим, вы всё сделали по красоте. Агент работает, бизнес-процессы крутятся, вы сидите с коктейлем. Проходит неделя. Внезапно агент начинает сыпать в базу данных битые JSON-ы, путать колонки в таблицах или выдавать клиентам внутренние системные промпты 🤦‍♂️

Вы открываете код, никто ничего не трогал. В чем дело?

Добро пожаловать в реальный мир AI-разработки. Здесь всё имеет свойство «протухать».

Почему агенты ломаются:
- Prompt Drift (Дрейф модели). OpenAI (или Anthropic) постоянно втихую обновляют свои модели. То, что вчера GPT-4o понимала с полуслова, сегодня она может интерпретировать иначе. Ваш промпт остался тем же, но модель изменила поведение.
- Галлюцинации форматов. Вы просили агента вернуть данные в формате {"name": "Иван", "age": 30}. А он вдруг решил добавить вежливости и вернул: Вот ваш ответ: {"name": "Иван", "age": 30}. Ваш парсер кода ломается, всё падает.
- Изменения внешнего мира. Агент парсил сайт конкурента, а конкурент поменял верстку. Агент ослеп, но вместо того чтобы сказать об этом, начинает придумывать цены из головы.

Как бетонировать архитектуру (инструменты для прода):

1. Жесткая валидация через Pydantic.
Никогда, слышите, НИКОГДА не парсите сырой текст от нейронки регулярками.
Практика: Открываем код. Подключаем библиотеку Pydantic. Создаем строгую схему данных (какие поля ждем, какие типы данных — int, str). Передаем эту схему в OpenAI API через параметр response_format={"type": "json_schema"}. Теперь модель на уровне архитектуры обязана выдать валидный JSON. Если она всё-таки ошиблась, Pydantic выбрасывает ошибку, которую мы ловим (try/except) и отправляем обратно агенту: *"Ты ошибся в формате, исправь"*.

2. Аналитика и версионирование промптов.
Промпты нельзя хранить просто как текст в коде.
Практика: Регистрируемся в Langfuse или Helicone. Меняем базовый URL вашего OpenAI клиента на их прокси. Теперь КАЖДЫЙ запрос, его стоимость, задержка и результат логируются. Если через неделю агент сошел с ума, вы открываете дашборд, фильтруете ошибки и сразу видите, на каком именно запросе модель начала чудить. Там же можно тестировать новые промпты на старых данных (A/B тестирование промптов).

3. Fallback-модели (Запасные аэродромы).
Если API OpenAI лежит (а оно ложится стабильно раз в пару месяцев), ваш бизнес не должен стоять.
Практика: Пишете роутер (например, через библиотеку LiteLLM). Логика простая: если вызов gpt-4o падает по таймауту, скрипт автоматически переключается на claude-3-5-sonnet. Для пользователя это выглядит как секундная задержка, а вы спите спокойно.

Рассказываем, как влететь в AI-тренд и собирать надежные системы, за которые не стыдно.
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🐧 Шпаргалка по работе с командой less в Linux: на заметку этичному хакеру

Команда less позволяет перематывать текст не только вперёд, но и назад, осуществлять поиск в обоих направлениях, переходить сразу в конец или в начало файла.

👉 Источник

🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
2
📌 Что значит фуллстек-разработчик

Фуллстек-разработчик это человек, который умеет работать и с фронтендом, и с бэкендом. То есть делать и интерфейс, который видит пользователь, и логику, которая работает на сервере.

Проще говоря, это универсальный разработчик, который может собрать продукт целиком, а не только одну его часть.

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

🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Холивар: отвечать ли на странные вопросы рекрутеров или морозиться

Есть вечная боль: рекрутер задаёт вопрос, который либо слишком общий, либо вообще бьёт мимо.

Примеры:
— «Где вы видите себя через 5 лет?»
— «Назовите свои слабые стороны»
— «Почему ушли с прошлого места?»
— «Сколько хотите зарабатывать?» (без вилки)

Кто-то отвечает честно (и потом жалеет), кто-то уходит в общие фразы, кто-то прямо говорит: «Вопрос некорректный, давайте дальше».

💬 Вопросы в зал:
— Вы отвечаете или морозитесь?
— Если морозитесь, то как это делаете, чтобы не сжечь контакт?
— Может, стоит наоборот троллить вежливо, чтобы отсеивать токсичные компании?

🔹 Курс разработка AI-агентов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#режимразраба
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥21
Media is too big
VIEW IN TELEGRAM
🤠 CSRF: полное руководство по эксплуатации уязвимости

Cross-site request forgering (CSRF) является одной из наиболее эксплуатируемых уязвимостей веб-безопасности, которая приводит к выполнению нежелательных действий.

Эта client-side уязвимость иногда может оставаться незамеченной, но оказывает разрушительное воздействие в зависимости от контекста.

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

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

👉 Читать

🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
splitting-the-email-atom.pdf
3 MB
📨 Использование синтаксических анализаторов для обхода контроля доступа

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

Предсказать, на какой домен будет направлено электронное письмо, должно быть просто, но на самом деле это до смешного сложно — даже для «действительных» адресов, совместимых с RFC.

В исследовании PortSwigger Gareth Heyes показывает, как использовать несоответствия при анализе электронной почты для обхода контроля доступа и даже для RCE.

К исследованию прилагается бесплатный ctf, чтобы сразу же опробовать свои новые навыки.

➡️ Содержание:

● Введение
● Создание путаницы в доменах электронной почты
● Несоответствия в синтаксическом анализе
● Punycode
● Методология/инструментарий
● Защита
● Материалы
● CTF
● Выводы
● Хронология
● Ссылки

👉
Читать онлайн

🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM