Типобезопасное Key-Value хранилище для Kotlin Multiplatform. Единый API без боли, бойлерплейта и потери рассудка
Пользователь
Как писать промпты для генерации изображений: часть 1

Сегодня генерация изображений с помощью искусственного интеллекта становится невероятно доступной и всё более востребованной. Теперь для создания уникальных иллюстраций не нужно обладать художественными навыками или годами изучать программы для дизайна. Достаточно лишь вообразить идею, а современные технологии, такие как Midjourney, DALL-E, Stable Diffusion, или Flux сделают её реальностью. С их помощью каждый может воплотить свои мысли в жизнь — будь то реалистичный портрет, красивый пейзаж или же захватывающий мир фантастической вселенной.
Зачем нужен fillfactor в PostgreSQL

Привет, Хабр!
Один параметр PostgreSQL может похоронить вашу производительность, если вы о нём забудете — это fillfactor. Почему однократная настройка числа приводит к неожиданным page split, bloat и мучительному откату запросов? Давайте разбираться.
Как мы под Новый Год загрузили в PostgreSQL петабайт данных и что из этого вышло

Эта история началась с шутки на офисной кухне 10 декабря, но, как водится, у каждой приличной шутки, она вдруг стала интересной для воплощения, а в конце переросла в не самую технически простую реализацию с хождением по многочисленным граблям.
А началось всё просто: пока все вокруг спорят как настраивать железо и тюнить операционные системы дабы выжать лишних TPS, мы решили проверить как отреагирует движок PostgreSQL если загрузить в него действительно большой объём данных. Например, давайте сделаем базу размером один петабайт и посмотрим как он это переживёт.
На дворе было 10 декабря, руководство поставило задачу сдать отчёт 20 января, до нового года оставалось меньше месяца, а в руках появился знакомый всем инженерам зуд.
За полчаса установил DeepSeek 1.5B, пока вы искали GPT подешевле

DeepSeek 1.5B — маленький, но шустрый собрат больших языковых моделей. Работает локально, не требует железа на киловатт.
Внутри — инструкция по установке, настройке и запуску DeepSeek 1.5B на Ubuntu 24.04 с Ollama и Open WebUI.
Шардированный не значит распределённый: что важно знать, когда PostgreSQL становится мало

Шардирование, двухфазный коммит и распределенные транзакции окружены определенными мифами и заблуждениями. Например, может быть достаточно неочевидно, что двухфазный коммит обеспечивает только атомарность транзакций, но не их изоляцию. Поэтому мы решили написать пост, который бы помог разобраться в этих сложных вещах и сделать правильный выбор, когда Postgres'а Вам станет мало и Вы столкнётесь с шардированием.
Обзор Greenmask — утилиты для логического дампа PgSQL с трансформацией данных на лету

Greenmask — это кроссплатформенный инструмент, разработанный на Go
специально для безопасной работы с данными PostgreSQL: он помогает делать логические бэкапы, восстанавливать таблицы и при необходимости — анонимизировать чувствительную информацию. Главное преимущество Greenmask — полная совместимость с pg_dump
и pg_restore
. То есть, если вы уже работаете с этими инструментами, интеграция Greenmask не потребует пересмотра всей инфраструктуры.
Один из ключевых сценариев использования утилиты - подготовка баз данных для тестового стенда. Greenmask позволяет упростить процесс дампа продуктивных баз, обработки их для анонимизации тех же персональных данных, снижения размера баз (в тестовой среде зачастую не нужны терабайты данных с прода), восстановления дампов в тестовый контур.
Ниже в статье я опишу базовый функционал, примеры конфигураций для начала работы с Greenmask, а так же рассмотрим примеры трансформации данных при дампе таблиц.
Официальный сайт: https://greenmask.io
Документация: https://docs.greenmask.io/latest/
GitHub-репозиторий: https://github.com/GreenmaskIO/greenmask (уже 1308 звезд)
Telegram-канал: https://t.me/greenmask_ru
Для архитекторов и аналитиков: шаблон описания архитектуры приложения (34 страницы пользы)

Архитектура программного обеспечения — основа, от которой зависят качество, производительность и масштабируемость систем. В статье шаблон от экспертов в области архитектуры программного обеспечения с типовыми описаниями и примерами архитектурных представлений. Шаблон доступен для скачивания.
Софт для VDS-сервера, на который стоит обратить внимание новичкам

Если вы арендовали свой первый VDS-сервер и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… Чтобы упростить старт, я собрал список утилит, которые стоит установить в первую очередь. Они помогут настроить сервер под ваши задачи, повысят удобство его использования и защитят от потенциальных угроз.
ACID, BASE, CAP: Фундамент архитектуры распределенных систем

Современная разработка ПО – это почти всегда про распределенные системы. Микросервисы, облака, глобальный охват – все это стало нормой. Но за красивыми диаграммами и модными словами скрывается фундаментальная сложность. Как заставить кучу разрозненных компонентов работать вместе надежно? Как гарантировать, что данные, размазанные по сети, останутся корректными и доступными? Эта головная боль знакома любому, кто проектировал системы сложнее калькулятора, будь то в требовательном финтехе, динамичном e-commerce или где-либо еще.
И вот тут на помощь (или, скорее, для обозначения поля боя) приходят три понятия: ACID, BASE и теорема CAP. Может показаться, что это сухая теория, но игнорировать их – все равно что выходить в море без компаса и карты. Эти концепции описывают фундаментальные компромиссы, с которыми приходится иметь дело каждому архитектору. Понимание их – не гарантия успеха, но его необходимое условие. Давайте погрузимся в их суть и посмотрим, как они влияют на реальные архитектурные решения.
Сделано с любовью и TensorFlow: моя первая нейронка с нуля (без GPU и с бюджетом $0)

Когда я впервые села за компьютер с мыслью: «А не обучить ли мне нейросеть?» у меня не было понимания как это сделать и с чего начать. Зато была любовь к собакам, интерес к машинному обучению и желание разобраться, как всё работает. Так родился проект HappyPuppy - моя первая нейронка, которая распознаёт сибирского хаски и французского бульдога на фотографии. Просто загрузите фото (jpg, jpeg, png до 1MB) с вашим питомцем и модель предскажет породу.
Далее я расскажу, как на домашнем Маке появилась и выросла моя первая сверточная нейронная сеть (CNN): от идеи до работающей модели — её создание, обучение и тестирование.
Эта история будет особенно полезна новичкам в мире ИИ без опыта в программировании.
Ссылка на код на GitHub, архитектура модели и маленький ликбез по сверточным нейронным сетям будут в конце статьи.
А сейчас — история создания по шагам.
Пять свежих проектов на Raspberry Pi: мини-ПК, кибердек, медиаплеер и кое-что еще

Привет, Хабрчане! Если вы увлекаетесь электроникой и у вас под рукой есть «малинка», в этой подборке можно найти вдохновение для экспериментов — вот и еще одна идея, чем развлекать себя на майских. Я собрал пять интересных, на мой взгляд, DIY-проектов. Забегая наперед, скажу, что здесь старый магнитофон становится музыкальным центром, карманный мини-ПК работает на паре Pico, а кибердек в стиле 80-х соседствует с лабораторией для обучения и радиостанцией в корпусе размером с ладонь. Каждый гаджет — не просто игрушка, а реальный инструмент для учебы, экспериментов и работы. Погнали!
Как Postgres хранит строки

Мне стало интересно разобраться, как PostgreSQL хранит данные на диске, и в процессе своего исследования я обнаружил несколько интересных фактов, которыми хочу с вами поделиться.
Мы будем рассматривать только файлы кучи (heap). Heap-файл — это просто файл записей. Не путайте heap-файл с heap-памятью. Хотя их использование очень похоже: хранение динамических данных.
Пайплайн распознавания номеров транспортных средств: как это устроено

Привет, Хабр! Это Анастасия Белозерова, я возглавляю команду, которая занимается исследованиями в области транспорта в VisionLabs. В прошлый раз я писала о пайплайне распознавания ТС, а сегодня поговорим про распознавание номеров. Для нас это одно из ключевых направлений, ведь номер для машины — это уникальный идентификатор, фактически то же самое, что и лицо для человека. Распознавать его можно совершенно разными способами, это всегда интересная задача. Что ж, погнали!
Почему COUNT(*) быстрее, чем COUNT(col) — и когда это не так

Привет, Хабр!
Сегодня поговорим про одну из тех тем, что вроде бы тривиальна, но до последней капли грязи тащит за собой внушительный пласт вопросов. Речь пойдёт про COUNT(*)
и COUNT(col)
в PostgreSQL.
Умный дом на базе Home Assistant и Orange PI 3B в частном доме

В этой статье я расскажу о том, как делал для себя умный дом, выбрав в качестве платформы Home Assistant.
Мой выбор был обоснован от части желанием не зависить от проприетарных решений, а от части меня привлекла гибкость и возможность доработки под нестандартные сценарии. Также этот проект можно расценить как просто DIY-хобби.
Основные задачи, которые нужно было решить
- Управление отоплением - установки температуры в каждом помещении, а различные общие режимы: "Комфорт", "Не дома", "Только первый этаж", "Приеду завтра".
- Управление вентиляцией - режимы "Постоянно включена", "Включена с 23 до 7".
- Управление бойлером - "Постоянно включен", "с 23 до 7", "с 23 до 20".
- Периодическая откачка воды из колодца (чтобы не застаивалась).
Руководство Google по промпт-инжинирингу. Часть 2: продвинутый промптинг и работа с кодом

Представляю вашему вниманию перевод второй части статьи "Prompt Engineering" (Промпт-инжиниринг) авторства Lee Boonstra - Software Engineer Tech Lead, Office of the CTO в Google. Эта публикация продолжает цикл переводов, посвященных методам эффективного взаимодействия с большими языковыми моделями.
В первой части мы познакомились с основами промпт-инжиниринга, базовыми настройками БЯМ и ключевыми техниками промптинга. Вторая часть посвящена более продвинутым и специализированным методам, которые существенно расширяют возможности работы с языковыми моделями и позволяют решать более сложные задачи.
Оригинальная публикация фокусируется в основном на моделях Gemini и сервисе Vertex AI от Google, однако описанные техники и рекомендации универсальны и применимы практически ко всем современным большим языковым моделям (GPT, Claude, Llama и др.).
Лучшие нейросети 2025

Все что нужно знать про лучшие нейросети и тренды в генеративном ИИ в 2025 году.
Свежий анализ топ-100 AI-приложений показывает, что рынок не просто растёт — он трансформируется с появлением продуктов, которые пользователи готовы использовать ежедневно.
Аналитические запросы теста TPC-H в PostgreSQL

В статье рассматривается использование теста TPC-H с PostgreSQL и проблемы, связанные с запросами Q17-Q20 теста.
Введение
Вместе с PostgreSQL поставляется утилит pg_bench с "TPC-B like" тестом. Кроме этого теста были созданы тесты TPC-R для отчётов, TPC-D для OLAP, TPC-W для заказов в веб-магазине, которые не получили распространения. На основе TPC-D был создан более удачный тест TPC-H для хранилищ данных и аналитических запросов ("OLAP нагрузка"). В тесте используется 8 таблиц и 17 ограничений целостности. В TPC-H выделены номинации по размерам обрабатываемых данных от "до 100Гб" до 30-100Тб. Тест TPC-H предназначен для хранилищ данных, включает в себя 22 запроса, которые называют Q1 ... Q22.
Запросы теста TPC-H не меняют данные в таблицах, а значит, для повторных тестирований не нужно пересоздавать или вакуумировать таблицы. В тестах TPC-B, TPC-C, TPC-E запросы довольно простые. В реальных приложениях запросы более сложные, чем в этих тестах. Поэтому для тестирования того, как СУБД выполняет запросы, которые могут встретиться в реальных приложениях, можно использовать все или отдельные запросы из теста TPC-H. Для быстрого аудита производительности различных СУБД используют вариант с 1Гб данных. В этом варианте запросы выполняются быстро, не нужно много памяти под экземпляр СУБД и много места на диске. Можно найти программы или скрипты для большинства СУБД, например, для PostgreSQL, Oracle Database, MySQL. После теста TPC-H появился тест TPC-DS с 99 запросами, но он менее популярен.
PostgreSQL Antipatterns: создаем JSON из строки

Я уже не раз поднимал в статьях тему [не]эффективной работы с json[b]
в PostgreSQL — и как его лучше превращать в выборку, и как можно «транспонировать». Сегодня же рассмотрим некоторые возможности по его генерации на стороне базы.