Когда в феврале 2022-го вышел Go 1.18 с дженериками, сообщество разделилось на два лагеря. Первые кричали «наконец-то!» и бросились переписывать всё подряд. Вторые — «не нужны были, не нужны и сейчас». Прошло три года. Пыль улеглась. И я хочу поговорить не о том, как написать func Max[T constraints.Ordered](a, b T) T — этому посвящены тысячи туториалов. Я хочу поговорить о том, что реально прижилось, какие паттерны оказались полезными, а где дженерики только мешают.
До 1.18 у нас было два пути: дублировать код под каждый тип или использовать interface{} (а теперь any) с приведением типов в рантайме. Оба такой вот компромисс.
Дженерики предложили писать код один раз так, чтобы он работал с разными типами, и при этом компилятор проверял корректность на этапе сборки.
Читать далееСобрал production‑ready Next.js boilerplate для self‑hosted проектов: один репозиторий, один VPS, Docker + nginx + Let’s Encrypt, GitHub Actions, опциональный MongoDB, авторизация и небольшой UI‑кит. Это кейс про инфраструктуру вокруг Next.js без Vercel и прочих managed‑платформ для большего контроля и экономичного старта.
Читать далееСостоялся выпуск 0.8.0 библиотеки и кроссплатформенной консольной утилиты ZXC (github.com), реализующих высокопроизводительное многопоточное асимметричное сжатие без потерь и оптимизированное для игровых ресурсов, прошивок и пакетов приложений.
Декларируется на 40%+ более быстрая распаковка, чем LZ4 на ARM64, с лучшими коэффициентами сжатия.
( читать дальше... )
Я сейчас собираю маркетинговую кампанию для своей первой игры. Денег на рекламу — ноль. И это, на самом деле, не редкость: большинство инди на старте живут в режиме «или делаем игру, или делаем маркетинг».
И вот что я понял: маркетинг без бюджета работает. Это дисциплина. Это таблицы. Это упаковка. Это тайминг. И это нормальное количество отказов, которое нужно пережить.
Ниже — система, которую я выстраиваю сам. Это не «универсальная истина», но это точно рабочая логика для тех, у кого нет бюджета, зато есть голова и руки.
Читать далееНе Vibe-Coding, а инженерия с AI: Как за полгода я сделал Android‑приложение «Трекер привычек» с социальными функциями, синхронизацией, офлайн-режимом и виджетом
Читать далееВ центре Млечного Пути должно быть много пульсаров, но по какой-то причине мы не можем их найти. Новое исследование выявило кандидата в пульсары очень близко к центру Галактики. Если это подтвердится, появится возможность проверить общую теорию относительности.
Предварительное открытие было сделано в ходе обзора Breakthrough Listen Galactic Center Survey. Это одно из самых чувствительных исследований по поиску пульсаров в сложной центральной области Млечного Пути.
Открытие описано в статье «О самом глубоком поиске пульсаров в центре Галактики и исследовании интригующего кандидата в миллисекундные пульсары», опубликованной в журнале The Astrophysical Journal. Её ведущий автор — Карен Перес, недавно защитившая докторскую диссертацию в Колумбийском университете.
Читать далееПривет, Хабр! Меня зовут Кияшева Екатерина, я занимаюсь качеством. Сегодня хочу поделиться опытом о метриках качества системно. Предложить примеры, провести взаимосвязи: Метрики ⇔ Процессы ⇔ Области управления. Эта статья для руководителей, кто и сам ищет решения, чтобы метрики:
• не ломали команду,
• не показывали погоду,
• работали в пользу продукта и бизнеса.
Ограничения и рекомендации:
Здесь описана модель системы управления. Задумано, чтобы она была узнаваемой и вызывала отклик. Если вы узнаете себя в тексте, призываю использовать статью для поиска собственных взаимосвязей. Прямое копирование решений без опоры на контекст может навредить.
Модель охватывает все стороны управления QA — это большой пласт. Одно предложение в тексте может означать месяц согласований, поэтому подобные изменения внедряют по частям. В статье есть карта «частей» с рекомендациями по сборке собственного роадмапа. Описание — в Навигаторе.
Метрики качества раскрывают уютный хаос — это выгодно на дистанции, но неприятно в моменте. Готовность к «рабочим моментам в полях» и культура общей безопасности обязательны для получения честных данных.
Я выбрала метрики завершенного цикла (рефлексии): они строятся на основе операционных и служат фундаментом для стратегических. Это позволило рассмотреть QA со всех ракурсов и не закопаться в деталях. Определение типов метрик приведено в разделе «О метриках».
Читать далееПосле 400 часов пробега на моем Bambu Lab A1 я решил провести «диспансеризацию» и проверить геометрию стола. План был простой: поставить на печать монослой размером 250×250 мм толщиной 0,2 мм на скорости 50 мм/с.
К моему удивлению, на готовом слое я увидел дефект, которого совсем не ожидал от «бамбука» — классический недолив (under-extrusion). Чтобы подтвердить гипотезу, отправил второй монослой, но уже на 40 мм/с. Дефект остался, но в меньшем масштабе. Значит, я на верном пути: пластика явно не хватает. И только тут я заметил, что в AMS по ошибке выбрал профиль не родного филамента, а обычный PLA от MAKO.
Читать далееВ статье «Пример описания многослойной архитектуры, основанной на использовании наборов подслоёв и иерархии моделей данных» рассмотрен подход к построению многослойной архитектуры приложения с использованием трёх слоёв и девяти подслоёв.
Использование такого набора взаимодействующих между собой слоёв и подслоёв даёт возможность максимально детально описать структуру функционала приложения. Продолжая далее этот подход можно детализировать каким именно функционалом наполняются подслои приложения и для наполнения подслоёв использовать архитектурные блоки. Под архитектурным блоком далее будет пониматься типовой функционал определённого подслоя приложения.
Анализируя типовой функционал приложения можно выделить 9 основных архитектурных блоков.
Читать далееУ нас в «Лаборатории Касперского» есть команда анализа защищенности, занимающаяся поиском уязвимостей в самых разнообразных системах. В ней работают эксперты, способные исследовать практически любое устройство (и публикующие технические заметки о своих находках). Но в жизни практически каждого исследователя безопасности прошивок однажды наступает момент, когда он или она сталкивается с новым или не особо известным микроконтроллером или свежей процессорной архитектурой с кастомными расширениями. В последнее время такие моменты наступают все чаще — за прошедшие несколько лет рынок наполнился огромным количеством новых чипов из Поднебесной, в частности, на базе RISC-V, со своими собственными расширениями и реализациями ядер. И вот не так давно на анализ нашим исследователям попало устройство c таким чипом на базе RISC-V, c базовым набором инструкций RV32I и расширением P (причем еще и не последней версии), добавляющим короткие SIMD-операции (Packed-SIMD Instructions).
То, что наши эксперты видели его впервые — абсолютно нормально. Но, по всей видимости, его впервые видел и IDA Pro — инструмент, которым пользуются наши исследователи. Поэтому им пришлось не только изучить ранний черновик расширения P (оно же Packed-SIMD Extension), но также реализовать поддержку IDA Pro ряда инструкций из него и произвести лифтинг, то есть трансляцию инструкций в промежуточное представление или язык, понятные декомпилятору. Именно этим опытом они и решили поделиться в данной статье.
Но прежде чем переходить к описанию решения этих задач, стоит понять, с чем мы имеем дело, поэтому начать следует со знакомства с документацией по архитектуре RISC-V.
Читать далееКому будет полезно:
• владельцам ПВУ Turkov с Home Assistant (или другой установки с climate-сущностью в HA);
• тем, кто пишет automation/blueprint и упирается в «странное» поведение Jinja;
• тем, кто хочет переносимую логику, а не одноразовый скрипт под одну конфигурацию;
• тем, кто хочет убрать риск опасных режимов в холодный период.
Читать далееКогда таск-трекер внезапно уходит с рынка, процессы не нажимают на паузу. Команда по-прежнему должна держать в порядке задачи, сроки и коммуникацию — особенно если работа идет в высоком темпе. В этот момент перед бизнесом встает болезненный вопрос: чем заменить систему, которая была встроена в ежедневные процессы?
Читать далееТретий выпуск еженедельных IT-новостей от OpenIDE. В этот раз: Google тайно засунул 4 ГБ Gemini Nano в Chrome, разработчик сжёг $600 и отпуск на Claude Code и получил ничего, Трамп выкинул Claude из госзаказа, SWE-Bench оказался пустышкой, а Uber сделал ИИ-копию своего CEO.
Читать далееВ последние месяцы тема возможной блокировки Telegram регулярно появляется в повестке Госдумы, профильных ведомств и СМИ. Обсуждаются как технические ограничения, так и сценарии полной блокировки — вплоть до публикаций о «дате отключения» сервиса с 1 апреля 2026 года, что официально не подтверждено. Кто-то выступает против ограничений, кто-то заранее ищет альтернативы или рассчитывает на использование VPN (лишь бы не переходить на государственные аналоги).
Эта статья не содержит примеров кода и в ней не будет разбираться технический базис блокировок, но будет рассмотрена основа правовая. Цель этой публикации — попытка структурировать данные из разрозненных источников, приведя их в логический вид, а также стремление ответить на вопросы, которые могут возникать после прочтения сотен завлекающих, но неинформативных постов.
• По каким «официальным причинам» Telegram могут заблокировать в России?
• Как Telegram взаимодействует с властями в других странах?
• В каких странах Telegram заблокирован или был под угрозой блокировки?
• Ведет ли Telegram переговоры с российскими властями?
• Почему Павел Дуров не хочет удовлетворять требования российских властей?
Когда речь заходит об оптимизации базы данных, разработчики обычно перечисляют привычный набор приёмов: слегка переписать запрос, накинуть индекс на колонку, денормализовать, сделать analyze, vacuum, cluster, и так по кругу. Классические техники, конечно, работают, но иногда креативный подход даёт гораздо больше.
В этой статье Haki Benita показывает нетипичные техники оптимизации в PostgreSQL.
Читать далееИз новостей: коллекция ссылок и материалов для разработчиков игр, Bluepoint питчила ремейк Bloodborne, онлайн Resident Evil Requiem в Стиме превысил 300к игроков, Даниэль Вавра отошёл от разработки игр.
Из интересностей: вдарим по металлу вместе с Sabaton и Lord of Metal, пишем игру для Commodore-64 в 2020-е, как довести разработку игры до конца, разработка аркадной гонки на Rust с нуля, думаю, я просто помочусь на пол.
Читать далееЕсть одна важная мысль от американского маркетолога Эйлин Вайлдер, которая заставляет пересмотреть всю логику ценообразования.
Она говорит:
«Предлагая человеку дешевый продукт, мы его обкрадываем».
Звучит резко. Но если вдуматься — в этом есть глубокая человечность и забота.
Человек приходит к нам с проблемой, с болью, с тем самым «затыком», который не дает ему двигаться дальше. Он просит помощи.
И что мы часто делаем? Говорим: «Вот, возьми для начала этот бесплатный чек-лист (лид-магнит). Попробуй сам». Потом: «А вот недорогой вебинар. Разберись сам».
И человек начинает этот путь. Недели, месяцы проб и ошибок, поисков, разочарований. Он теряет самый невосполнимый ресурс — свое время и энергию, продлевая свое пребывание в той самой проблеме.
А ведь мы могли бы с самого начала предложить ему дорогой, но прямой и эффективный путь к решению. Ту самую «тропинку», о которой мы говорили на вебинаре.
Да, мы экономим ему деньги (как нам кажется). Но мы крадем время его жизни, которое он проводит в состоянии дискомфорта, неопределенности и стресса.
Поэтому цена — это не просто цифра на ценнике. Это наша ответственность.
✔️ Дешевый или бесплатный продукт — это ответственность клиента: «Попробуй сам, это твой путь и твои риски».
✔️ Дорогой, продуманный продукт — это ваша ответственность: «Я знаю путь, я проведу тебя по нему быстро и безопасно, я беру на себя эту работу».
Читать далееВ настоящее время на рынке представлено несколько решений для работы с картами, многие из них конкурируют друг с другом, а также существует большой выбор инструментов и библиотек, которые позволяют реализовать различные функции картографирования в веб-приложениях. Эти решения постоянно совершенствуются и обновляются, что создает здоровую конкуренцию между ними и мотивирует разработчиков внедрять новые возможности.
В этой статье мы рассмотрим две самые популярные библиотеки для работы с картами — MapLibre и Leaflet. Обе библиотеки получили широкое распространение и часто используются разработчиками для интеграции карт в веб-проекты различного уровня сложности. Мы разберем основные сценарии использования этих библиотек, а также рассмотрим их сильные и слабые стороны. Это позволит понять, какая из них лучше подходит для конкретных задач и на какой библиотеке остановить свой выбор в каждом отдельном случае.
Обе библиотеки представляют из себя дополнительный слой, который отображается поверх любой карты, такой как Open Street Map (OSM), Google Maps, Яндекс.Карты и многие другие популярные платформы. По сути, библиотека предоставляет инструменты для визуализации, манипулирования и взаимодействия с картографическими данными непосредственно внутри вашего приложения, не ограничиваясь каким-либо одним провайдером карт.
Всю работу с тайлами берут на себя сами библиотеки — они автоматически подгружают необходимые фрагменты карты, обеспечивают их отображение в нужном масштабе и позволяют реализовать различные слои с динамическими эффектами. Таким образом, мы как разработчики можем сконцентрироваться на использовании многофункционального и гибкого API, который способен закрыть множество повседневных потребностей.
Читать далееПривет, Хабр! Мы — Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать.
Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Читать тридцать восьмойНо не в самом приложении Max – речь пойдёт о продукте стороннего разработчика внутри мессенджера, который почему-то не хочет исправлять очевидную и крайне серьезную ошибку своего сервиса.
Читать далее