«Мы пожинаем
wait_eventЧитать полностью »
«Мы пожинаем
wait_eventЧитать полностью »
Язык C — это парадокс. Созданный полвека назад, он до сих пор лежит в основе операционных систем, баз данных и любого «железа», требующего максимальной производительности. Его называют сложным, устаревшим и недружелюбным. Но почему тогда лучшие системные программисты не спешат от него отказываться? Разбираемся в философии, плюсах и минусах C вместе с Максимом Орловым, программистом Postgres Professional с 22-летним стажем.
Вендоры и исследователи по кибербезопасности традиционно не спешат раскрывать технические детали уязвимостей сразу после их обнаружения. Причина в том, что публикация рабочего PoC (proof of concept) резко повышает вероятность массовой эксплуатации. Компании предпочитают выиграть время, чтобы пользователи успели установить обновления, и только после этого публикуют подробные отчёты.
Однако даже без раскрытия PoC можно определить уязвимости, которые представляют реальную опасность и требуют оперативной реакции.
Аналитики R-VisionЧитать полностью »
Это был обычный понедельник. Я пил кофе, проверял почту, и вдруг — волна уведомлений в Slack. «Сайт не грузится!», «Отчеты зависли!», «Что происходит?».

В мире баз данных, где каждая миллисекунда на счету, а объемы информации растут как на дрожжах, выход PostgreSQL 18Читать полностью »
Листая телеграм-каналы с торговыми сигналами, я часто задавался вопросом: а кто из этих экспертов действительно попадает в цель? Одни обещают золотые горы, другие скромно молчат о своих неудачах. Решил разобраться раз и навсегда — создать систему, которая автоматически проверит, кто из гуру трейдинга говорит дело, а кто просто красиво упаковывает воздух.
Система состоит из четырех компонентов:
TG-Reader — собирает сообщения из телеграм-каналов через MTProto API
Trade-Radar — извлекает торговые прогнозы из текста с помощью AI
AnalyzerЧитать полностью »
Всем привет! Меня зовут Андрей, я Go-разработчик. Сегодня хочу поделиться библиотекой, которая родилась из внутренней боли и желания оптимизировать рабочий процесс.
Классический сценарий подготовки базы для интеграционного теста выглядит так:
func TestMyService(t *testing.T) {
// 1. Создать новую БД (CREATE DATABASE)
// 2. Применить все миграции (N запросов CREATE TABLE, INDEX, FK...)
// 3. Запустить сам тест
// 4. Удалить БД (DROP DATABASE)
// ... и так для КАЖДОГО теста.
}
Разбирая взаимоблокировки у клиента, я вспомнил, насколько опасным может быть использование SELECT FOR UPDATE при конкурентном доступе. В этом нет ничего нового, но я заметил, что многие не знают о режимах блокировки строк в PostgreSQL, и решил подробно описать, когда следует избегать SELECT FOR UPDATE.