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

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
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
👍1
Случаи использования 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
В Python при сравнении объектов с оператором is и == есть разница. Что наиболее корректно?

👾 — is сравнивает значения объектов, а == — их идентичность в памяти
👍 — is проверяет идентичность (один и тот же объект в памяти), == — равенство значений
🥰 — Оба оператора работают одинаково, разницы нет
⚡️ — is всегда быстрее и потому используется вместо ==

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

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

#режимразраба
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🐧 Шпаргалка по работе с утилитой cron и правам для файлов в Linux: на заметку этичному хакеру

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

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

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
📌 5 стратегий кэширования

Постоянно вижу, как разрабы втыкают Redis куда попало, надеясь, что всё само "полетит". Все ищут секретную настройку, чтобы база не тормозила.

• Cache Aside
Приложение само бегает в кэш и базу. Кажется, что это контроль. Итог: при наплыве юзеров база ложится от сотен запросов, пока кэш пустой.

• Read Through
Приложение видит только кэш. Удобно? Да. Итог: ты полностью зависишь от провайдера кэша. Если он затупит, то встанет весь проект.

• Write Around
Пишем сразу в базу. Типа экономим место в памяти. Итог: каждое первое чтение будет медленным, потому что в кэше пусто.

• Write Back
Пишем в кэш, а в базу когда-нибудь потом. Итог: сервер моргнул, данные удалились. Ты только что потерял заказы клиентов за 10 минут.

• Write Through
Пишем везде одновременно. Надежно, но итог: запись становится медленной, как на старой флешке, потому что ждем и кэш, и диск.

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

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

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

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
Давайте честно: этот мем жесткое преувеличение 🤡

Многие боятся идти в бэкенд, потому что думают, что там «черная работа», бесконечная математика и никакого творчества. А фронтенд считают «легкой прогулкой».

Реальность в 2026 году другая:


➡️ Фронтенд давно перестал быть просто версткой. Сейчас это сложнейшие фреймворки, работа с состоянием и оптимизация, от которой пухнет голова.

➡️ Бэкенд стал в разы приятнее благодаря Python и нейросетям, которые берут на себя всю рутину и «грязную» работу в трюме.

А вы на чьей стороне? «Палуба» или «трюм»? Пишите в комментариях 👇
🌚 — трюм
❤️ — палуба

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

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

#небагафича
Please open Telegram to view this post
VIEW IN TELEGRAM
😢1🥱1🌚1
🤖 Ваш ИИ-агент съедает бюджет на токены и падает при сбоях API?

Пора переходить на новый уровень. Открыли продажи курса по AgentOps — управлению ИИ-агентами в рабочих процессах.

Рынок требует инженеров, которые умеют:

• Контролировать метрики и качество ответов;
• Эффективно работать с RAG-архитектурой;
• Строить системы, готовые к реальным нагрузкам.

Обучение займет 6-12 недель под руководством практиков с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, МТС, Huawei, Raft и др.

🎁 Можно подождать, пока про AgentOps начнут говорить все. Или зайти сейчас — НА 30% ДЕШЕВЛЕ!

Работа с AI начинается с систем.
Системы — с AgentOps.


🔥 Забрать скидку и изучить программу.
Как внутри вложенной функции изменить переменную из внешней (но не глобальной) области?

👾 — global x
👍 — nonlocal x
🥰 — Просто x = ... — изменит замыкание автоматически
⚡️ — locals()['x'] = ...

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

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

#режимразраба
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1🎉1👾1
🚬 Зачем тебе Redis на самом деле?

Постоянно вижу, как новички втыкают Redis в проект просто потому, что "в туториалах так делали". Все ищут секретный способ ускорить бэкенд, надеясь, что одна база решит все проблемы.

На схеме основные кейсы:

• Strings (Строки)
База основ. Сессии юзеров, обычный кэш или распределенные блокировки (Distributed Lock). Итог: если не следить за TTL (временем жизни), твой сервер упадет от нехватки памяти быстрее, чем ты скажешь "деплой".

• Int (Числа)
Счетчики лайков, лимиты запросов (Rate Limiter) или генерация глобальных ID. Итог: всё летает, но если не настроить сброс на диск, после перезагрузки твои миллионы лайков обнулятся.

• Hash (Хеши)
Идеально для объектов, например, корзины покупок. Итог: удобно хранить поля "ключ-значение" внутри одного ключа, не раздувая базу.

• Bitmap (Битмапы)

Специфичная штука для аналитики, например, User Retention. Итог: экономишь память в десятки раз, но нужно реально понимать двоичную логику, иначе код превратится в нечитаемую кашу.

• List (Списки) и ZSet (Сортированные сеты)
Очереди сообщений или живые лидерборды в играх. Итог: данные всегда отсортированы и готовы к выдаче за микросекунды

Уже пользовались Redis?

❤️ — да
🔥 — нет

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

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

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
📌 Что значит стек и переполненный стек

На самом деле, стек - это просто структура данных, работающая по принципу LIFO (Last In, First Out). Последним пришел и первым ушел. Представь стопку тарелок: ты не можешь достать нижнюю, не сняв все верхние.

В программировании это работает так:

• Стек вызовов (Call Stack)
Когда ты вызываешь функцию, она кладется в стек. Когда функция завершается, она из него вылетает. Итог: если код логичный и короткий, всё работает как часы.

• Локальные переменные
Они тоже живут в стеке. Выполнилась задача, память очистилась. Это быстро и эффективно. Итог: тебе не нужно вручную чистить память, система делает это за тебя.

• Stack Overflow (Переполнение стека)
Самая известная ошибка. Память под стек не бесконечна. Итог: если ты запустил бесконечную рекурсию (функция вызывает саму себя до бесконечности), стопка тарелок вырастает до потолка и всё падает.

Уже ловили Stack Overflow в своих проектах?
❤️ — да, классика
🔥 — пока бог миловал

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

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

#ликбез
Please open Telegram to view this post
VIEW IN TELEGRAM
💯21🤔1