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

Суть проблемы

В системах электронного обучения (СЭО), используемых в образовательных учреждениях, часто требуется помимо подключения электронного курса к СЭО, также импортировать его отдельные компоненты для формирования единых банков образовательных ресурсов. Такие банки используются в образовательном процессе, в том числе для создания междисциплинарных спецкурсов, итоговых тестирований по всему периоду обучения. Как правило, это в первую очередь тестовые задания, изображения, мультимедийные компоненты. Некоторые элементы контента, в частности тестовые задания, созданные без использования машиночитаемых форматов (CSV, JSON, XML, XLS), не поддаются эффективному автоматизированному импорту в СЭО. В частности, это касается HTML/CSS/JavaScript, применяемых в контейнере для электронных курсов и публикаций ePUB. Для решения этой задачи автором предлагается использовать описания тестов и отдельных тестовых вопросов в составе курса в машиночитаемом формате XML в соответствии со спецификацией IMS Question and Test Interoperability v.2.2 (IMS QTI).

Пару слов о ePUB v.3

ePUB версии 3, разработан ассоциацией IDPF и является стандартом для обмена и дистрибуции электронных публикаций. ePUB получил широкое распространение среди издателей электронных учебников и курсов. Формат поддерживается на большинстве мобильных платформ, и лег в основу ряда других подобных форматов, в частности ibooks компании Apple.

Рисунок 1. Структура EPUB-контейнера
imageЧитать полностью »

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

  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 статьи. Так что сегодня-то каждый может в объектно-ориентированное программирование, так?

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

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


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