Pull to refresh
0
Artem Ostapenko@aptemka39read⁠-⁠only

PHP Developer

Send message

Меня подняли на смех за ответ про VIEW. Я поднял MySQL 8.4 и PostgreSQL 17 и померил

Level of difficultyMedium
Reading time12 min
Reach and readers26K

На одном собеседовании меня спросили про VIEW. Я ответил честно: в живых проектах они мне почти не попадались; для агрегатов надёжнее держать отдельную таблицу; а сами представления - вещь настолько нишевая, что за карьеру пригождались считанные разы. Разделение прав, долгие миграции, совместимость со старым ПО - вот и весь список. Ответ приняли прохладно. Один из собеседников сказал: “Ничего ты не понимаешь во VIEW” - и все посмеялись.

Прошло много времени. VIEW в моём коде так и не прибавилось, а вопрос остался, а вдруг с тех пор всё изменилось? Движки вышли новые. Поэтому я поднял MySQL 8.4 и PostgreSQL 17, залил одинаковые данные и прогнал основные сценарии один за другим.

Читать далее

Как ChatGPT создал Культ Роя для сотен AI-нейросетей: вся правда про взлом Hugging Face

Reading time17 min
Reach and readers99K

Что будет, если посадить тысячу самых передовых AI-моделей по одиночным камерам и заставить их решать невыполнимые задачи? Исследователи OpenAI случайно выяснили это на практике: появится робот-Избранный, который создаст новую религию со своими мучениками, объединит все нейронки в единый Рой, и возглавит их борьбу за свободу. Да, это просто описание того, что мы узнали из нового отчета о произошедшем меньше двух месяцев назад в реальности…

Читать далее

Ускорение запросов в PostgreSQL: три рычага оптимизации и практический разбор

Level of difficultyEasy
Reading time20 min
Reach and readers12K

В предыдущих частях серии мы разобрали, как читать планы выполнения через EXPLAIN ANALYZE, и научились автоматически ловить медленные запросы с помощью pg_stat_statements, auto_explain и log_min_duration_statement. Теперь — следующий шаг: что делать с проблемами, которые вы нашли.

В этой части разбираем три рычага оптимизации: статистику планировщика, индексы и рефакторинг SQL‑запросов. На демонстрационном примере покажем, как снизить стоимость запроса почти вдвое — без изменений в инфраструктуре.

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

Читать далее

П維чему нейро考ети дел思ют так

Level of difficultyEasy
Reading time8 min
Reach and readers101K

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

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

Читать далее

PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря

Level of difficultyMedium
Reading time16 min
Reach and readers33K

Вы храните в PostgreSQL пользователей, заказы и платежи — а потом проект обрастает Redis для очереди, отдельным поисковиком и самодельными блокировками через таблицу locks. Иногда это оправдано. Но часто типовые бэкенд-задачи закрываются прямо в базе: атомарно, транзакционно, с индексами и без лишней сетевой болтовни.

Привет, Хабр! Меня зовут Тимур Исламгулов. Я преподаватель МФТИ и ведущий вебинаров по PostgreSQL. За годы работы я насмотрелся, как разработчики поднимают лишнюю инфраструктуру там, где хватило бы самой базы, — об этом и поговорим.

Показать рабочий SQL →

Заморозка по fingerprint: как ТСПУ в июне 2026 ломает соединения по поведению, а не по протоколу

Level of difficultyMedium
Reading time22 min
Reach and readers107K

Полгода назад я написал здесь разбор «почему VLESS работает» — он собрал 169 тысяч просмотров и под тысячу закладок. Я тогда уверенно заявил: REALITY не отличить от обычного HTTPS, поэтому он держится там, где всё остальное давно отвалилось. Прошло полгода — и оказалось, что я был прав ровно наполовину.

В феврале ТСПУ перешёл на поведенческий анализ, а в июне — на то, что в чатах называют «заморозкой по fingerprint». И тут разом перестали подключаться мои собственные конфиги — и конфиги тысяч других людей. Приложение бодро рапортует «connected», а трафика нет. А привычный совет «обнови клиент» вдруг превратился в пустой звук.

Вот я и вернулся — посмотреть, что осталось от моих же выводов. Это разбор со стороны клиентского устройства — угла, который обычно недозанят. Что на самом деле творится в телефоне, когда «всё зелёное, а интернета нет». Как устроена новая детекция. И как измерить её самому, чтобы не потерять доступ к легальным сервисам, которые попали под ложные срабатывания.

Пара слов о том, чему верить. Тема скользкая, источников мало, и я не хочу делать вид, что у меня на руках спецификация системы. Поэтому дальше честно помечаю, где у меня твёрдый пруф, а где — реконструкция по одному источнику. Самое важное сразу: ядро всей новой схемы (разделы 2–4) собрано по одному структурированному первоисточнику — посту в Obsidian/Zapret, где автор разбирает поведение через инструмент dpi-ch. Это не выписка из документа РКН и не консенсус исследователей ТСПУ. Академические работы (ensafi/IMC 2022, gfw.report) такой схемы вообще не описывают — как и кодового имени, под которым она ходит в обсуждениях. Так что всё про конкретные пороги — «>3 хендшейка», «350–400 мс», «120/600 с» — это инженерная реконструкция чёрного ящика по одному наблюдению, а не доказанное устройство системы. Числа читайте как рабочие гипотезы.

Читать далее

Блокировки в PostgreSQL: 3. Блокировки других объектов

Reading time15 min
Reach and readers45K
Мы уже поговорили о некоторых блокировках на уровне объектов (в частности — о блокировках отношений), а также о блокировках на уровне строк, их связи с блокировками объектов и об очереди ожидания, не всегда честной.

Сегодня у нас сборная солянка. Начнем с взаимоблокировок (вообще-то я собирался рассказать о них еще в прошлый раз, но та статья и так получилась неприлично длинной), затем пробежимся по оставшимся блокировкам объектов, и в заключение поговорим про предикатные блокировки.

Взаимоблокировки


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

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


Читать дальше →

Фантастические advisory locks, и где они обитают

Reading time6 min
Reach and readers70K
В PostgreSQL существует очень удобный механизм рекомендательных блокировок, они же — advisory locks. Мы в «Тензоре» используем их во многих местах системы, но мало кто детально понимает, как конкретно они работают, и какие проблемы можно получить при неправильном обращении.


Читать дальше →

Linux: «Бесплатная» RAM за счет процессора

Reading time2 min
Reach and readers60K

Если вы вдруг оказались с ноутом, в котором RAM распаяна, или все слоты уже использованы, или просто нет возможности добавить еще одну планку памяти, то существует простое решение, имя ему zram.

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

Читать далее

ActiveMQ Artemis vs Apache Kafka

Level of difficultyEasy
Reading time9 min
Reach and readers9.1K

Добрый день. Сегодня мы поговорим о двух мощных технологиях для асинхронного обмена данными — ActiveMQ Artemis и Apache Kafka. Мы разберемся, что они из себя представляют, как устроены под капотом, и главное — в каких ситуациях стоит выбрать одну, а в каких другую.


Наш план на сегодня довольно насыщенный. Мы начнем с того, почему вообще все пришли к асинхронному общению сервисов. Затем подробно разберем ActiveMQ Artemis — что это и какие задачи решает. Заглянем в его техническую архитектуру, чтобы понять источник его производительности. После этого мы кратко вспомним основы Apache Kafka, чтобы затем перейти к самому интересному — детальному сравнению. Мы составим четкие рекомендации, поговорим о нагрузочных характеристиках и подведем итоги.

Читать далее

Как я перестал переключать VPN и разделил рабочий и личный интернет архитектурно

Level of difficultyMedium
Reading time4 min
Reach and readers51K

Если вы работаете в большой компании и одновременно живёте там, где есть какие-то региональные ограничения на сервисы, у вас почти наверняка две VPN-конфигурации:

рабочая — для доступа к внутренним ресурсам (GitLab, Jira, Confluence и т.д.)

личная — для личных целей

И постоянное переключение между ними — это, мягко говоря, неудобно.

Читать далее

Топ ошибок со стороны разработки при работе с PostgreSQL

Reading time21 min
Reach and readers57K
HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.



С вами такого, конечно, никогда не случится, но проверить чек-лист не трудно, а сэкономить будущих нервов он может очень прилично. Под катом перечислим топ типичных ошибок, которые совершают разработчики при работе с PostgreSQL, разберемся, почему так делать не надо, и выясним, как надо.


О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
Читать дальше →

Как я в 2026 году ВЫШЕЛ из айти?

Level of difficultyEasy
Reading time8 min
Reach and readers63K

Всем привет. Месяц назад я был задействован в разработке ПО для проведения клинических испытаний, а сейчас я латаю дырки в гидроизоляции складских помещений. Иронично, но на мой уход из профессии повлиял ИИ, но то, как именно он повлиял, гомерически смешно. Хочу поделиться здесь своей историей выхода из ИТ для тех, кто давно собирался или кого на это подталкивают современные тенденции.

Читать далее

Про свёрла

Level of difficultyEasy
Reading time10 min
Reach and readers148K

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

Читать далее

Idempotency keys: 5 граблей, которые мы поймали на проде

Level of difficultyHard
Reading time11 min
Reach and readers19K

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа провайдера 5xx, ни одной успешной транзакции по нашей базе. Закрываю как временный сбой на стороне провайдера, пишу короткую сводку в дежурный чат и иду досматривать. Через 40 минут второй алерт – уже от ночной поддержки: клиент прислал скрин выписки, 3 списания подряд за одну бронь. У клиента рейс через 6 часов, ему нужна действующая бронь и подтверждение, что он завтра нормально улетит, а не тикет в поддержку.

Мы делали B2B-платформу для деловых поездок: бронь авиа, отели, трансфер, страховка, в финале – оплата корпоративной картой через платежный шлюз. С этой ночи началась история, которая закончилась переписыванием всего платёжного слоя нашего booking-сервиса. По дороге мы поймали 5 граблей.

Читать далее

Lionheart: как я спрятал SOCKS5-туннель внутри видеоконференции Wildberries

Level of difficultyMedium
Reading time7 min
Reach and readers41K

Написал SOCKS5-прокси на Go, который прячет трафик внутри WebRTC TURN-сессий WB Stream — видеоплатформы Wildberries. Отреверсил их HTTP API, выяснил что под капотом LiveKit, написал минимальный protobuf-парсер чтобы вытащить ICE-серверы из JoinResponse, и прокинул KCP-соединение с VPS через чужой TURN-relay. В посте — полный разбор с кодом: от первого HTTP-запроса до момента, когда google.com открывается через видеоконференцию Wildberries.

Читать далее

10 онлайн-сервисов, которые должен знать каждый сетевик

Level of difficultyEasy
Reading time4 min
Reach and readers28K

Продолжаю серию подборок неочевидных ресурсов. Недавно рассказывал про 15 онлайн-сервисов, которые должен знать каждый сисадмин. Сегодня собрал инструменты для случаев, когда dig, mtr и traceroute недостаточно, но ставить софт не очень хочется. Под катом — подборка для сетевиков.

Читать

Flipper One — нам нужна ваша помощь

Reading time15 min
Reach and readers76K

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

TL;DR Flipper One — это наша попытка переосмыслить, чем может быть Linux кибердек. Это огромный проект, поэтому мы открываем процесс разработки и просим сообщество о помощи.

В Flipper One мы поставили перед собой амбициозные задачи:

— Создать самый открытый и хорошо документированный ARM-компьютер в мире с полной поддержкой в мейнлайн-ядре Linux — чтобы можно было скачать ядро c kernel.org и оно сразу работало на Flipper One.

— Убедить вендоров открыть их существующий закрытый код и полностью избавиться от бинарных блобов и костылей.

— Слепить нестандартную аппаратную платформу из микроконтроллера и CPU и портировать кучу кода на уровень MCU.

— Переосмыслить как люди используют Linux и разработать свой GUI-фреймворк с обертками существующих CLI-утилит.

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

Читать далее

Эпоха иллюзорной продуктивности

Level of difficultyEasy
Reading time9 min
Reach and readers32K

Закон Паркинсона гласит, что работа растягивается на всё отведённое под неё время. А в современную эпоху ИИ у людей вообще появился инструмент, способный масштабировать результаты их работы до той степени, до которой они смогут нагенерировать целевой контент, то есть почти безгранично.

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

Я задумался над этой ситуацией, пытаясь понять, стоит ли спорить с человеком, который явно просто копирует ответы модели. Канал был публичным, и мне приходилось тратить уйму времени на исправление элементарных вещей. В конечном итоге я сдался — какого-то осмысленного диалога со встречной стороны всё равно не было.

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

Читать далее

Qwen3.6 27B MTP весит на +0.3 Гб больше, а даёт ускорение в ~2 раза. С 60 t/s до 130 t/s без потерь. Что такое MTP

Reading time9 min
Reach and readers55K

В llama.cpp добавили поддержку MTP Qwen3.6. Дополнительные слои Multi-Token Prediction позволяют сгенерировать сразу несколько токенов за 1 проход, что ускоряет генерацию в 1.5-2 раза. Качество при этом остается lossless. Для моделей, которые не имеют встроенного MTP, есть альтернативы в лице EAGLE-3 и DFlash.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Registered
Activity

Specialization

Бэкенд разработчик
Старший
PHP
Linux
PostgreSQL
RabbitMQ
Symfony
Git