Как стать автором
Обновить
76
0
Дмитрий Калугин-Балашов @rvncerr

Пользователь

Отправить сообщение

Полнотекстовый поиск в Couchbase Server

Время на прочтение 7 мин
Количество просмотров 2.6K
Дмитрий Калугин-Балашов большую часть своей жизни писал поиск: с 2011 года в компании Mail.ru был поиск по почте, затем был небольшой перерыв из-за работы в США, а сейчас это — работа над поиском в Couchbase. Одна из первых вещей, которую Дмитрий понял, работая в США — не всегда покупают самое эффективное решение. Иногда покупают то, где клиент будет иметь меньше проблем.

Поэтому ещё в 2013 году Дмитрий написал движок поиска для почтовых ящиков Mail.ru и рассказал об этом в том же году на конференции HighLoad и в статье на Хабре. А на HighLoad 2019 показал, как устроен полнотекстовый поиск в Couchbase Server, и сегодня мы предлагаем расшифровку его доклада.


Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 0

Ядра процессора или что такое SMP и с чем его едят

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

Введение


Доброго времени суток, сегодня хотелось бы затронуть достаточно простую тему, которая почти никем из обычных программистов неизвестна, но каждый из вас, скорее всего, ей пользовался.
Речь пойдет о симметричной мультипроцессорности(в народе — SMP) — архитектура, которая встречается во всех многозадачных операционных системах, и конечно же, является неотъемлемой их частью. Каждый знает, что чем больше ядер у процессора — тем мощнее будет процессор, да, это так, но как ОС может использовать несколько ядер одновременно? Некоторые программисты не спускаются до такого уровня абстракции — им это попросту не надо, но думаю, всем будет интересно то, как же SMP работает.
Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 24

Применение Arm Mbed OS. Тонкая настройка

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

LNDC1


После того как с помощью Arm Mbed OS удалось помигать светодиодом, настало время протестировать и настроить другие важные сервисы. Далее рассказывается:


  • Технология конфигурирование Mbed
  • Почему сложно перейти на C++ в обычных RTOS
  • Как экономить память в RTOS
  • Как организуются прерывания в Mbed OS
  • Чем удобно отлаживать Mbed OS
  • Как избавиться от лишнего слоя абстракции SDK
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 11

Скрывать не скрывая. Еще раз о LSB-стеганографии, хи-квадрате и… сингулярности?

Время на прочтение 12 мин
Количество просмотров 34K
Сегодня снова поворошим старое гнездо и поговорим о том, как скрыть кучку бит в картинке с котиком, посмотрим на несколько доступных инструментов и разберем самые популярные атаки. И казалось бы, при чем тут сингулярность?

Как говорится, если хочешь в чем-то разобраться, то напиши об этом статью на Хабр! (Осторожно, много текста и картинок)


Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 40

Загадка пробоины в «Союзе»

Время на прочтение 5 мин
Количество просмотров 70K
Утро 30 августа выдалось не очень добрым для экипажа МКС. Была обнаружена утечка воздуха со станции, поэтому космонавтам и астронавтам пришлось искать место утечки и устранять ее. Отверстие нашлось в бытовом отсеке «Союза МС-09», и, несмотря на то, что его уже успешно заделали, в интернете не утихают споры о его возможной причине. Действительно ли это обычный удар микрометеорита или космического мусора?


«Союз МС-09» (слева), пристыкованный к МКС, фото NASA
Всего голосов 75: ↑73 и ↓2 +71
Комментарии 568

ESP8266 + FLProg – Создание web интерфейса настройки

Время на прочтение 7 мин
Количество просмотров 61K
Источник

Предыдущий пост, посвящённый связке FLProg и ESP8266, был обзорным, а теперь рассмотрим работу в программе с этим контроллером более подробно.
Осторожно, очень много картинок!
Всего голосов 29: ↑27 и ↓2 +25
Комментарии 14

Когда NASA откажется от полетов на «Союзах»?

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


На днях СМИ переполошила новость, что у NASA в апреле 2019 года завершается контракт на полеты астронавтов российскими кораблями «Союз» на Международную космическую станцию. Новость приняли неоднозначно. Кто-то ликовал, что наконец-то Россия отключила газ оставила Америку без доступа в космос. Кто-то пояснял, что США сами отказались, т.к. у них теперь есть собственные современные иномарки от SpaceX и Boeing, и услуги Роскосмоса уже не требуются.

Реальность немного прозаичнее.
Читать дальше →
Всего голосов 133: ↑132 и ↓1 +131
Комментарии 145

Языки программирования для квантового компьютера

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


Прототип ядра ионного квантового компьютера. Ion Quantum Technology Group, Сассекский университет


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


К счастью, для решения этой проблемы появляются отличные проекты, привлекающие внимание широкой аудитории. Например, несколько лет назад IBM дала возможность любому подключиться к 5-кубитному компьютеру. В проекте зарегистрировались 70 000 человек.


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


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

Читать дальше →
Всего голосов 44: ↑43 и ↓1 +42
Комментарии 23

Метод Бенджамина Франклина для чтения книг по программированию

Время на прочтение 4 мин
Количество просмотров 33K
Посмотрим правде в глаза, книги по программированию — отстой. Эти общие книги по распределённым системам, науке о данных и так далее — их можно читать бесконечно. Но за редким исключением у практических руководств по языку/фреймворку/СУБД/кексопечке есть нечто общее. Зверюшка на обложке, примеры вычурных приложений, они так легко забываются, так банальны, настолько… ничему не учат.

Думаю, я наконец-то понял, почему они мне не нравятся. И не только потому что они учат навыкам, которые скоро станут устаревшими. Это их педагогический подход в целом. Алгоритм обучения как будто такой: напиши эти программы, где мы говорим всё, что нужно сделать, и теперь ты знаешь этот язык/фреймворк/базу данных/кексопечку. Главное в этих книгах — длинные листинги кода, которые читатель должен воспроизвести. Вот пример из одной из лучших книг этой категории.

class User < ApplicationRecord
  attr_accessor :remember_token
  before_save { self.email = email.downcase }
  validates :name,  presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, length: { maximum: 255 },
                    format: { with: VALID_EMAIL_REGEX },
                    uniqueness: { case_sensitive: false }
  has_secure_password
  validates :password, presence: true, length: { minimum: 6 }

  # …далее ещё 30 строчек...
end

Традиционно есть два способа изучить такую страницу:

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

В первом случае, как и в лекциях, код переходит со страницы книги на экран читателя, минуя мозг. Второй вариант — это как пытаться собирать автомобили, разбирая ремень безопасности и стереосистему: вы просто играетесь с маленькими кусочками. Оба варианта не подходят для обучения.
Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Комментарии 17

Как видят мир дальтоники?

Время на прочтение 2 мин
Количество просмотров 4.5K
Если уж делать алгоритм распределения внимания по изображению, то делать нужно по уму, а значит, жизненно важно становится определять «силу цвета».

Цветовосприятие


Ощущение цвета зависит от сигнала, поступающего в мозг от S, M и L колбочек. Вместе с тем, некоторые цвета, определяемые человеком, ощущают сразу несколько видов колбочек и именно из-за этого некоторые цвета кажутся ярче, чем другие, одинаковые по тону и насыщенности.


сone-response

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

Цветовая мишень: оригинал, пост-процессинг.
Другая цветовая мишень: оригинал, пост-процессинг.


Но приведённые изображения показывают результат только для полного цветового зрения. Интересно, а как смотрят на мир дальтоники?

Дальтонизм


А дальтоники бывают разные: дальтонизм возникает в основном из-за нехватки колбочек определённого типа. В случае нехватки колбочек двух типов, цвета вообще не различаются, мир выглядит монохроматическим, как на чёрно-белой фотографии. А вот в случае дефицита колбочек одного из типов S, M или L возникает ситуация неразличимости некоторых цветов.

Попробуем-ка промоделировать, основываясь на данных цветочувствительности колбочек, восприятие дальтоников!

Честно признаюсь, данные модели не калиброваны. В идеале, дальтоник не должен ощущать существенной разницы между оригиналом и результатом моделирования. Но ради того, чтобы представить, как – любопытно же? :)

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

Оригиналы:


Читать дальше →
Всего голосов 69: ↑66 и ↓3 +63
Комментарии 139

11 библиотек (наборов компонентов) для React, о которых стоит знать в 2018-м

Время на прочтение 4 мин
Количество просмотров 63K
11 библиотек (наборов компонентов) для Angular, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для Vue, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для React, о которых стоит знать в 2018-м

Современные фреймворки для разработки веб-приложений сформировали вокруг себя сообщества, члены которых, помимо прочих дел, занимаются разработкой библиотек для этих фреймворков. Подобные библиотеки находят применение во множестве проектов. Как правило, можно даже говорить о том, что, например, на чистом React, Angular или Vue, без применения дополнительных средств, веб-приложения сегодня не разрабатывают.



Представляем вашему вниманию перевод первого материала из серии статей, в каждой из которых рассмотрены 11 наиболее интересных библиотек для разных веб-фреймворков, на которые стоит обратить внимание в 2018-м. Сегодня поговорим о библиотеках для React.
Читать дальше →
Всего голосов 36: ↑27 и ↓9 +18
Комментарии 21

Технические подробности. Уязвимость Meltdown — CVE-2017-5754

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

От автора


Важно! Уязвимость на самом деле это 3 уязвимости — Meltdown, Spectre 1, Spectre 2
Здравствуй хабр! Сегодня у нас перевод заметки про уязвимость Meltdown (CVE-2017-5754). Переведена только первая страница и основная часть заметки для понимания данной уязвимости.


Meltdown


Общее


Безопасность современной компьютерной системы (прим. автора. Смартфоны, компьютеры, практически любые носимые устройства с возможностью запуска кода не от производителя) основывается на изоляции адресного пространства, для примера память ядра помечена недоступной и защищена от доступа со стороны пользователя. В этой заметке мы представляем вам Meltdown. Meltdown эксплуатирует побочный эффект исполнения-вне-очереди (out-of-order execution) в современных процессорах, чтобы прочитать данные из ядра, в том числе личную информацию и пароли. Исполнение-вне-очереди сильно влияет на производительность и включено в большинство современных процессоров. Атака не зависима от операционной системы и не эксплуатирует программные уязвимости. Meltdown ломает всю безопасность системы основанную на изоляции адресного пространства в том числе паравиртуализованного.
Meltdown позволяет читать часть памяти других процессов и виртуальных машин. Мы покажем, что система KAISER имеет важный побочный эффект в виде в блокировке Meltdown (но является костылем). Мы настаиваем на включении KAISER незамедлительно для исключения утечки информации.

Читать дальше →
Всего голосов 56: ↑37 и ↓19 +18
Комментарии 11

Как именно работает Meltdown

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

Уже третий день у всех на слуху слова Meltdown и Spectre, свеженькие уязвимости в процессорах. К сожалению, сходу найти что либо про то, как именно работают данные уязвимости (для начала я сосредоточился на Meldown, она попроще), у меня не удалось, пришлось изучать оригинальные публикации и статьи: оригинальная статья, блок Google Project Zero, статья аж из лета 2017. Несмотря на то, что на хабре уже есть перевод введения из оригинальной публикации, хочется поделиться тем, что мне удалось прочитать и понять.

Читать дальше →
Всего голосов 186: ↑184 и ↓2 +182
Комментарии 334

Новогодние подарки, часть первая: Meltdown

Время на прочтение 13 мин
Количество просмотров 104K
Да, я знаю, что это уже третий материал на GT/HH по данной проблеме.

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

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

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

К счастью, подвержены они ей в разной степени. К несчастью, самый серьёзный удар пришёлся на самые распространённые процессоры — Intel, причём затронул он абсолютно все выпускающиеся и практически все эксплуатируемые (единственным исключением являются старые Atom, выпущенные до 2013 года) процессоры этой компании.
Читать дальше →
Всего голосов 179: ↑177 и ↓2 +175
Комментарии 265

Akumuli — база данных временных рядов

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

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


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


Time-series in finance


“Мне не нужна TSDB, у меня уже есть Х”


Х может быть чем угодно, начиная с SQL базы данных и заканчивая плоскими файлами. На самом деле все это действительно можно использовать для хранения временных рядов, с одной оговоркой — у вас мало данных. Если вы делаете 10 000 вставок в свою SQL базу данных — все будет хорошо какое-то время, потом таблица вырастет в размерах настолько, что время выполнения операций вставки увеличится.

Читать дальше →
Всего голосов 76: ↑76 и ↓0 +76
Комментарии 84

История 3 места Russian AI Cup 2017

Время на прочтение 6 мин
Количество просмотров 12K
Всем привет! В этой статье я хочу кратко изложить ключевые моменты своей стратегии в ходе прошедшего соревнования по программированию искусственного интеллекта Russian AI Cup.



Немного о Russian AI Cup


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

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

Правила можно найти здесь.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 9

Как писать на ассемблере в 2018 году

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


Статья посвящена языку ассемблер с учетом актуальных реалий. Представлены преимущества и отличия от ЯВУ, произведено небольшое сравнение компиляторов, скрупулёзно собрано значительное количество лучшей тематической литературы.
Читать дальше →
Всего голосов 117: ↑102 и ↓15 +87
Комментарии 167

Сверточная сеть на python. Часть 2. Вывод формул для обучения модели

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

В прошлой статье мы рассмотрели концептуально все слои и функции, из которых будет состоять будущая модель. Сегодня мы выведем формулы, которые будут отвечать за обучение этой модели. Слои будем разбирать в обратном порядке — начиная с функции потерь и заканчивая сверточным слоем. Если возникнут трудности с пониманием формул, рекомендую ознакомиться с подробным объяснением (на картинках) метода обратного распространения ошибки, и также вспомнить о правиле дифференцирования сложной функции.
Читать дальше →
Всего голосов 67: ↑66 и ↓1 +65
Комментарии 0

Правдивая история роботизации, начинающаяся с одного простого графика

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


В начале этого года мне на глаза попался график, на котором отражена не только чрезвычайно важная история роботизации, но также история обсуждения самой роботизации. Заодно здесь показан прогноз развития в ближайшие годы как самой роботизации, так и ее обсуждения. Это график количества эксплуатируемых буровых вышек в Соединенных Штатах (зеленая линия) и количество рабочих, занятых в нефтяной промышленности (красная линия). Это важная часть мозаики, которую необходимо собрать воедино, пока не стало слишком поздно.
Читать дальше →
Всего голосов 57: ↑53 и ↓4 +49
Комментарии 321

Уязвимости в прошивках австралийских животных

Время на прочтение 6 мин
Количество просмотров 88K
В Австралии последние 60 тысяч лет живут племена хакеров. Только ломают они не ИТ-системы, а прошивки животных. Начнём с истории бумеранга.


На заливных лугах около Дарвина, Северные территории

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

Проблема с птицами в том, что они имеют очень чёткий алгоритм реакции на угрозы. Вот кусочек псевдокода (естественно, я сейчас невероятно грубо упрощаю):

— Сгенерировать случайное число от 1 до 11.
— Если это 1-10 – смотреть вниз и искать еду до клевка.
— Если это 11 — осмотреться.

Таким образом, когда у вас на болоте сидит стая птиц в 50-60 голов, 5-6 птиц играют роль радара, обозревая небо и окрестности, а остальные в это время едят. Причём насыщаются все одновременно, без выделенных часовых – никакого ролевого распределения, просто отличное распараллеливание процессов.
Всего голосов 247: ↑246 и ↓1 +245
Комментарии 268

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность