Search
Write a publication
Pull to refresh
1
0
Send message

Исследуем электромагнитные поля с помощью SDR приемника и OpenCV

Reading time10 min
Views31K


SDR-приемник, даже самый дешёвый, является весьма высокочувствительным приборчиком. Если добавить к нему специальную антенну и OpenCV, то можно будет не только привычно слушать эфир, но и посмотреть на распределение электромагнитных полей в пространстве. О таком интересном применении и пойдет речь в данной статье. Внимание! Под катом много картинок и анимации!
Читать дальше →

Технологии для борьбы с коронавирусом

Reading time4 min
Views10K
Если обратиться к мировому опыту, то можно заметить, что во многих странах активно применяется метод аэрозольного распыления для борьбы с коронавирусом. Технически это делается различными средствами, их разнообразие довольно велико. В данном обзоре мы приведем наиболее часто встречающиеся из них.

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


Уличная кабина для дезинфекции. Вьетнам.
Читать дальше →

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

Reading time7 min
Views33K


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

Я не знал куда деваться, превратил отчаяние и злобу в текст, и мне это понравилось. Понравилось настолько, что в глубине души я стал радоваться любому дерьму в своей жизни — только из дерьма получался хороший материал. Хуже того, я начинал искать дерьмо специально.
Читать дальше →

Шаблон Visitor устарел для Kotlin, но знать его стоит

Reading time6 min
Views3.9K

Рассмотрим шаблон проектирования Visitor и покажем, что использовать его при программировании на Kotlin не стоит. Будет теория, минималистичная реализация, реализация замены и доводы в пользу замены, подкрепленные практическими изысканиями. Не будет диаграмм классов. Все попробовать можно онлайн в play.kotlinlang.org


Читать дальше →

Как писать код, когда вокруг тебя бегают дети и спрашивают: «А во что ты будешь работать?»

Reading time6 min
Views20K
«Предвкушаю семейный дурдом», — ответила моя коллега за несколько дней до того, как начались трудовые будни на самоизоляции. До этого было легко спрятаться от семейства в офисе, где к тому же есть детская комната. Туда сотрудники приводили своих детей, и с ними занимался воспитатель. Но теперь все изменилось, и многим приходится выкручиваться самим, чтобы обрести, назовём это, work-children balance. А это вообще возможно? Мы попросили наших разработчиков и тимлидов поделиться опытом, как одновременно работать из дома, воспитывать маленьких детей и не сойти с ума выжить в этот месяц самоизоляции.
Читать дальше →

Как мы делали ядро инвестиционного бизнеса «Альфа-Банка» на базе Tarantool

Reading time11 min
Views7K

Кадр из фильма «Our Secret Universe: The Hidden Life of the Cell»

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

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

Кроме того, растут и потребности регуляторов, как российских, так и зарубежных.

Чтобы соответствовать текущим потребностям и заложить фундамент для будущих модернизаций, мы разработали ядро инвест-бизнеса на основе Tarantool.
Читать дальше →

Как подготовить сайт к росту нагрузки

Reading time4 min
Views6K


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

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

Итак, вот 10 пунктов, которые критичны для активной жизни вашего веб-проекта в ближайшие дни и недели:
Читать дальше →

Расчеты по банковским картам в торговле — создание открытого датасета и инфографики в Google Data Studio

Reading time3 min
Views1.8K
Это моя первая публикация на Хабре. Я интересуюсь и отчасти практикую дата-журналистику и хотел бы поделится с вами инфографикой, иллюстрирующую расчеты по банковским картам в торговле. А также расшарить открытый датасет в Data.World, и рассказать о создании этого проекта.

Итак, итоговая инфографика:



Ссылка на тот же отчет в гораздо более интересном интерактивном виде
Ссылка на открытый датасет (требуется регистрация на Data.World).

Кстати, к сожалению, не удалось встроить отчет в публикацию на Хабре ни через iframe, ни через тег oembed.
Читать дальше →

UI/UX-кейс: автоматизация парковок в аэропорту

Reading time6 min
Views4.5K
Привет, меня зовут Стас, я специализируюсь на дизайне продуктов для транспортной индустрии. К сожалению, в Украине парковочная сфера развивается медленно, с задержкой на несколько лет — в Европе и США люди пытаются автоматизировать любые рабочие процессы.

image

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

Исследуем качество кода операционной системы Zephyr

Reading time14 min
Views4K

PVS-Studio и Zephyr

Недавно мы рассказывали, что анализатор кода PVS-Studio начал интегрироваться с PlatformIO. Естественно, при этом команда разработчиков PVS-Studio общалась с командой PlatformIO и те предложили ради интереса проверить код операционной системы реального времени Zephyr. Почему бы и нет, подумали мы, и вот перед вами статья о таком исследовании.
Читать дальше →

Абелевскую премию по математике разделили двое пионеров в областях вероятностей и динамики

Reading time5 min
Views3.7K

Хилель Фарстенберг, 84 лет, и Григорий Маргулис, 74 лет, профессора на пенсии, разделили математический эквивалент нобелевской премии



Хилель Фарстенберг

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

Её получили Хилель Фарстенберг, 84 лет, из Еврейского университета в Иерусалиме, и Григорий Маргулис, 74 лет, советский и американский математик из Йельского университета. Оба – профессора на пенсии.

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

Что происходит в «Пиковой даме» Пушкина и во что они играют?

Reading time16 min
Views84K


Если коротко — Пушкин открыл жанр «киберспортивной фантастики». Только до появления фантастики и киберспорта. Его одно из самых известных произведений — «Пиковая дама» — это рассказ про мегапопулярную в свете игру в карты с элементами философских вопросов. Попадание в тогдашнюю аудиторию стопроцентное благодаря невероятно простому порогу входа (31 страница текста итого), очень узнаваемым персонажам, невероятной куче пасхалок, сарказму и актуальной теме.

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

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

Алгоритмы быстрой обработки HTTP-строк

Reading time22 min
Views10K
В HTTP/2 появилась компрессия стандартных заголовков, но тело URI, Cookie, значения User-Agent по-прежнему могут составлять десятки килобайт и требуют токенизации, поиска и сравнения подстрок. Задача становится критичной, если HTTP-парсер должен обрабатывать интенсивный злонамеренный трафик. Стандартные библиотеки предоставляют обширный инструментарий обработки строк, но у HTTP-строки есть своя специфика. Именно для этой специфики разработан HTTP-парсер Tempesta FW. Его производительность в несколько раз выше по сравнению с современными Open Source решениями и превосходит быстрейшие из них.


Александр Крижановский (krizhanovsky) основатель и системный архитектор Tempesta Technologies, эксперт в области высокопроизводительных вычислений в Linux/x86-64. Александр расскажет об особенностях структуры HTTP-строк, объяснит, почему стандартные библиотеки плохо подходят для их обработки, и представит решение Tempesta FW.

Под катом: как HTTP Flood превращает ваш HTTP-парсер в узкое место, проблемы x86-64 с branch mispredictions, кэшированием и не выровненной памятью на типичных задачах HTTP-парсера, сравнение FSM с прямыми переходами, оптимизация GCC, автовекторизация, strspn()- и strcasecmp()-like алгоритмы для HTTP-строк, SSE, AVX2 и фильтрация инъекционных атак с использованием AVX2.

Всё о ключевом слове auto в CSS

Reading time13 min
Views47K
В CSS есть ключевое слово auto, которое можно использовать при работе с различными свойствами элементов. Это — свойства, влияющие на позицию, высоту, ширину элементов. Это — свойства, предназначенные для настройки отступов элементов и других их характеристик. У меня появилось желание где-нибудь записать всё то, что я знаю об auto. Например — оформить это всё в виде материала, который мог бы стать справочником для тех, кто интересуется тонкостями использования этого ключевого слова.

Ключевое слово auto имеет особый смысл при использовании его с различными CSS-свойствами. Мы разберём особенности auto, касающиеся применения этого значения к различным свойствам.



Здесь, в первую очередь, нас будут интересовать технические детали работы auto. Поговорим мы и о том, как извлечь максимум пользы из применения этого свойства. Тут вы найдёте и заметки о сценариях использования auto, и примеры.
Читать дальше →

40 лет анализа больших объёмов данных в Физике Высоких Энергий: интервью с Рене Браном

Reading time13 min
Views3.7K
За 40 лет своей карьеры в ЦЕРН (Международная Лаборатория Ядерных Исследований расположенная в Женеве) Рене Бран (Rene Brun) разработал ряд программных пакетов, которые стали широко использоваться в Физике Высоких Энергий. За этот фундаментальный вклад он был недавно награжден специальным призом Отделения Физики частиц Высоких Энергий Общества Европейской Физики (EPS). Мы поговорили с ним о ключевых событиях этой истории.

image
Читать дальше →

Парсеры Пратта для чайников

Reading time8 min
Views8.9K

Рекурсивный спуск работает идеально, когда вы можете принимать решение относительно разбираемого куска кода с помощью текущего контекста и токена.


Картину портят выражения: постфиксные, инфиксные и прочие. Проблема: вы не можете понять, какого типа выражение вы обрабатываете до тех пор, пока не разберёте его первую половину. Зачастую для вас также важны приоритет операции и её ассоциативность, чтобы построенное AST имело правильную структуру.


В этой статье мы напишем парсер для диалекта Go, особенности которого мы рассмотрим чуть ниже. Как вы сможете убедиться, алгоритм Пратта решает большинство наших проблем.


Читать дальше →

Как я создавал очередной конструктор сайтов

Reading time9 min
Views16K
Всем привет, меня зовут Саша. Я создаю свой конструктор сайтов. Я получил первых платящих пользователей. Все они преимущественно из США и Европы.

Я хочу поделиться историей своего пути, который включает кодинг, краудфандинг и продвижение.
Читать дальше →

Почему Event Sourcing — это антипаттерн для взаимодействия микросервисов

Reading time5 min
Views40K
И снова здравствуйте. В марте OTUS запускает очередной поток курса «Архитектор ПО». В преддверии старта курса подготовили для вас перевод полезного материала.




Последнее время получают распространение событийно-ориентированные архитектуры (event-driven architectures) и, в частности, Event Sourcing (порождение событий). Эта вызвано стремлением к созданию устойчивых и масштабируемых модульных систем. В этом контексте довольно часто используется термин “микросервисы”. На мой взгляд, микросервисы — это всего лишь один из способов реализации “ограниченного контекста” (Bounded Context). Очень важно правильно определить границы модулей и в этом помогает стратегическое проектирование (Strategic Design), описанное Эриком Эвансом в Domain Driven Design. Оно помогает вам идентифицировать / обнаружить модули, границы (“ограниченный контекст”) и описать, как эти контексты связаны друг с другом (карта контекстов, ContextMap).
Читать дальше →

PostgreSQL Antipatterns: сказ об итеративной доработке поиска по названию, или «Оптимизация туда и обратно»

Reading time7 min
Views9.9K
Тысячи менеджеров из офисов продаж по всей стране фиксируют в нашей CRM-системе ежедневно десятки тысяч контактов — фактов общения с потенциальными или уже работающими с нами клиентами. А для этого клиента надо сначала найти, и желательно очень быстро. И происходит это чаще всего по названию.

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

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

0: чего же хотел пользователь


[КДПВ отсюда]

Что вообще обычно подразумевает пользователь, когда говорит про «быстрый» поиск по названию? Почти никогда это не оказывается «честный» поиск по подстроке типа ... LIKE '%роза%' — ведь тогда в результат попадают не только 'Розалия' и 'Магазин Роза', но и роза' и даже 'Дом Деда Мороза'.

Пользователь же подразумевает на бытовом уровне, что вы ему обеспечите поиск по началу слова в названии и покажете более релевантным то, что начинается на введенное. И сделаете это практически мгновенно — при подстрочном вводе.
Читать дальше →

Пожалуйста, перестаньте рекомендовать Git Flow

Reading time6 min
Views209K
Прим. перев.: Новая статья с критикой полюбившейся многим Git Flow получила столь заметное внимание, что даже оригинальный автор модели обновил публикацию 10-летней давности, актуализировав свой взгляд на её применение сегодня. Публикуем перевод как самой критики, так и официальной реакции.



Git-flow — это методология ветвления и слияния, сильно популяризированная заметкой 2010 года под названием «A Successful Git branching model» (была переведена на хабре как «Удачная модель ветвления для Git» — прим. перев.).

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

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

На этом можно заканчивать, так? Ну, не совсем. Наверняка некоторые из вас скептически отнеслись к моей цепочке рассуждений, поэтому давайте копнем поглубже и попытаемся понять, почему модель ветвления Git-flow должна поджариться на медленном огне.
Читать дальше →

Information

Rating
Does not participate
Location
Херсон, Херсонская обл., Украина
Registered
Activity