Асинхронность 3: Субъекторная модель

Двое из ларца

Предисловие


Эта статья является продолжением цикла статей про асинхронность:

  1. Асинхронность: назад в будущее.
  2. Асинхронность 2: телепортация сквозь порталы.

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

  1. Универсальный адаптер

Введение


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

[Из песочницы] Одиннадцать ошибок управления проектами на примере трансатлантического яхтенного перехода

После 10 лет работы в качестве ИТ руководителя, когда за плечами уже достаточно выполненных проектов и компаний, а также опыт создания проектного офиса, видишь все вокруг немного иначе. Любую уникальную задачу хочется декомпозировать на подзадачи, расположить их на scrum-доске или на временной шкале, оценить приоритеты, риски, трудозатраты. К сожалению, в реальности, даже элементарные практики из проектного управления соблюдаются не всегда.

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


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

Digmus — blockchain по делу: проверка контрафакта



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

Взглядов оказалось настолько много, что в день они переросли в 15-17 полноценных заявок, далеко за не каждой из которых стояло что-но новое, если не брать во внимание тезис: «давайте сделаем ICO и зажжём!».

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

Но мир всегда состоит из разностей: приходить стали, пусть не в таком количестве, и дельные проекты. Среди них те, о ком уже рассказывал: kickico, descrow, pluscoin, eloplay и другие. И вот недавно на горизонте замелькала ещё одна звезда адекватности и любви к коду — https://digmus.io/ (самое интересное — в конце).

О ней и пойдёт речь.
Читать дальше →

Обзор дефектов кода музыкального софта. Часть 3. Rosegarden


Программы для работы с музыкой имеют маленький объём кода и, поначалу, я сомневался в возможности находить достаточное количество ошибок для статей. Тематику музыкального софта всё равно хотелось затронуть, поэтому я был готов объединять несколько проектов в статье. И вот я пишу уже третью статью, стараясь хоть как-то вместить интересные ошибки в одну статью. Третьим проектом для анализа выбран MIDI-секвенсор и нотный редактор — Rosegarden. Внимание! Прочтение статьи вызывает «Facepalm»!
Читать дальше →

IoTmanager — мобильный MQTT-клиент с необычной концепцией

В своей недавней статье на GeekTimes про доработку домофона протоколом MQTT я проводил опрос на тему того, какую статью написать следующей, и примерно 50% читателей проголосовало за статью про работу с мобильным приложением MQTT-клиента IoTmanager.

Данное приложение немного отличается концепцией от всех представленных мобильных MQTT-клиентов: внешний вид виджетов задается непосредственно в топиках. Таким образом, все настройки хранятся в одном месте — конечном физическом устройстве, а IoTmanager просто служит для отображения и управления виджетами. Такой подход может оказаться полезным для определенного круга задач.

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

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

Совмещение труда в разработке программного обеспечения

Думаю, многим хабролюдям довелось побывать в роли человека-оркестра в таких самобытных конторках, где и программу разработать, самому же к ней инструкцию написать, установить у всех на ПК и далее активно принимать участие в разборе ситуаций «я тут весь день потратила, а оно куда-то всё пропало», меняя между делом картриджи и вытаскивая бумагу в (из) принтерах(-ов). Противоположность этому – работа в крупных компаниях с высоким уровнем зрелости процессов (типа CMMI 3 и выше), где специалист с некоторого момента начинает ощущать себя мелким винтиком в большом механизме, выполняющим кусок работы, не особо понимая, для чего это, кто это будет эксплуатировать, с какими проблемами сталкивается сейчас и будет сталкиваться после внедрения программного продукта. Где же золотая середина, баланс базара и матрицы? Навряд ли в обозримом будущем появится однозначный универсальный ответ на этот вопрос. Но есть принципы планирования и совершенствования совмещения труда на отдельно взятом производстве (организации), которые и представлены в данной статье с упором на сферу разработки программного обеспечения. Мне поисковики на запросы типа «совмещение труда» выдают в топе всевозможные статьи для кадровиков, объясняющих, каким образом правильно оформить совмещение труда, не нарушая Трудовой кодекс РФ. Мне же хочется в данной статье раскрыть тему с позиции экономики труда, организации производственных отношений, планирования разделения и кооперации труда на предприятии. После прочтения прошу всех пройти ...Далее...

Области сокрытия кода и рефакторинг

Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.

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

«4 свадьбы и одни похороны» или линейная регрессия для анализа открытых данных правительства Москвы

Несмотря на множество замечательных материалов по Data Science например, от Open Data Science, я продолжаю собирать объедки с пиршества разума и продолжаю делится с вами, своим опытом по освоению навыков машинного обучения и анализа данных с нуля. В последних статьях мы рассмотрели пару задачек по классификации, в процессе потом и кровью добывая себе данные, теперь пришло время регрессии. Поскольку ничего светотехнического в этот раз под рукой не оказалось, я решил поскрести по другим сусекам. Помнится, в одной из статей я агитировал читателей посмотреть в сторону отечественных открытых данных. Но поскольку я не барышня из рекламы «кефирчика для пищеварения» или шампуня с лошадиной силой, совесть не позволяла советовать что-либо, не испытав на себе. С чего начать? Конечно с открытых данных правительства РФ, там же ведь целое министерство есть. Мое знакомство с открытыми данными правительства РФ, было примерно, такое же как на иллюстрации к этой статье. Нет ну не то чтобы мне совсем не был интересен реестр Кинозалов города Новый Уренгой или перечень прокатного оборудования катка в Туле, просто для задачи регрессии они не очень подходят. Если порыться думаю и на сайте ОД правительства РФ можно найти, что-то путное, просто не очень легко. Данные Минфина...Далее...

Каррирование и частичное применение на C++14

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

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

Цифровой износ — старое явление на новый лад



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

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


Облако тэгов

Последние посты