Привет! Меня зовут Андрей Барболин, я Senior Software Engineer в команде Order Management System. Сегодня я расскажу вам, как мы сделали шардированный кэш и под стресс-тестами добились 30 миллионов операций в секунду, а также про первую open source библиотеку от AliExpress Россия.
Software Engineer @ AliExpress Russia
ОС с нуля: Глава 1, Часть 1 — Загрузчик
Хай Хабр! Это серия статей по написанию моей ОС с нуля. Я лютый фанат ретропрограммирования, поэтому я мгновенно забуду про существование EDК. Просьба не писать комменты по типу "BIOS давно устарела где UEFI?". Пишу это просто чтобы было, что почитать вечером и порелаксить. Спасибо.
Что происходит в «Пиковой даме» Пушкина и во что они играют?
Если коротко — Пушкин открыл жанр «киберспортивной фантастики». Только до появления фантастики и киберспорта. Его одно из самых известных произведений — «Пиковая дама» — это рассказ про мегапопулярную в свете игру в карты с элементами философских вопросов. Попадание в тогдашнюю аудиторию стопроцентное благодаря невероятно простому порогу входа (31 страница текста итого), очень узнаваемым персонажам, невероятной куче пасхалок, сарказму и актуальной теме.
А предыстория такая. Пока мы со школьными группами осенью ездили по Пскову, зарулили в театр. Он во Пскове неожиданно крутой. Ставили как раз Пушкина. Проблема в том, что дети не поняли сюжет и ещё минут 15 обсуждали после спектакля, что же это такое было и кто выиграл или проиграл. Вроде, очевидно, что Германна где-то прокатили, но вот где и как?
Поэтому мы сейчас поговорим про пасхалки «Пиковой дамы», как Пушкин вьехал сапогом в зубы понтёру и немного про математику. Кстати, Александр Сергеевич был тем ещё кутилой, что не совсем вяжется с образом, который дают на литературе в школе. И поскольку вы сейчас, скорее всего, дома, предлагаю прикоснуться к прекрасному.
Автоматизация аэропорта в HEL
Система трекинга пассажиров. Видно, кто в какой очереди, сколько времени стоит, из какого сектора пришёл и так далее.
В прошлый раз я рассказывал про Finnair. HEL — их базовый аэропорт, и они очень плотно интегрированы. Пример — сверхкороткие транзиты по 35 минут (40 через границу), которые требуют дико отлаженных процессов и современной техники как для пропуска всех пассажиров, так и для того, чтобы успеть обработать весь багаж и почти ничего не потерять.
Мы, по ходу, одни из первых, кого вообще пустили снимать в подземном царстве багажа, поэтому пошли покажу, что там творится. Заодно посмотрим на рабочее место диспетчера на контроле безопасности и поговорим про автоматизацию. Там есть пара ноу-хау.
Для меня же самое прекрасное в HEL — это атмосфера какого-то невероятного спокойствия и расслабленности. Матти, продакт-овнер аэропорта, сказал просто:
— А! Это мы проигрываем шуршание листьев и пение птиц, но очень-очень тихо.
Прислушался — и правда, проигрывают. На пределе чувствительности.
Древности: 50 оттенков ICQ
Но есть повод подвести итог. ICQ живет, но меня там больше нет, а значит можно рассказать всю историю формата «я и аська» от начала и до конца. Это пост во имя ностальгии, в моих терминах — рыдалка, но не только. В очень ограниченном виде я восстановил экспириенс двадцатилетней давности, когда на рубеже веков ICQ была мессенджером номер один. Послушал те самые звуки, отправил пару сообщений самому себе. Не буду говорить, что нынче ICQ «не торт»: в конце концов своих конкурентов (AOL Instant Messenger, MSN Messenger, Yahoo Messenger) этот сервис успешно пережил. 15-20 лет назад в ICQ были реализованы почти все фичи современных средств сетевого общения, только произошло это слишком рано. Об этом и поговорим.
Коронавирус COVID-19: только факты, без паники
Коронавирус: филогения, курение, летальность и снижение рисков заболеть
Есть ощущение, что про эпидемию COVID-19 сейчас вещают из каждого утюга. В этом плане Хабр радует хорошими постами с нормальными источниками и конструктивным обсуждением. Я тоже решила поделиться свежими препринтами на тему экспрессии ACE2 у укуренных мышей, особенностями генетики и эволюции вируса, а также рекомендациями о снижении рисков заболеть. И ещё поскольку мы занимаемся средствами для глаз в лаборатории, меня просто достали вопросами, что помогает. Если коротко — лучше всего помогает пакет на голову.
Почему Мастерхост был обречен: взгляд изнутри
Эта компания уже давно находилась в состоянии медленного угасания. Случившаяся в последние несколько дней катастрофа — это просто грузовик, который сбил человека, больного последней стадией рака.
Я проработал там 5 лет, и я хочу рассказать, что именно было не так с этой компанией.
Коронавирус: почему надо действовать прямо сейчас
Вступление
Учитывая всё, что происходит с коронавирусом, может оказаться очень сложно принять решение, что делать прямо сейчас. Стоит ли подождать, пока станет больше информации? Надо ли предпринять что-то уже сегодня? Если да, то что?
В этой статье со множеством графиков, данных и моделей из большого числа источников мы постараемся ответить на вопросы:
- Сколько людей заболеют коронавирусом в вашем регионе?
- Что случится, когда они начнут заболевать?
- Что вы должны делать?
- Когда?
Когда вы закончите читать статью, вы придёте к следующим выводам:
- Коронавирус приближается к вам.
- Он приближается с экспоненциальной скоростью: сперва постепенно, а потом внезапно.
- Это вопрос нескольких дней. Может быть, неделя или две.
- Когда это случится, ваша система здравоохранения будет перегружена.
- Ваши сограждане будут лечиться в коридорах.
- Изможденные медицинские работники сломаются. Некоторые погибнут.
- Им придётся решать, кто из пациентов получит лечение, а кто умрет.
- Единственный способ предотвратить это — социальная изоляция уже сегодня. Не завтра. Сегодня.
- Это значит держать как можно больше людей дома, начиная с сегодняшнего дня.
Если вы политик, общественный деятель или руководитель, у вас есть власть и ответственность, чтобы предотвратить описанное выше.
Сейчас вы можете опасаться: что, если это избыточная реакция? Не станут ли люди смеяться надо мной? Вдруг они разозлятся на меня? Не буду ли я выглядеть глупо? Не лучше ли подождать, пока другие сделают первые шаги? Что, если это слишком навредит бизнесу?
Однако через 2-4 недели, когда весь мир будет закрыт и изолирован, когда окажется, что несколько драгоценных дней социальной изоляции, которые вы организовали, спасли жизни, вас больше не будут критиковать. Люди будут благодарить вас за то, что вы приняли правильное решение.
Итак, давайте разбираться.
Функциональное программирование — это не то, что нам рассказывают
Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".
Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:
int Factorial(int n)
{
Log.Info($"Computing factorial of {n}");
return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}
чем ужасные императивные программы вроде
int Factorial(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
{
result *= i;
}
return result;
}
Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.
Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.
Что за черт, Javascript
Этот пост — список забавных и хитрых примеров на JavaScript. Это отличный язык. У него простой синтаксис, большая экосистема и, что гораздо важнее, огромное сообщество.
В то же время мы все знаем, что JavaScript довольно забавный язык, в котором есть хитрые вещи. Некоторые из них быстро превращают нашу повседневную работу в ад, а некоторые заставляют хохотать. В этом посте рассмотрим некоторые из них.
Разработка сайта на WebAssembly с помощью NetCore 3 и Blazor
Мое мнение, что WebAssembly будущее интернета. Данная технология на текущий момент уже интегрирована в большинство современных браузерах (а точнее в их движках) на ПК и мобильных устройствах. В таких браузерах как Chrome, Edge, Firefox, и WebKit.
В данной статье я опишу как начать разработку сайта WebAssembly в Visual Studio. Статья подойдет для тех, кто хотел бы понять, как начать разрабатывать SPA приложения без использования JavaScript, зная только asp.net mvc, c#, верстку html и css.
На момент выхода статьи фреймворк NetCore 3 находится в стадии RC1, а Blazor имеет версию 3.0.0-preview9.19457.4. Релиз NetCore 3 запланирован на сентябрь 2019. Что относительно Blazor то его релиз обещают позднее в ноябре 2019 года, скорее всего после релиза NetCore 3.1
Оглавление:
Безопасный способ обмена JWT в ASP.NET Core + SPA
Вступление
Идентификация по JWT (JSON Web Token) — это довольно единообразный, согласованный механизм авторизации и аутентификации между сервером и клиентами. Преимущества JWT в том, что он позволяет нам меньше управлять состоянием и хорошо масштабируется. Неудивительно, что авторизация и аутентификация с его помощью все чаще используется в современных веб-приложениях.
Джеф Безос: «Отправляемся в Космос на благо Земли»
В первой части Джеф Безос рассказывает про свои детские мечты о космосе и о своем способе мышления о будущем (горизонт планирования более 200 лет, энергоистощение, начинать с малого, делать вещи не для сиюминутной выгоды, а для перспективы, проекты на несколько поколений вперёд и пр), во второй части — о своем лунном проекте. В конце Джеф передаёт эстафету подрастающему поколению. Приятного просмотра.
Расшифровка:
20 секунд до старта.
15 секунд до старта.
Переход на автономное управление.
Двенадцать.
Одиннадцать.
Десять.
Девять.
Начинаю зажигание.
Как быть опубликованным в Google Play в 2019
Вступление
Опубликовать приложение, не нарушив ни чьих прав, стало непростой задачей. За последние пару лет в Google Play добавилось множество новых правил и ограничений, причем некоторые из них действуют только в определенных регионах, и бремя отслеживания, какие ограничения и правила распространяются на каждого конкретного юзера, ложится на плечи разработчиков. В этой статье я расскажу о том, на что нужно обращать внимание в 2019 году, при публикации своего приложения в сторе, чтобы не быть заблокированным.
Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен
Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.
На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.
Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
Новое доказательство решает вопрос аппроксимации таких чисел, как пи
Древние греки интересовались, можно ли приблизительно выразить иррациональные числа дробями. Доказав давнюю гипотезу Даффина-Шаффера, два математика дали исчерпывающий ответ.
Двоичная запись π бесконечна. Но бесконечное число дробей могут приближаться к этому числу со всё возрастающей точностью.
Глубокие провалы на числовой прямой не так неприступны, как могло показаться. Это одно из последствий нового значимого доказательства того, как сложные числа поддаются простым приближениям.
Доказательство разрешает задачу почти 80-летней давности, известную, как гипотеза Даффина-Шаффера. Тем самым оно даёт окончательный ответ, занимавший математиков с древних времён: при каких условиях возможно представлять иррациональные числа, длящиеся бесконечно долго – типа числа пи – простыми дробями типа 22/7? Доказательство устанавливает, что ответ на этот довольно общий вопрос обнаруживается в результате единственного вычисления.
Парамагноны и магноны: энергия из тепла
Оглянитесь вокруг, что вы видите? Дома, машины, деревья, людей и т.д. Все куда-то бегут, все куда-то спешат. Город, напоминающий муравейник, особенно в час пик, всегда наполнен движением. И такая же картина наблюдается не только в «большом» мире, но и на атомарном уровне, где неисчислимое множество частиц движутся навстречу друг другу, сталкиваются, отдаляются и вновь находят нового партнера для своего невероятно сложного и порой столь кратковременно танца. Отбросим в сторону утрирование и поэтичность и поговорим сегодня об исследовании, в котором международная команда ученых из университета штата Северная Каролина, Ок-Риджской национальной лаборатории, университета штата Огайо и Китайской академии наук доказали, что парамагноны могут преобразовывать разницу температур в электрическое напряжение. Что такое парамагноны, в чем их уникальная особенность, как ученые реализовали свой необычный «генератор» и насколько он эффективен? Об этом мы узнаем из доклада исследовательской группы. Поехали.
Must-have алгоритмы машинного обучения
Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи. Этот пост — краткий обзор общих алгоритмов машинного обучения. К каждому прилагается краткое описание, гайды и полезные ссылки.
Метод главных компонент (PCA)/SVD
Это один из основных алгоритмов машинного обучения. Позволяет уменьшить размерность данных, потеряв наименьшее количество информации. Применяется во многих областях, таких как распознавание объектов, компьютерное зрение, сжатие данных и т. п. Вычисление главных компонент сводится к вычислению собственных векторов и собственных значений ковариационной матрицы исходных данных или к сингулярному разложению матрицы данных.
SVD — это способ вычисления упорядоченных компонентов.
Полезные ссылки:
Вводный гайд:
Профилирование со сверхсветовой скоростью: теория и практика. Часть 1
мы обсудим Java, С, С++, ассемблер, немного Linux, немного ядра операционной системы. А ещё разберём практический кейс, поэтому статья будет в трёх больших частях (достаточно объёмных).
В первой мы попробуем выжать всё возможное из существующих профилировщиков.
Во второй части сделаем собственный маленький профилировщик, а в третьей посмотрим, как же профилировать то, что профилировать не принято, потому что существующие инструменты не очень для этого подходят. Если готовы пройти этот путь — жду вас под катом :)
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity