This media is not supported in your browser
VIEW IN TELEGRAM
Самый полезный апгрейд, который реально экономит часы: не "оптимизировать запрос на глаз", а заставить базу самой показать, что она делает.
На больших таблицах скорость почти всегда решают 3 вещи: правильный индекс, правильная форма запроса и правильный JOIN-порядок.
Железное правило: прежде чем трогать код, запускают EXPLAIN ANALYZE и смотрят две красные зоны - Seq Scan на большой таблице и огромные строки после JOIN. Если видишь Seq Scan - значит фильтр не поддержан индексом или условие написано так, что индекс не используется. Если после JOIN получаются миллионы строк - значит нужно сначала отфильтровать и/или агрегировать, а потом соединять.
Самый мощный прием для больших таблиц: сначала выбрать маленький набор ключей (CTE или подзапрос), и только потом JOIN к тяжелой таблице. Это резко уменьшает работу базы, потому что она перестает "перемножать" всё со всем.
ПЛОХО: тяжелый JOIN сразу, база тащит миллионы строк
SELECT u.id, COUNT(e.*) AS events_30d
FROM users u
JOIN events e ON e.user_id = u.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
AND u.country = 'TH'
GROUP BY u.id;
-- ХОРОШО: сначала сузить пользователей до маленького набора, потом JOIN
WITH target_users AS (
SELECT id
FROM users
WHERE country = 'TH'
)
SELECT tu.id, COUNT(*) AS events_30d
FROM target_users tu
JOIN events e ON e.user_id = tu.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
GROUP BY tu.id;
-- Индексы, которые реально помогают этому паттерну
CREATE INDEX IF NOT EXISTS idx_users_country_id ON users (country, id);
CREATE INDEX IF NOT EXISTS idx_events_user_time ON events (user_id, created_at);
-- Всегда проверяй, что база использует индекс, а не Seq Scan
EXPLAIN (ANALYZE, BUFFERS)
WITH target_users AS (
SELECT id FROM users WHERE country = 'TH'
)
SELECT tu.id, COUNT(*)
FROM target_users tu
JOIN events e ON e.user_id = tu.id
WHERE e.created_at >= NOW() - INTERVAL '30 days'
GROUP BY tu.id;
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥5👍3😁2
This media is not supported in your browser
VIEW IN TELEGRAM
📌 UI-TARS-desktop — открытое приложение-агент с GUI, которое превращает ваш компьютер в **интерактивного AI-ассистента** с визуальным восприятием и управлением интерфейсом.
Что это и зачем:
🤖 AI-агент, который видит и кликает
Проект основан на модели UI-TARS (User Interface — Task Automation & Reasoning System). Агент реально *видит экран*, распознаёт элементы интерфейса и может управлять мышью, клавиатурой и браузером по простым естественным командам.
🖥️ Контроль компьютера на естественном языке
Вместо интеграций через API вы пишете команды, а модель сама ищет кнопки, поля ввода и прочие UI-элементы, затем *выполняет действия*. Это работает с приложениями, браузером и элементами рабочего стола.
⚙️ Open-source и кросс-платформа
Проект распространяется под Apache-лицензией, есть релизы, активная история версий и документация для запуска на Windows и macOS. :
📦 Цели проекта
UI-TARS-desktop — это не просто демонстрация: это полноценный мультимодальный AI-агентный стек, который можно использовать для автоматизации повседневных задач без ручного вмешательства.
Страница репозитория: github.com/bytedance/UI-TARS-desktop
Что это и зачем:
🤖 AI-агент, который видит и кликает
Проект основан на модели UI-TARS (User Interface — Task Automation & Reasoning System). Агент реально *видит экран*, распознаёт элементы интерфейса и может управлять мышью, клавиатурой и браузером по простым естественным командам.
🖥️ Контроль компьютера на естественном языке
Вместо интеграций через API вы пишете команды, а модель сама ищет кнопки, поля ввода и прочие UI-элементы, затем *выполняет действия*. Это работает с приложениями, браузером и элементами рабочего стола.
⚙️ Open-source и кросс-платформа
Проект распространяется под Apache-лицензией, есть релизы, активная история версий и документация для запуска на Windows и macOS. :
📦 Цели проекта
UI-TARS-desktop — это не просто демонстрация: это полноценный мультимодальный AI-агентный стек, который можно использовать для автоматизации повседневных задач без ручного вмешательства.
Страница репозитория: github.com/bytedance/UI-TARS-desktop
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
📌 EXISTS РАБОТАЕТ БЫСТРЕЕ COUNT
SQL-совет: перестаньте считать всё через COUNT(*)
Многие пишут так:
SELECT COUNT(*)
FROM orders
WHERE user_id = 123;
Чтобы проверить — есть ли записи.
Проблема:
COUNT(*) считает все строки, даже если нужна просто проверка существования.
На больших таблицах это лишняя нагрузка и медленный запрос.
Правильнее использовать EXISTS.
Почему это лучше:
- База останавливается на первой найденной строке
- Меньше чтения данных
- Быстрее на больших таблицах
- Использует индексы эффективнее
Пример:
SQL-совет: перестаньте считать всё через COUNT(*)
Многие пишут так:
SELECT COUNT(*)
FROM orders
WHERE user_id = 123;
Чтобы проверить — есть ли записи.
Проблема:
COUNT(*) считает все строки, даже если нужна просто проверка существования.
На больших таблицах это лишняя нагрузка и медленный запрос.
Правильнее использовать EXISTS.
Почему это лучше:
- База останавливается на первой найденной строке
- Меньше чтения данных
- Быстрее на больших таблицах
- Использует индексы эффективнее
Пример:
-- Плохо
SELECT COUNT(*)
FROM orders
WHERE user_id = 123;
-- Хорошо
SELECT EXISTS (
SELECT 1
FROM orders
WHERE user_id = 123
);
-- Или в условии
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
🔥19👍9❤3👎1😱1
В Python 3.14 появилось решение, которое помогает избавиться от SQL-инъекций - t-strings 🔒
Проблема
Когда вы используете f-strings для SQL:
пользовательский ввод напрямую попадает в запрос.
Если злоумышленник передаст:
— база выполнит вредоносную команду.
Это классическая SQL injection.
Почему это неудобно сейчас
Безопасный способ — параметризованные запросы:
Но приходится:
• запускать шаблон отдельно
• передавать значения отдельно
• поддерживать две структуры
Что изменилось в Python 3.14
Появились template string literals (t-strings).
В отличие от f-strings, они:
• не возвращают готовую строку
• возвращают объект Template
• отдельно хранят текст и подставленные значения
Пример:
Теперь можно:
• получить все интерполяции
• проверить значения
• экранировать или валидировать их
• и только потом собрать финальный SQL
Результат:
• вредоносный ввод очищается
• SQL-инъекции блокируются
• таблицы остаются на месте
Почему это важно
f-strings - быстрые, но опасные для SQL.
t-strings позволяют сохранить удобство шаблонов и добавить контроль безопасности.
Python движется к безопасным шаблонам по умолчанию, меньше ручной защиты, меньше уязвимостей в продакшене.
Проблема
Когда вы используете f-strings для SQL:
query = f"SELECT * FROM users WHERE name = '{user_input}'"
пользовательский ввод напрямую попадает в запрос.
Если злоумышленник передаст:
admin'; DROP TABLE users; --
— база выполнит вредоносную команду.
Это классическая SQL injection.
Почему это неудобно сейчас
Безопасный способ — параметризованные запросы:
cursor.execute(
"SELECT * FROM users WHERE name = %s",
(user_input,)
)
Но приходится:
• запускать шаблон отдельно
• передавать значения отдельно
• поддерживать две структуры
Что изменилось в Python 3.14
Появились template string literals (t-strings).
В отличие от f-strings, они:
• не возвращают готовую строку
• возвращают объект Template
• отдельно хранят текст и подставленные значения
Пример:
query = t"SELECT * FROM users WHERE name = {user_input}"
Теперь можно:
• получить все интерполяции
• проверить значения
• экранировать или валидировать их
• и только потом собрать финальный SQL
safe = safe_sql(query)
Результат:
• вредоносный ввод очищается
• SQL-инъекции блокируются
• таблицы остаются на месте
Почему это важно
f-strings - быстрые, но опасные для SQL.
t-strings позволяют сохранить удобство шаблонов и добавить контроль безопасности.
Python движется к безопасным шаблонам по умолчанию, меньше ручной защиты, меньше уязвимостей в продакшене.
🔥15👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🎯Продвинутая миграция в SQL, которая спасает продакшен от падения
Самая частая проблема при миграциях - блокировки.
Обычный CREATE INDEX или ALTER TABLE на большой таблице может:
остановить записи
заморозить сервис
создать очередь запросов
и положить базу.
Продвинутый подход - выполнять изменения без блокировки.
В PostgreSQL для этого есть режим CONCURRENTLY.
Он создаёт индекс в фоне,
не блокирует INSERT и UPDATE,
и позволяет делать миграции без даунтайма.
Если таблица большая - это не оптимизация.
Это обязательная практика.
-- Создание индекса без блокировки таблицы
CREATE INDEX CONCURRENTLY idx_payments_user_id
ON payments(user_id);
-- Удаление индекса без блокировки
DROP INDEX CONCURRENTLY idx_payments_user_id;
Самая частая проблема при миграциях - блокировки.
Обычный CREATE INDEX или ALTER TABLE на большой таблице может:
остановить записи
заморозить сервис
создать очередь запросов
и положить базу.
Продвинутый подход - выполнять изменения без блокировки.
В PostgreSQL для этого есть режим CONCURRENTLY.
Он создаёт индекс в фоне,
не блокирует INSERT и UPDATE,
и позволяет делать миграции без даунтайма.
Если таблица большая - это не оптимизация.
Это обязательная практика.
-- Создание индекса без блокировки таблицы
CREATE INDEX CONCURRENTLY idx_payments_user_id
ON payments(user_id);
-- Удаление индекса без блокировки
DROP INDEX CONCURRENTLY idx_payments_user_id;
👍10🔥3❤2
DeepSeek готовится выпустить новую модель V4 - релиз ожидается в ближайшее время (по данным CNBC).
И рынок уже нервничает.
NASDAQ находится под давлением — инвесторы закладывают сценарий, при котором новый релиз может резко усилить конкуренцию и изменить расклад в AI-индустрии.
Почему такая реакция?
DeepSeek V4, по слухам, должен стать серьёзным скачком вперёд:
- более сильное reasoning
- лучшая эффективность
- более низкая стоимость
Если это подтвердится, давление на американские AI-компании и их оценки может усилиться.
Контекст становится ещё интереснее на фоне недавнего заявления Anthropic, где компания сообщила о масштабных попытках distillation через API.
Во времени это выглядит как совпадение:
- готовится крупный релиз DeepSeek
- рынок нервничает
- и одновременно звучат обвинения в копировании возможностей моделей
Если V4 действительно окажется сильным, это может означать новую фазу AI-гонки.
Ответ узнаем очень скоро.
Следующий релиз может повлиять не только на технологии -
но и на рынок.
https://www.cnbc.com/2026/02/23/deepseek-to-release-new-ai-model-a-rough-period-for-nasdaq-stocks-could-follow.html
И рынок уже нервничает.
NASDAQ находится под давлением — инвесторы закладывают сценарий, при котором новый релиз может резко усилить конкуренцию и изменить расклад в AI-индустрии.
Почему такая реакция?
DeepSeek V4, по слухам, должен стать серьёзным скачком вперёд:
- более сильное reasoning
- лучшая эффективность
- более низкая стоимость
Если это подтвердится, давление на американские AI-компании и их оценки может усилиться.
Контекст становится ещё интереснее на фоне недавнего заявления Anthropic, где компания сообщила о масштабных попытках distillation через API.
Во времени это выглядит как совпадение:
- готовится крупный релиз DeepSeek
- рынок нервничает
- и одновременно звучат обвинения в копировании возможностей моделей
Если V4 действительно окажется сильным, это может означать новую фазу AI-гонки.
Ответ узнаем очень скоро.
Следующий релиз может повлиять не только на технологии -
но и на рынок.
https://www.cnbc.com/2026/02/23/deepseek-to-release-new-ai-model-a-rough-period-for-nasdaq-stocks-could-follow.html
🔥6❤4👍3👎1
Ты научишься делать те, которые живут в проде.
Это не про BeautifulSoup ради галочки.
Это про системы сбора данных, которые:
• не падают от мелких правок на сайте
• собирают данные в разы быстрее
• обновляют всё сами по расписанию
• обходят ограничения и баны
• выглядят как сервис, а не хаос из файлов
Ты начнёшь видеть сайты не как страницы, а как источники данных, к которым можно подключиться.
В итоге ты сможешь:
• забирать данные для своих проектов
• автоматизировать чужую рутину
• делать инструменты для аналитики
• брать коммерческие заказы на сбор данных
Это навык, который напрямую превращается в деньги.
Не “знаю Python”, а умею добывать данные из интернета профессионально.
🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/269942/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2👎1
📊 Real-time SQL Traffic Viewer
sql-tap — это прокси-демон, который перехватывает SQL-запросы между вашим приложением и базой данных (PostgreSQL или MySQL), отображая их в интерактивном терминальном интерфейсе. Позволяет анализировать запросы и транзакции без изменения кода приложения.
🚀Основные моменты:
- Перехват SQL-запросов в реальном времени
- Поддержка PostgreSQL и MySQL
- Интерактивный интерфейс для анализа запросов
- Возможность использования EXPLAIN для оптимизации запросов
📌 GitHub: https://github.com/mickamy/sql-tap
#go
sql-tap — это прокси-демон, который перехватывает SQL-запросы между вашим приложением и базой данных (PostgreSQL или MySQL), отображая их в интерактивном терминальном интерфейсе. Позволяет анализировать запросы и транзакции без изменения кода приложения.
🚀Основные моменты:
- Перехват SQL-запросов в реальном времени
- Поддержка PostgreSQL и MySQL
- Интерактивный интерфейс для анализа запросов
- Возможность использования EXPLAIN для оптимизации запросов
📌 GitHub: https://github.com/mickamy/sql-tap
#go
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно установить и использовать браузер в Linux.
Если браузер работает медленно или ломается после обновлений - проблема часто не в Linux, а в установке. Многие ставят браузер из случайных источников или вручную скачивают архивы, из-за чего нет автообновлений, слетают зависимости и появляются ошибки.
Правильный подход - устанавливать браузер из официального репозитория или через пакетный менеджер системы. Тогда вы получаете:
• автоматические обновления безопасности
• корректные зависимости
• стабильную работу
• удобный запуск из системы
Для примера установим Google Chrome официальным способом.
Если браузер работает медленно или ломается после обновлений - проблема часто не в Linux, а в установке. Многие ставят браузер из случайных источников или вручную скачивают архивы, из-за чего нет автообновлений, слетают зависимости и появляются ошибки.
Правильный подход - устанавливать браузер из официального репозитория или через пакетный менеджер системы. Тогда вы получаете:
• автоматические обновления безопасности
• корректные зависимости
• стабильную работу
• удобный запуск из системы
Для примера установим Google Chrome официальным способом.
Установка Google Chrome (Ubuntu / Debian)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
Запуск браузера
google-chrome
Обновление системы (включая браузер)
sudo apt update && sudo apt upgrade -y
Проверка версии
google-chrome --version
❤5👍3👎1
Ты научишься писать сервисы, которые работают в продакшене.
Это не про
«Hello, World» и горутины ради галочки.Это про бэкенд на Go, который:
* выдерживает нагрузку
* обрабатывает тысячи запросов одновременно
* работает быстро и стабильно
* легко масштабируется
* выглядит как реальный сервис, а не учебный проект
Ты начнёшь видеть Go не как язык, а как инструмент для построения систем.
В итоге ты сможешь:
* писать высоконагруженные API
* создавать микросервисы
* работать с базами данных и очередями
* разбираться в конкурентности и производительности
* брать коммерческие backend-проекты
Это навык, который ценится на рынке.
Не «знаю Go», а умею делать быстрые и надёжные сервисы.
🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/274119/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🤬1
Redis и Valkey – изучите секреты самых популярных open source key-value СУБД
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем.
Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
🌐 В программе курса:
🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.
Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак. Автор курса — Константин Ратвин, преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.
🗓 Старт курса: 10 марта, 6 недель обучения.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwiAH9N
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем.
Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак. Автор курса — Константин Ратвин, преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwiAH9N
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
У вас есть две таблицы: users (ID, name) и orders (user_id, amount). Какой тип JOIN вернёт всех пользователей, включая тех, у которых нет заказов?
Anonymous Quiz
10%
A) INNER JOIN
28%
B) FULL OUTER JOIN
57%
C) LEFT JOIN
5%
D) RIGHT JOIN
👍3
ReadySet — это прозрачный кэш базы данных для Postgres и MySQL, который обеспечивает производительность и масштабируемость хранилища «ключ-значение» в оперативной памяти, не требуя от вас переписывать приложение или вручную обрабатывать аннулирование кэша.
https://github.com/readysettech/readyset
https://github.com/readysettech/readyset
❤2👍1🔥1