TW: нудный гик-стафф про бытовую технику.
Кофемашина в какой-то момент не включила индикатор переполненности контейнера для жмыха. Это странно, поэтому я стал разбираться. Вообще, техника редко глючит непонятным образом и ведет себя хаотично. Всегда есть какая-то причина. При отладке программы это тоже надо всегда помнить.
Как машина узнаёт, что контейнер полон? Никак. У контейнера есть герконовый датчик, показывающий факт его установки в корпус. Когда ты его вытаскиваешь, машина думает, что ты его очистил. А дальше программа просто знает, что одинарный кофе наполняет контейнер на X, двойной на 2X, а вместимость nX.
Что произошло: я открыл контейнер посмотреть, заполнен ли он целиком. А потом закрыл обратно, не очистив. В оценке уровня жмыха появилась аддитивная погрешность.
Если позволить человеку ввести систему в неправильное состояние, он рано или поздно это сделает. Кстати, по той же причине мне нравится DDD как архитектура для энтерпрайз разработки: если всё правильно спроектировать, то программист слоя приложения, который является "пользователем" домена, не сможет сломать состояние сущностей и агрегатов.
В общем, в машине не хватило защиты от дурака. Как бы я решал эту задачу? Сходу приходит в голову какой-нибудь оптический датчик в верхней части контейнера. В худшем случае он запачкается и сработает ложно-положительно, что вызовет необходимость для пользователя лишний раз почистить контейнер.
Но ТРИЗ намекает нам на другой подход. Можно попробовать полностью исключить появление жмыха. Так устроены, например, капсульные машины. У нас такая была, но перешли на зерновую, потому что вкусный качественный кофе в зёрнах на порядки дешевле, чем в капсулах, а пьем мы его много. Особенно кофе с молоком, для которого в капсулах просто концентрат, а не настоящее молоко.
Если исключить жмых нельзя, то нужно сделать его удаление неотъемлемой частью процесса обслуживания машины. Думаю, я бы попробовал объединить конструктивно контейнер для зёрен и для жмыха, и рассчитать объёмы так, чтобы второго хватило на один цикл траты первого. Тогда даже датчики не нужны: кончились зёрна, и ты неизбежно достаешь контейнер и очищаешь.
Сфоткал для вас чашечку ароматного капучино.
#life
🫧Армия США расследует полёты «Апачей» над домом Кид Рока
📌Армия США начала расследование после того, как боевые вертолёты AH-64D Apache из 101-й бригады были сняты на видео кружащими над домом музыканта Кид Рока в Нэшвилле и летающими на низкой высоте возле протестующих в Кларксвилле. По документам вертолёты должны были выполнять учебный полёт
🔵Представитель армии заявил, что это не было санкционированным мероприятием и вертолёты не назначались для наблюдения за демонстрациями. Проводится административная проверка соблюдения правил полётов и требований воздушного пространства
⬅️Обещают принять меры в случае выявления нарушений
Лёгкое небо
#aviation#news#США#Apache
✅ Завтра
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/h2Yvvo
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/h2Yvvo
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/AgNpma
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/AgNpma
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
✅ ANDROID MEETUP
📅 29 марта / 19:00–21:00 (время ЕКБ, МСК+2) / Екатеринбург, пер. Химков, 3, коворкинг Соль
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/TyRRL6
Приглашаем вас к нам на митап, чтобы пообщаться, поделиться опытом и рассказать с какими задачами мы сталкиваемся, какие технологии используем и ,конечно, перетереть косточки Kotlin
🔗 Программа: https://goo.gl/TyRRL6
#android#Kotlin#Екатеринбург
✅ Epic Growth Conference
📅 29 марта / 14:00–22:00 (время МСК) / Москва, ул. 3-я Ямского Поля, 15
💵 Платно
📝 Регистрация тут: https://goo.gl/WEVQ6a
29 марта в Москве Mobio и Getloyal при поддержке партнеров организуют конференцию по продуктовому маркетингу Epic Growth Conference.
🔗 Программа: https://goo.gl/WEVQ6a
#marketing#productivity#маркетинг#продукт#Москва
✅ Apache® Ignite™ Meetup #1
📅 29 марта / 19:00–22:00 (время МСК) / Санкт-Петербург, Невский проспект 35
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/xsnDmZ
Встреча для архитекторов и разработчиков, которые интересуются In-Memory решениями, в том числе open-source платформой Apache Ignite.
🔗 Программа: https://goo.gl/xsnDmZ
#Apache#backend#СанктПетербург