Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как не облажаться с типами данных в PostgreSQL

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров5.3K

Недавно вышла отличная книга PostgreSQL Mistakes and How to Avoid Them от Jimmy Angelakos — системного архитектора, практика и давнего участника сообщества PostgreSQL. Книга подробно разбирает распространённые ошибки, с которыми сталкиваются разработчики и администраторы при работе с PostgreSQL, и предлагает практичные решения: от тонкостей конфигурации и миграции до антипаттернов в SQL и выбора типов данных.

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

timestamp without time zone может ломать логику расчёта интервалов;

money — это не то, чем кажется (и почему он опасен);

char(n) и varchar(n) не дают ожидаемой экономии и даже вредны;

serial — это прошлый век, а identity — настоящее.

Глава будет полезна всем, кто работает с PostgreSQL в проде — особенно backend-разработчикам, независимо от языка и фреймворка. Если вы проектируете схемы БД, пишете SQL-запросы или просто хотите избежать неприятных грабель — стоит прочитать.

Читать далее

NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров33K

Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для "раздеградирования" YouTube и установил личный рекорд - 400 звезд на GitHub и блокировка статьи РКН через три дня после публикации.

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

Читать далее

Гит, предпосылки его появления и современное использование в веб-разработке

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.5K

Сейчас сложно представить мир разработки программного обеспечения без git – распределенной системы контроля версий. Хотя еще 10 лет назад во многих компаниях использовались другие инструменты: CVS или SVN. Бывали даже такие команды, в которых и вовсе не велось версионирование кода. А 20 лет назад git только-только был создан Линусом Торвальдсом и начал распространяться в среде самых продвинутых разработчиков того времени — участниках опенсорс комьюнити вокруг ядра линукса.

В этой статье мы рассмотрим предпосылки появления git и его современное использование.

Первый коммит гите был сделан 7 апреля 2005 года с описанием: Initial revision of "git", the information manager from hell. В английском языке слово гит означает «неприятный человек», и хотя история благодушно умалчивает, почему Линус назвал свой инструмент именно так, мы можем быть уверены, что в этом названии отражена та сложная обстановка, в которой оказались создатели ядра линукса в начале 21 века. Дело в том, что в начале разработки ядра Linux использовался проприетарный (то есть принадлежащий конкретной компании и не являющийся свободным) инструмент управления версиями под названием BitKeeper. Однако в 2005 году возник конфликт между разработчиками Linux и компанией-разработчиком BitKeeper, в результате которого была отозвана бесплатная лицензия разработчиков ядра.

Читать далее

Чем живут создатели ИИ? ML’щики, приоткройте чёрный ящик, расскажите о себе в нашем опросе

Время на прочтение1 мин
Количество просмотров1.3K

Пока весь мир обсуждает революцию ИИ, те, кто её творят, остаются в тени и просто делают свою работу. Именно им, ML- и DS-специалистам, человечество обязано прорывам в технологиях. Но какие они на работе и в жизни, чем интересуются и главное — что думают об ИИ, который создают? Мы решили расспросить их самих, чтобы составить честный портрет современного ML-щика. Если вы занимаетесь ML и Data Science, добавьте свои штрихи этому портрету — пройдите наш небольшой опрос. А мы потом покажем вам — и всей аудитории Хабра — получившуюся картину.

Пройти опрос

Security Week 2527: серьезная уязвимость в популярных Bluetooth-наушниках

Время на прочтение5 мин
Количество просмотров1.2K
26 июня исследователи из немецкой компании ERNW сообщили об обнаружении серьезной уязвимости в Bluetooth-модулях тайваньской компании Airoha Technology. Эта компания производит SoC, обеспечивающие передачу данных по протоколу Bluetooth. Такие чипы используются во множестве беспроводных TWS-наушников, включая популярные модели от Sony, JBL и Marshall. Специалисты ERNW пока не публикуют технические детали уязвимостей, чтобы дать время производителям наушников на подготовку патчей. Но понятен главный источник проблемы: проприетарный протокол коммуникации, реализованный в чипах Airoha и доступный без какой-либо авторизации.


Протокол (вполне вероятно, использующийся на этапе разработки и отладки) обеспечивает широчайшие возможности по контролю над устройством, включая чтение и запись в оперативную память устройства, а также модификацию прошивки. Коммуникация возможна с любых устройств (не только привязанных к наушникам) в зоне радиоприема — по протоколу BLE GATT и стандартному BD/EDR. Всего по итогам исследования ERNW были идентифицированы три уязвимости с идентификаторами CVE-2025-20700, CVE-2025-20701 и CVE-2025-20702, но речь идет об одной общей проблеме.
Читать дальше →

CLL в ISPA: Семантические действия просто и мощно

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров315

CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.

Читать далее

Как я проектирую и разрабатываю реальные расширения для Python на Rust

Время на прочтение14 мин
Количество просмотров2.7K

Вы, вероятно, уже видели немало статей с заголовками вроде «Python, Rust — производительность, бла-бла-бла…». Печально, но почти все эти статьи демонстрируют лишь самые простые примеры уровня «hello world». В отличие от них, в этой статье я хочу поделиться тем, как я проектирую крупные расширения для реальных проектов и почему принимаю при этом те или иные решения.
Читать дальше →

Тени в эфире: выявление технической слежки при помощи Bluetooth-трекеров

Время на прочтение5 мин
Количество просмотров1.6K

Всем привет! Сегодня разбираем тему, интересную любому цифровому детективу и просто каждому, у кого есть причины опасаться слежки. А именно обнаружение Bluetooth-трекеров. Какой софт лучше всего подойдёт для их выявления? Как не пропустить цифровой хвост, фильтровать лишний шум и правильно анализировать контекст? И где заканчивается здравая цифровая гигиена и начинается паранойя? Обо всём этом и других ключевых моментах обнаружения BLE-слежки читайте под катом!

Читать далее

Flutter Дайджест – Июнь 2025

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров492

Привет, Flutter-разработчики! 👋

Я автор телеграм-канал FlutterPulse! Месяц выдался жарким — и не только из-за погоды ☀️ Мы запустили новую рубрику, пересобрали формат пакетов и собрали для вас крутую подборку новостей, гайдов и видео. Поехали! 👇

Читать далее

Мой худший образец полезного кода

Время на прочтение5 мин
Количество просмотров6.2K

Однажды на собеседовании меня попросили привести примеры написанного мной кода: один — которым я наиболее горжусь, и другой — который я считаю наиболее неудачным. Недолго думая, я осознал, что на оба вопроса у меня готов ответ, и это один и тот же фрагмент кода. Горжусь я им потому, что, пожалуй, из всей моей практики именно этот код оказался наиболее весом, а стыжусь из-за него, так как, по мнению большинства из его читателей, этот код начался с костыля, который затем стали развивать: 

Читать далее

Полное руководство по всем видам тестирования

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров5.8K

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

Читать далее

POLLUX: оценка генеративных способностей моделей для русского языка

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров1.6K

Обычно мы оцениваем способности больших языковых моделей через бенчмарки вроде MMLU, RussianSuperGlue или первых версий MERA, которые напоминают экзаменационные тесты с выбором правильного варианта ответа. Однако на практике пользователи задействуют модели для принципиально иных целей — создания текстов, генерации идей, переводов, составления резюме и прочих задач. Как оценивать результат в этом случае? В этой статье мы расскажем, как решали проблему оценки открытой генерации и что у нас получилось.

Читать далее

Радость создания хобби-программ

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.9K

Мне очень нравится знаменитая цитата Ричарда Фейнмана:

«То, что я не могу создать, я не понимаю»

Она кажется мне великолепной, и я считаю, что она справедлива для многих областей знания (если немного творчески подойти к значению слова «создать»). Наверно, этому принципу я обязан за всё, в чём по-настоящему хорош. Кто-то скажет, что стоит стараться не изобретать велосипед, но они ошибаются: нужно изобретать собственный велосипед, потому что так вы узнаете о его устройстве больше, чем после прочтения тысячи книг.

Сегодня, в 2025 году, красота и ремесло написания ПО подвергаются разрушению. ИИ угрожает тем, что заменит нас (или, по крайней мере, заберёт все самые приятные аспекты нашего ремесла), а разработка ПО становится всё более стандартизированной, выверенной, упакованной и индустриализированной. Разработке программного обеспечения нужно больше простых удовольствий. Я выяснил, что создание хобби-программ — отличный способ снова напомнить себе, почему вообще я начал работать с компьютерами.

Читать далее

Ближайшие события

SSH для дата сайентиста: обзор для начинающих

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

SSH — один из самых важных инструментов в арсенале любого специалиста, работающего с данными. Как человек, который провел бесчисленные часы, подключаясь к удаленным серверам для обучения моделей, могу сказать: без SSH никуда.

Читать далее

GPU Server and AI Infrastructure: тренды архитектуры 2030

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров825

Мы в OpenYard внимательно следим за тем, как развивается инфраструктура для искусственного интеллекта — от железа до сетей и архитектуры дата-центров. Причём это не просто рабочая необходимость, а и то, что нам самим по-настоящему интересно. В эту статью попали материалы, которые мы собираем и анализируем в процессе исследований для наших новых продуктов. Здесь собраны ключевые тренды, которые уже начинают влиять на то, как мы будем строить свою инфраструктуру и запускать модели ИИ в ближайшие 5–7 лет.

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

Читать далее

Переоценка API-стратегий: почему компании мигрируют с GraphQL на REST

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.5K

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

Один из наиболее популярных примеров использования GraphQL — это применение в социальных сетях, где множество пользователей связаны между собой определёнными отношениями. К GraphQL мы прибегаем, когда нам требуется избирательно получить много данных о них. Такая организация пользователей имеет сетевую модель и представляется в виде графа, отсюда и связь с названием GraphQL (Graph — граф, QL — язык запросов).

Итак, почему компании, однажды выбравшие GraphQL, решают изменить свой курс и вернуться к стандартному способу реализации систем? Ответ на этот вопрос лежит на пересечении технических возможностей, бизнес-потребностей и экономических соображений. Давайте разберёмся в этом подробнее.

Читать далее

(BRS) — CLI-набор для сетевой разведки и аудита безопасности

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров754

Мы в EasyProTech часто работаем с инфраструктурой, в которой нет места сложным обёрткам, тяжёлым тулзетам и веб-интерфейсам. Нужно просто:

Читать далее

«Щит» или «дуршлаг»? ML упрощает жизнь разработчиков, но способен проделать новые дыры в безопасности

Время на прочтение10 мин
Количество просмотров598

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

Меня зовут Павел Попов, я руководитель группы инфраструктурной безопасности в Positive Technologies. Расскажу, как сами применяем ИИ и каких результатов нам удалось достичь с внедрением ML-моделей в MaxPatrol VM. А также попробуем ответить на вопрос, заменит ли ИИ разработчиков и есть ли вероятность, что мы все останемся без работы. Если вам тоже интересно, как технологии меняют ИБ-ландшафт и какие решения уже работают сегодня — добро пожаловать.

Читать далее

Недельный геймдев: #232 — 29 июня, 2025

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.1K

Из новостей: Dune Awakening достигла миллиона проданных копий, Peak разошлась тиражом в миллион копий за 6 дней, Крис Авеллон работает над новой RPG, Riot закрывает Hypixel Studios и отменяет Hytale после десятилетия разработки.

Из интересностей: цифровое воровство и справедливость, как мужик пошёл искать Лихо Одноглазое, почему вы откладываете битву с финальным боссом, тапатульки в Майке.

Читать далее

Из чата в TMS: Как Telegram-бот с GPT ускоряет создание и выполнение тестов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров207

В текущих реалиях тестировщики часто остаются в тисках рутины: трудозатраты на создание тест-кейсов и их ручной импорт в TMS (системы управления тестированием) съедают до 40-60% рабочего времени QA-инженера (по данным World Quality Report). Это не просто неэффективно, это тормозит весь релизный цикл.

Но что, если рутину можно переложить на ИИ, не ломая процессы? Представьте: вместо часов кропотливой работы — готовые тест-кейсы за минуты, сразу загруженные в вашу TMS (Allure, Zephyr, TestLink, Test IT и др.) без танцев с авторизациями, VPN и десятками открытых вкладок. Звучит как фантастика? Это уже реальность, и работает она там, где вы бываете каждый день, в Telegram.

Таким образом, получим взрывной дуэт: Telegram-бот + GPT на службе QA.

Данное решение — Telegram-бот, который использует мощь GPT для мгновенной генерации структурированных тест-кейсов по вашему ТЗ (User Story, спецификация, даже голосовое сообщение!). Но главная магия — прямая интеграция с вашей TMS.

Читать далее