Рубрика «Анализ и проектирование систем» - 101

Краткое содержание

  1. Фатальная ошибка Мартина Клеппмана.
  2. Физико-химическая кинетика уделывает математику.
  3. Период полураспада кластера.
  4. Решаем нелинейные дифференциальные уравнения, не решая их.
  5. Ноды как катализатор.
  6. Предсказательная сила графиков.
  7. 100 миллионов лет.
  8. Синергия.

В предыдущей заметке мы подробно разбирали статью Брюера и его одноименную теорему. На этот раз займемся препарированием поста Мартина Клеппмана «The probability of data loss in large clusters».

В данном посте автор пытается промоделировать следующую задачу. Для обеспечения сохранности данных обычно используется метод репликации данных. При этом, на самом деле, не важно, используется ли erasure кодирование или нет. В оригинальном посте автор задает вероятность выпадения одной ноды, а затем ставит вопрос: а какова вероятность выпадения данных при увеличении числа нод?

Ответ приведен на этой картинке:
Читать полностью »

Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули - 1

Историю нашумевшей технической ошибки «Додо Пиццы», партнера Яндекс.Кассы, нам рассказал системный архитектор компании Андрей Моревский — сразу передаю микрофон автору.

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

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

Все началось с того, что нам надоело собирать поставки от внешних разработчиков (ВР) вручную.

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

Поставка от ВР может приходить в виде исходного кода или набора бинарных файлов. Поставку с исходниками предварительно необходимо собрать и протестировать, а тут уже могут использоваться и собственные скрипты, и TFS, и maven, и т. д. и т. п. но это уже совсем другая история…

Так же каждый ВР присылает поставки в разном формате, так как нет жесткого регламента структуры поставки.
Читать полностью »

Являясь Unity разработчиком, я со временем дошёл до того этапа, когда возникла необходимость написания сервера. Передо мной стояло много неизведанных троп сетевого программирования, в котором я потом повяз по голову. Прыгал между C++, C# и Java. После долгий скитаний я нашёл то, чему я сейчас говорю спасибо. Об этом я и хочу поведать.
Читать полностью »

image

Многие уже наслышаны о производительности СУБД Tarantool, её возможностях и особенностях. Например, у него есть классное дисковое хранилище — Vinyl, кроме того, он умеет работать с JSON-документами. Но в многочисленных публикациях обходят стороной одну важную особенность. Обычно БД рассматривают просто как хранилище, но всё же отличительная черта Tarantool — это возможность писать код внутри и очень эффективно работать с этими данными. Под катом рассказ, как мы строили одну систему почти полностью внутри Tarantool, написанный в соавторстве с Игорем igorcoding Латкиным.

Читать полностью »

Не смог удержаться и заказал за 9.9$ одноплатный ПК.
Orange Pi One - 1
Очень и очень интересная железка. Размер чуть меньше кредитной карты.
Читать полностью »

Второе почетное. Заметки участника конкурса Dstl Satellite Imagery Feature Detection - 1

Недавно закончилось соревнование по машинному обучению Dstl Satellite Imagery Feature Detection в котором приняло участие аж трое сотрудников Avito. Я хочу поделиться опытом участия от своего лица и рассказать о решении.
Читать полностью »

В начале...

… не было ни композиции, ни наследования, только код.

И был код неповоротливым, повторяющимся, нераздельным, несчастным, избыточным и измученным.

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

Мрачные были времена.

Но вот лучик ООП воссиял над миром… Правда, несколько десятилетий1 никто этого не замечал. Покуда не появился графический интерфейс2, которому, как выяснилось, очень-очень не хватало ООП. Когда нажимаешь на кнопку в окне, что может быть проще, чем отправить кнопке (или ее представителю) сообщение "Нажатие"3 и получить результат?

И вот тут ООП взлетел. Было написано множество4 книг, расплодились бесчисленные5 статьи. Так что сегодня-то каждый может в объектно-ориентированное программирование, так?

Читать полностью »

Предуведомление: Эта статья написана в остром полемическом ключе. Практически всё в ней сильно утрировано, доведено до логического и концептуального абсурда, и, вообще, это не статья, а одна большая развёрнутая реплика, хотя, и по поводу, но совершенно «не в тему». Особо впечатлительные читатели могут спокойно пропустить эту статью и найти более полезное для себя занятие. Но, если, вдруг, у кого-то в душе появится отклик и возникнет идея создать какой-нибудь «старт-ап», то я буду этому очень рад (будет очень приятно, хоть, на малую толику, сдвинуть сознание разработчиков в сторону от всем привычного). Вот почему, я не считаю свою статью первоапрельским розыгрышем, хотя я был бы очень рад каким-нибудь благоприятным образом разыграть столь квалифицированное сообщество.
Читать полностью »

Помнится, во времена .NET 1.1 и 2.0 можно было часто увидеть пророчества майкрософтовских евангелистов, мол, скоро любая домохозяйка сможет создавать сайты и писать программы. Большинство программистов посмеялось, но, как выяснилось, кто-то отнёсся к этому серьёзно. Во всяком случае, это объясняет, почему шаблоны проектирования IoC/DI получили второе дыхание в 2000-х, причём даже внутри самой MS (желаю Вам никогда в жизни не столкнуться с SCSF).
Несколько аргументов против Dependency Injection и Inversion of Control - 1
С точки зрения теории разработки ПО лично мне гораздо чаще приходилось читать или слышать хвалебные статьи и отзывы об IoC/DI, но, как всегда, критика тоже есть. Можно ознакомиться, например, здесь (англ.), здесь (англ.), тут (хабр), ещё (англ.). В частности в вину ставится нарушение принципа инкапсуляции в ООП.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js