Все потоки
Поиск
Написать публикацию
Обновить

Разработка

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

Транзакционная работа с топиками: архитектура и сравнение решений в Apache Kafka и YDB Topics

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

Привет, Хабр! Меня зовут Алексей Николаевский, и мы с командой делаем СУБД Яндекса. С 2013 года в Яндексе использовали Kafka для потоковой передачи данных. Но Kafka со временем перестала справляться с растущими объёмами, и в 2017 году мы перешли на своё решение.

Брокер сообщений YDB Topics во многом вдохновлялся Kafka: в нём также есть топики, партиции и аналогичные способы работы с данными. Но есть и существенные отличия, о которых в конце прошлого года я рассказал на московской конференции HighLoad. Под катом — адаптированная для Хабра статья по мотивам этого доклада: про архитектуру транзакций в обеих системах и интересные для разработчиков детали и нюансы, которые мы обсуждали на конференции.

Читать далее

Мультитенантность без глобальных скоупов с сигаретой в зубах. Хипстер PHP

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

Доброго времени суток дорогой читатель!

Всё последующее содержание статьи очевидно является некой формой садизма, так что если если вы пришли за чоколадкой golangом, питоном, ванильным чапманом или другими формами сладкой жизни, лучше уходите.

Тема изоляции данных клиентов (мультитенантность) в saas или подобных продуктах исторически считается если не самой, то одной из наиболее сложных и требующих архитектурных извращений, тем в веб-разработке.

Существует несколько разных подходов, от банального tenant_id в каждой таблице базы данных, до физического разделения данных на разные сервера под разных тенантнов.

Компромиссным решением является выделение идентичных по содержимому (таблицам) схем для каждого нового клиента в одной базе данных. Таким образом мы получаем относительную защиту от утечек данных между клиентами с минимальными затратами на аренду новых серверов. Именно этот вариант мы и будем рассматривать.

Я плачу

Используем Rutoken Lite для шифрования

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

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

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

И тут я увидел валяющиеся без дела USB‑токены...

Ну, так получилось: один старый, но когда‑то навороченный Aladdin, а другой современный, но простой Rutoken Lite, оставшийся после апгрейда.
Что, если использовать их?

Читать далее

Гипотеза пала: 3+3 ≠ 6! Один узел перечеркнул «порядок» во вселенной математики

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

В 1876 году Питер Гатри Тейт предложил измерять то, что он называл «запутанностью» узлов. Шотландский математик, во многом предвосхитивший современную теорию узлов, искал практический способ отличать один узел от другого — задача, мягко говоря, непростая. 

Тейт предложил такой критерий различия. Разложим узел на плоскости и посмотрим на точки самопересечения. В одной из таких точек «перевернём» пересечение: мысленно разрежем, поменяем местами верхнюю и нижнюю нити и снова «склеим». Повторяя операцию столько раз, сколько нужно, можно получить незавязанный круг. Минимальное число таких «переворотов» он назвал мерой незавязанности — сегодня это известно как число развязывания узла.

Читать далее

Suspense в Vue js: на что способен

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

Привет, Хабр!

Есть такой интересный компонент в Vue.js и называется он<Suspense>. Он устроен так, чтобы собирать зависимые async-компоненты и показывать единый индикатор загрузки вместо кучи спиннеров. Проще говоря, пока внутренняя часть (слот #default) ещё не готова из-за ожидания данных, показывается запасное содержимое из слота #fallback. Как только все асинхронные зависимости разрешатся – снимаем запасной экран и выводим основное содержимое. По сути, <Suspense> создаёт границу вокруг вложенных компонентов и контролирует их загрузку.

Читать далее

ARM Cortex-M: пуск Memory Рrotection Unit (MPU)

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

В ARM Cortex-M (Arm v7-M) процессорах есть очень полезный блочок. Называется MPU (Memory Рrotection Unit). Попробуем разобраться что это такое и зачем нужно. .

Читать далее

Алгоритмы сна: почему мозг «оптимизирует» ресурсы именно так, а не иначе

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

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

Читать далее

Почему ИИ в программировании спотыкается в реальной работе: новый бенчмарк показал всю правду

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

Казалось бы, ИИ в программировании уже уверенно прописался в наших кодовых репозиториях: он чинит баги, предлагает патчи и с легкостью проходит тесты на привычных бенчмарках. Отсюда и растет ощущение, что полноценные ИИ-программисты — вот‑вот станут реальностью. Но как только дело доходит до задач из настоящей индустрии, вся сияющая картинка начинает трещать по швам. Новый бенчмарк SWE-Bench Pro устроил моделям суровый экзамен и показал, насколько велика пропасть между вежливым автокомплитом и работой инженерного уровня. Что именно не так — и почему даже самые продвинутые системы вдруг оказываются не у дел, если попросить их разобраться в большом и сложном проекте? Статья про честную проверку возможностей ИИ в мире реальных задач.

Читать далее

Почему я не верю в ИИ-агентов в 2025 году, несмотря на то, что сам их разрабатываю

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

Команда AI for Devs перевела статью, в которой автор делится прогнозами о будущем ИИ-агентов в 2025 году. Его выводы: несмотря на шумиху, «автономные агенты» столкнутся с экономическими и техническими барьерами. Почему текущий подход к архитектуре агентов не сработает и какие методы действительно приносят результат — читайте в статье.

Читать далее

Квантование в картинках: раскрываем тайны сжатия LLM

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров4.9K

Большие языковые модели (LLM, Large Language Model), как подсказывает их название, часто отличаются значительными размерами и слишком велики для того, чтобы нормально работать на обычных компьютерах. Масштабы этих моделей могут измеряться миллиардами параметров. Обычно для обеспечений достойной скорости их работы необходимы GPU с серьёзными объёмами видеопамяти (VRAM).

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

Читать далее

Руководство по переводу React-приложений для i18n (альтернативы i18next и React-Intl)

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

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

Если вы искали решения, то, скорее всего, уже встречали i18next или react-intl. Оба инструмента мощные, но у них есть свои недостатки: высокий порог входа, множество шаблонных JSON-файлов или сложная интеграция с TypeScript.

В этой статье мы разберём:

Читать далее

Графен в электронике: патентный анализ

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

Графен – это монослой атомов углерода, в котором каждый атом связан с тремя соседними, образуя сотовую структуру. Международный союз теоретической и прикладной химии, International Union of Pure and Applied Chemistry (IUPAC), определяет графен как единичный слой углеродных атомов графитоподобной структуры. 

Многие специалисты из разных стран видят перспективы графена в электронике. В частности, терагерцовые полевые транзисторы (TeraFET) на основе графена и углеродных нанотрубок уже хорошо показали себя как чувствительные, быстрые и малошумящие детекторы терагерцового диапазона. Собственно, о графене мы сегодня и поговорим. 

Читать далее

Как настроить SRI, если у нас микрофронты

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

И чтобы всё было безопасно.

Поговорим про CDN, SRI, кэш-отравления, подмены и rsbuild-плагины.

Читать далее

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

Нейтральное сравнение StarRocks и Apache Doris

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

Это обзор двух проектов аналитических СУБД с открытым исходным кодом, которые развиваются в одном классе задач, но различаются архитектурой, приоритетами и типичными сценариями применения. Ниже — нейтральное сравнение по ключевым аспектам: архитектура и запросный движок, хранение и работа в реальном времени, интеграция с открытыми форматами и lakehouse, производительность, эксплуатация и управление, а также рекомендации по выбору в зависимости от нагрузки.

Читать далее

Почему программисты боятся ИИ, но учатся с ним жить

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

Microsoft уволил 9000 разработчиков. Среди них — создатели ИИ-инструментов, которыми их же и заменили. Это не единичный случай: по всему миру программисты массово игнорируют искусственный интеллект, считая его игрушкой или угрозой. Владимир Крылов — доктор технических наук, лектор на канале Ai4Dev по применению ИИ в разработке ПО — видел рождение первых языков программирования и теперь наблюдает, как индустрия стоит на пороге радикальной трансформации. В интервью он объясняет парадокс: почему ИИ действительно замедляет работу в legacy-проектах, но при этом промпт-инжиниринг уже мертв, а на смену ему пришел контекст-инжиниринг.

Читать далее

О подводных камнях виртуальных потоков в Java

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

Виртуальные потоки (JEP 425) являются мощным инструментом для построения приложений, которые в теории могут обслуживать десятки тысяч запросов в секунду. Однако это в теории. Практика же может выглядеть совершенно иначе. Данная статья рассказывает о нескольких подводных камнях, из-за которых виртуальные потоки могут не сработать, а сделать даже хуже.

Читать далее

Топ-5 нейросетей для создания аватаров

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

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

Видео-аватары не устают, не спорят и не требуют премии к Новому году. Хотите стендап? Сделает. Нужно обратиться к подписчикам с важной новостью? Пожалуйста. Даже поздравить тёщу с днём рождения. А самое главное — за всё это не нужно платить, по крайней мере в начале.

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

Приятного чтения!

Читать далее

CSS, который все ненавидят: sin() и cos()

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему тригонометрические функции стали «most hated» возможностью CSS и как их можно использовать с пользой. Мы разберёмся, что делают sin() и cos(), и посмотрим на практические примеры: от круговых раскладок до затухающих анимаций.

Читать далее

Технологии утрачиваются редко

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

Несколько изобретений действительно утрачено и, в сущности, ни одного из них не жалко.  

«Στόλος Ρωμαίων πυρπολῶν τὸν τῶν ἐναντίων στόλον, «т.e. «флот ромеев сжёг вражеский флот». Так в «Хронике Иоанна Скилицы», написанной в XII веке, охарактеризовано применение византийцами греческого огня.

Читать далее

«Перловый ренессанс»: почему забытый язык Perl снова в деле

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

Представьте: вы сидите за терминалом, перед вами — гигабайт логов, и нужно за минуту вытащить ключевые паттерны, сгенерировать отчет и не утонуть в коде. Python? Можно. Но есть инструмент, который справится быстрее, лаконичнее и без лишних библиотек. Это Perl — язык, который многие из вас оставили еще в нулевых. Но в 2025 году он неожиданно выстрелил, взлетев с 27-го на 10-е место в рейтинге Tiobe. Что за магия, что произошло? Давайте разбираться.

Читать далее