Обновить

Все потоки

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

Выбор между RabbitMQ и Apache Kafka

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели10K

Если вы задаётесь вопросом, что лучше — Apache Kafka или RabbitMQ, или думаете, что RabbitMQ надёжнее Apache Kafka, хочу сразу остановить вас. Эта статья рассматривает обе системы с более широкой точки зрения и сосредоточится на функциональности, которую они предоставляют. Это поможет вам принять обоснованное решение о том, какую систему использовать и в каких случаях.

Kafka vs RabbitMQ

Про одну, почти забытую технологию…

Время на прочтение7 мин
Охват и читатели17K

Зачем топтать мою любовь паять своё авто? ;-)

Каждый день, одни технологии уходят, а другие приходят, вставая на место ушедших, где многие из них представляют собой довольно интересный объект для исследования, в свете чего, окунемся в прошлое, и посмотрим на ещё одну, которая почти осталась «за кадром»...

Читать далее

Как защитить сервисы от вирусов-шифровальщиков при помощи MIND Guard #guest

Время на прочтение11 мин
Охват и читатели7.7K

«Администраторы делятся на три категории — тех, кто еще не делает бекапы, тех, кто уже делает, и тех, кто уже проверяет бекапы.»

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

Здесь кроется ловушка: резервное копирование позволяет восстановиться после сбоев, которые легко распознать, например, от физических отказов — выхода из строя диска, случайного удаления тома, сбоя узла.

Читать далее

Почему QA должен быть душнилой: тестируем PostgreSQL и не даём разработчикам расслабиться

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.9K

Когда ты тестируешь интернет-магазин, пропущенный баг — это съехавшая вёрстка. Но если ты тестируешь высоконагруженную СУБД — это остановка бизнеса федерального масштаба. Разбираем внутреннюю кухню QA в Postgres Professional: от борьбы с утечками памяти через ASAN и Valgrind до «вайб-кодинга» с ИИ. Узнайте, как выстроить процессы качества так, чтобы не уронить прод, когда цена ошибки исчисляется миллионами.

Читать далее

Поздравляю с Днём системного аналитика и объясняю почему его празднуют сегодня, а не 24 сентября

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

В этой статье впервые в русскоязычное ИТ-сообщество привносится информация о подлинном Дне системного аналитика.
Также, опровергается распространенный миф, якобы 24 сентября празднуется День СА — мы увидем, что доказательств этому нет.

Читать далее

Qwen3Guard: следующий шаг в модерации и контроле контента

Время на прочтение6 мин
Охват и читатели6.4K

Всем привет! Меня зовут Миша Мартьянов, я инженер по исследованиям и разработке в лаборатории AI R&D в red_mad_robot. В мои задачи входит проверка гипотез и развитие наших продуктов. Однако недостаточно просто улучшать продукты, необходимо также чтобы они работали устойчиво и безопасно. 

Ранее я рассказывал разработку идеального контент-фильтра на базе Guardrails. Но время не стоит на месте: появляются новые модели и новые практики их применения. Этому и будет посвящён наш сегодняшний разговор.

Читать далее

Monkey patching? В Go? Серьёзно? Или как писать тесты и не сойти сума

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

На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?»

Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться».

И тут я, конечно, немного завис :D

Да, технически в Go есть способы делать monkey patching (еще и есть библиотека) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

Читать далее

Повышение точности ГЛОНАСС не запуском дополнительных спутников, а кодированием

Время на прочтение4 мин
Охват и читатели6.9K

Введение

Одной из основных характеристик глобальной навигационной спутниковой системы ГЛОНАСС является точность оценки координат и высоты, полученных в навигационной аппаратуре потребителей (НАП) только по спутниковым сигналам без привлечения дополнительной информации. Большое влияние на точность позиционирования оказывают характеристики НАП. Стандартные образцы НАП не обеспечивают необходимый уровень помехоустойчивости при существующем уровне мощности принимаемых сигналов ГЛОНАСС порядка минус 166…156 дБВт.

Точность  измерения координат определяется количеством спутников, одновременно видимых навигационным оборудованием. Ошибки ГЛОНАСС составляют  3-6 м при использовании 7-8 спутников. На большей части поверхности земли над горизонтом находятся одновременно до 11 спутников ГЛОНАСС, однако отношение сигнал/шум в канале связи, необходимое для безошибочного приема информации,  часто обеспечивается только для 2-4 спутников. На рисунке 1 показан пример видимости спутников разных систем навигации в условиях городской застройки.

Читать далее

Единая теория информации: от стохастической метрики к непрерывному пространству и эффективной гравитации

Уровень сложностиСложный
Время на прочтение24 мин
Охват и читатели9K

Почему закон обратных квадратов так точен? Почему постоянная Планка имеет такое значение? Почему пространство выглядит гладким, хотя под ним скрывается квантовый хаос?

В этой работе показывается, что ответы на эти вопросы можно получить из единого принципа — Принципа Наименьшего Информационного Действия, а также что: пространство возникает как статистическое среднее стохастической метрики, 1/r² — эмерджентный закон (результат закона больших чисел), квантовая неопределённость — следствие минимальной стоимости корреляции, время — результат самосогласованных информационных структур, постоянная Планка ℏ — цена одной корреляции, голографический принцип — следствие оптимальности информационного действия.

Читать далее

Элементарный дебаггинг с binding.irb

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.4K

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

В чем же дело?

Многопоточность для самых маленьких. Виртуальные потоки. Часть 2

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

Всем привет!

Многопоточность в Java развивается очень быстро, а многие всё ещё ограничиваются обычными потоками и ключевым словом synchronized. Сегодня я хочу рассказать именно о виртуальных потоках: как с ними работать, почему они меняют подход к многопоточности и какие задачи решают лучше традиционных механизмов. Буду объяснять просто и понятно, чтобы материал был полезен как новичкам, которые только знакомятся с виртуальными потоками, так и опытным разработчикам, которые хотят понять современные практики и возможности Project Loom.

Читать далее

Продление срока службы бортовой электроники космических аппаратов

Время на прочтение7 мин
Охват и читатели5.3K

Для электронной аппаратуры космических систем, и в первую очередь устройств памяти, актуальна задача защиты от воздействия ионизирующего космического излучения и других внешних факторов, искажающих хранимую и обрабатываемую информацию. Радиационные эффекты и космические частицы создают большое число накапливающихся в устройствах памяти ошибок. Использование известных методов помехоустойчивого кодирования информации дает эффект в течение ограниченного времени, пока число ошибок не становится слишком большим. В ответственных системах используется ECC-память – (error-correcting code memory, память с коррекцией ошибок) – тип компьютерной памяти, которая автоматически распознаёт и исправляет спонтанно возникшие изменения (ошибки) битов памяти – одну ошибку в одном машинном слове. При длине машинного слова 64 бита количество исправляемых ошибок < 1,5%.

Для повышения надежности хранения информации представляет интерес форма записи данных, обеспечивающая восстановление блока информации по его фрагменту – голографический метод записи, использующий свойство делимости голограммы (возможность восстановления полного изображения объекта по фрагменту голограммы).

Читать далее

Как мы помирили маркетинг и сэкономили несколько часов в неделю на ведение отчётности в Excel

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

Топ-менеджеры юрфирмы по банкроству физлиц тратили несколько часов в день на подготовку к еженедельной планёрке. Например, руководитель колл-центра делал кучу выгрузок в amoCRM, открывал каждую сделку вручную, копировал и вставлял её в Excel.

На еженедельных планёрках собирались сразу несколько отделов — маркетинг, колл-центр, продажи и отдел качества. Каждый отдел готовил отчёт вручную, опираясь на свои источники данных. В итоге на обсуждении цифры не сходились.

Маркетинг утверждал: «Мы привели лиды, а вы просто не умеете продавать». Продажи отвечали: «Ваши лиды — говно».

В статье я расскажу, как мы помогли топ-менеджерам перестать тратить полноценный рабочий день на ведение отчётности, а собственнику – составить прозрачную картину, кто прав, кто виноват, и что делать, чтобы достичь плановых показателей.

Читать далее

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

Разработка цифровой аппаратуры нетрадиционным методом: Контроллер USB 1.0 на SpinalHDL

Уровень сложностиСредний
Время на прочтение127 мин
Охват и читатели1.5K

Продолжая развивать свою синтезируемую систему-на-кристалле для ПЛИС, о которой я уже написал несколько статей, столкнулся с необходимостью подключать устройства ввода типа клавиатура, манипулятор мышь или джойстик. Если обратиться к тому, чем занимаются ретро-фаны, то проблем особых нет — старый добрый интерфейс PS/2 очень прост в реализации, он позволяет легко взаимодействовать с клавиатурой и мышью с минимальными ресурсами. Фактически PS/2 это последовательный синхронный порт работающий на низких скоростях, реализовать его можно программно. С ретро-джойстиками тоже проблем нет - положение джойстика это всего лишь замыкание контактов, что легко обрабатывается программно. Проблема в том, что всё это «ретро» постепенно уходит из нашей жизни, клавиатуры и мыши с интерфейсом PS/2 всё еще можно приобрести на маркетплейсах, но всё же редкость. И от джойстика хочется чего-то большего чем просто замыкания пяти контактов, а именно — градации положения стика. Такая фича доступна либо на очень старых аналоговых джойстиках, либо на современных геймпадах с USB интерфейсом. В конце концов я разрабатывают хоть и минималистичную, но современную систему с современной архитектурой (RISC-V) предназначенную для современного промышленного применения, а не для ретро-гейминга. ;-) В общем, встал вопрос как подключать простые HID устройства ввода через USB к своей синтезируемой ЭВМ.

Интерфейс шины USB на столько широко вошел в обиход, что мы даже не задумываемся что там внутри: сколько сигнальных проводов в USB кабеле, как они подключены, как передаются по ним данные, на каких скоростях и какие могут быть ограничения. Всё что мы знаем это то, что USB бывает разных версий: 2.0 — медленный и 3.0 — очень быстрый; и что USB устройства бывают с разными видами разъемов: USB type A и, с недавних пор, USB type C. Для большинства пользователей и программистов USB это такая штука, которую «вставил и работает». А если нет, то нужно вынуть, перевернуть устройство два раза вокруг его оси и вставить в компьютер еще раз. Если и так не заработало, то искушенный пользователь возможно вспомнит команду lsusb чтобы выяснить какие сейчас устройства присутствуют в системе или даже заглянет в dmesg чтобы выяснить наличие ошибок при детектировании устройства. Но что означают эти сообщения ? Еще меньшее число пользователей понимает результат вывода команды lsusb -v. Не многим лучше обстоят дела с пониманием USB у разработчиков электроники. Обычно на их уровне USB это четыре провода: GND, VBUS, D+ и D-, при этом каждый электронщик знает что D+ и D- это дифференциальная пара которую требуется трассировать на печатной плате соответствующим образом. Но так ли это на самом деле ?

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

Читать далее

Как получить скрытые метрики памяти в VMware vCenter

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели5.6K

Всем привет! Я Игорь Голиков, ведущий разработчик ГК “Юзтех”.  В данной статье хочу рассказать о метриках памяти в VMware vCenter, в том числе как получить скрытые метрики. 

Статья может быть полезна SRE/DevOps и администраторам VMware vCenter, заинтересованным в получении «гостевых метрик» виртуальных машин, тем, кто хочет обосновать снижение выделенной виртуальным машинам памяти и сократить расходы без риска для производительности.

На одном из наших проектов возникла необходимость отслеживать использование памяти в гостевой ОС на виртуальных машинах под управлением VMware vCetner и формировать рекомендации по увеличению/уменьшению памяти выделенной виртуальной машине (rightsizing). Стандартные метрики памяти, доступные через vSphere Web Services API, не позволяют оценить объём памяти, используемой гостевой ОС.

Метрика (производительности) — это количественный показатель, который отражает состояние или поведение системы во времени (CPU, память, диск, сеть и т.д.).

Задача: найти метрику, показывающую объем памяти, потребляемой гостевой ОС и процессами в Linux системах с установленными Guest Tools.

Требования к метрике:

Читать далее

Человек, который слышал интернет: киберсенсорика завтрашнего дня

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели6.2K

Что если подключение к интернету станет таким же естественным, как зрение или слух? Мы привыкли к тому, что для выхода в сеть нам нужны внешние устройства — смартфоны и компьютеры. Но что, если следующий прорыв в коммуникациях произойдет не в кремнии, а в микробиологии?

В этой статье мы рассматриваем футурологическую концепцию появления новых сенсорных органов, выращиваемых прямо в теле человека и подключенных непосредственно к нервной системе. Мы посмотрим, как прогресс в генетике, белковом дизайне, ИИ, нейробиологии и нейроинтерфейсах постепенно формирует технологический фундамент для подобных возможностей. Уже сегодня расшифровка генома, таргетные вирусные векторы, инструменты редактирования ДНК, а также улучшенное понимание работы мозга приближают момент, когда создание «биологической антенны» перестанет быть фантастикой.

Читать далее

BBQ в IBS: как мы организовали внутреннюю конференцию по тестированию и при чем тут Шуфутинский

Время на прочтение12 мин
Охват и читатели5.1K

«Мы замутим свой SQA Days — с головоломками и спикерами», — подумали мы с коллегами после посещения этой популярной конференции. И замутили!

Привет, Хабр! Я Татьяна Диановская, руководитель отдела ресурсного менеджмента в департаменте тестирования IBS. В этой статье расскажу, как мы в компании организовали свою внутреннюю конференцию для тестировщиков.

Читать далее

PostgreSQL Antipatterns? Анализ эффективности замены агрегатной функции MAX на ARRAY

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели6.1K

Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY.

Читать далее

Новое исследование показывает, что за наше существование может отвечать «призрачная частица» из начала времён

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.9K

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

Мы называем их нейтрино. Впервые они были обнаружены в начале 20 века, когда физики заметили, что в некоторых ядерных реакциях мы что-то упускали: энергия и импульс входов не равнялись выходам. Ответом оказалась новая, ранее неизвестная частица, продукт реакций, который сначала проскользнул незамеченным. Легендарный физик Энрико Ферми дал нейтрино их название, что на итальянском языке означает «маленькие и нейтральные».

Читать далее

90% программистов совершают эти ошибки. Как писать на Angular грамотно

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели10K

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

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

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

Читать далее