Привет, я Вадим Шевяков (@Sirion), и я пишу на Хабр о всяких интересных вещах. Чаще про математику или JavaScript, но сегодня хочу рассказать кое о чём другом: о том, что иногда чудеса поджидают прямо за углом. Меня они подстерегли в самый обычный рабочий день, когда я обнаружил в телеграме сообщение от хабровского редактора: «Привет! А вам было бы интересно посетить киберферму и рассказать о ней? Там коровы с QR-кодами, доилки на ардуинках и всё такое».
Я подумал — а чем чёрт не шутит? Недолгие переговоры — и вот мы с женой уже грузимся в наш старенький ниссан и едем на ферму M2, в страну непуганых коров. Спойлер: про QR-коды редактор пошутил. Однако я узнал много других занимательных фактов. В каких случаях нет разницы между коровой и автомобилем? Что лучше — нежная девичья рука или бездушный механический манипулятор? Зачем маленькой ферме своя ERP-система и как поживает Delphi в 2021 году? Ответы на эти и другие вопросы — под катом.
Я подумал — а чем чёрт не шутит? Недолгие переговоры — и вот мы с женой уже грузимся в наш старенький ниссан и едем на ферму M2, в страну непуганых коров. Спойлер: про QR-коды редактор пошутил. Однако я узнал много других занимательных фактов. В каких случаях нет разницы между коровой и автомобилем? Что лучше — нежная девичья рука или бездушный механический манипулятор? Зачем маленькой ферме своя ERP-система и как поживает Delphi в 2021 году? Ответы на эти и другие вопросы — под катом.
Через пастбища — к базам данных
Ферма М2 находится в Подмосковье, между Волоколамском и Рузой. Если ехать с юга, места по пути живописные, фактурные. Тут и мемориальный комплекс Зои Космодемьянской, и придорожный магазин «Интим» в дощатом сарайчике, и загадочный указатель «РЭП ГИБДД». Готовые декорации для среднерусского роуд-муви.
Ближе к ферме начались поля и выпасы. Сотни коров бороздили пастбища, сливаясь издалека в бело-бурое пятно. В моей жизни корова — зверь диковинный, вроде дикобраза. Но зная, что вскоре мы с этими животными познакомимся ближе, я даже не стал расчехлять фотоаппарат.
Нас встретила улыбчивая светловолосая женщина — наш проводник Виктория.
Новые места — отличный повод поразмять квадрокоптер
Ферма оказалась не такой, как я ожидал. Воображение рисовало что-то среднее между ранчо и совхозом. Но увидел я чистые, аккуратные строения, выдержанные в светлых тонах и разбросанные среди зелени в тщательно выверенном беспорядке.
Несколько часов спустя, когда я буду беседовать с разработчиком Борисом, он поведает мне Основной Принцип: «Всё начинается с корма». Руководствуясь (пока ещё бессознательно) этой мудростью, мы первым делом направились в столовую. Там суровые мужики в спецовках ели куриный суп с лапшой, гуляш и рис, овощной салат и непременный в наших широтах компот — просто, но сытно. На секунду я пожалел, что такой столовой нет возле моего офиса. Потом вздохнул — нет, не сжигаю я в день столько калорий.
С момента, когда я с усилием встал из-за стола, началась настоящая экскурсия.
За углом столовой нас подстерегал хтонический агрегат — как оказалось, обычная сеялка
Я маленькая корова, и мне живётся неплохо
Первым делом мы пошли смотреть… Нет, не коров. Коровники. Или, как говорят на ферме, дворы. Если смотреть снаружи — такие же неприметные светло-серые здания, как и прочие вокруг. Наверное, работники фермы и сами путались, поэтому стена коровника украшена опознавательным знаком:
Панковатого вида корова — неофициальный символ фермы М2
Как оказалось, летом коровы не живут под крышей, а отправляются на вольный выпас. Супруга выглядела расстроенной — она ожидала, что дадут погладить живую корову. «Не переживайте, будет кого погладить», — успокоил нас присоединившийся к экскурсии ветеринарный врач Василий.
Внутри тишина, пустота и лёгкий запах навоза
А пока нам показали гордость фермы — полностью автоматические доилки DeLaval. Такими доилками коровы пользуются самостоятельно: приходят, чтобы избавиться от скопившегося молока. Конструктивно доилка похожа на заводскую проходную, только предъявлять надо не пропуск, а вымя ухо. На ухе у коровы закреплена RFID-метка, по которой доилка её опознаёт. Затем умная техника запрашивает информацию из базы данных — сколько времени прошло с последней дойки? Если меньше четырёх часов, то корова признаётся симулянткой и через турникет её не пускают.
Цифровой пропуск коровы на рабочее место
В противном случае корова проходит в зону доения. Там ей автоматически выдают дополнительную порцию корма — для положительного закрепления, ну и просто чтобы не было скучно в процессе. Количество корма зависит от прошлого надоя: передовикам молочного производства полагается порция побольше, чтобы компенсировать затраченные организмом ресурсы. Информация о надоях опять же берётся из базы данных.
Тем временем к вымени коровы подкрадывается манипулятор. Включается лазерная подсветка, с помощью которой система машинного зрения распознаёт вымя и локализует на нём соски. Каждый сосок дезинфицируется и увлажняется, после чего начинается собственно забор молока. Молоко тут же автоматически анализируется: если его электропроводность выходит за пределы расчётного интервала, вероятно, с ним что-то не так. В этом случае система вызывает человека-оператора для принятия решения. Если же всё в порядке, корова выдаивается «досуха» — система распознаёт момент, когда молоко заканчивается, и своевременно завершает дойку. Данные о времени доения и количестве полученного молока заносятся в базу, а корове ненавязчиво предлагается проследовать на выход и освободить место для коллег.
Конечно же, после такого рассказа мне очень захотелось увидеть всё это воочию. Само собой, ради меня никто не стал отрывать бурёнку от её важных летне-травоядных дел. Зато мне дали ссылку на ролик, где показаны все этапы производства молочной продукции на ферме. Вот, например, фрагмент с доилкой.
Есть в коровьем домике и другая автоматика. Например, скрепер. Это большой стальной скребок на цепи, который волочится по полу и счищает навоз. Трудная, но почётная обязанность.
Вопреки названию, он ничего не скрепляет
Ну и самая главная автоматика — чесалка. На фото её можно увидеть на заднем плане: большая круглая ярко-жёлтая щётка, почти как на автомойке. Когда корова прислоняется к ней боком, щётка начинает вращаться. Корова кайфует. «Это у них одно из главных удовольствий в жизни, почти как у людей секс», — с энтузиазмом рассказывает ветврач Василий.
Ребятам о зверятах
Наконец мы добрались до настоящих живых коров. Точнее, телят. Пока взрослые ушли пастись, дети остались в небольшом загончике — к полнейшему восторгу жены.
Мудрая эволюция распорядилась так, что детёныши зверей особенно милы и привлекательны. Коровята — не исключение
Тем временем к нам присоединился Алексей — человек, причастный к появлению этих телят. Иначе говоря — селекционер. Он продемонстрировал нам прибор, напоминающий бластер. Алексей направил его на семимесячную тёлочку, и на экран прибора вывелась информация о юной корове: идентификационный номер, дата рождения, порода, вес. Бластер оказался считывателем RFID-меток, соединённым с базой данных и подтягивающим оттуда сведения о животных.
— Сейчас у нас RFID-метками оснащены коровы, овцы, часть коз, — поведал Алексей. — С мелким рогатым скотом сложнее, метки достаточно массивные, не всякое ухо выдержит. Сейчас продумываем альтернативные варианты.
Телятам метки тоже ставят не сразу. До определённого возраста они довольствуются инвентарными номерами. Впрочем, если вбить такой номер в «бластер» вручную, можно получить всю ту же информацию. А вот свиньям метки не ставят вообще.
Бирка — для людей, RFID — для монстров считывателя
— Со свиньями обычная технология не сработает, когда ухо прокалывают. Пустишь её обратно в загон, другие свиньи почуют кровь — и пиши пропало. Да, как в фильме Snatch.
— А на куриц метки ставите?
— Нет, конечно, — рассмеялся Алексей. — Куры вообще не подлежат индивидуальному учёту, на каждую личное дело не заводится. В накладных пишут просто: курица, столько-то штук, партия такая-то. Вот на партию уже запись в базе есть.
Если курицы — обезличенное большинство, то коровы — аристократия скотного двора. С соответствующей атрибутикой — родословной и генеалогическим древом. Я с некоторым удивлением узнал, что в России существует единая база породистых коров. Работа с ней ведётся через программный комплекс СЕЛЭКС. Судя по интерфейсу — софтина древняя, как Windows ME. Однако со своими функциями справляется и, насколько я понял, является отраслевым стандартом де-факто.
Родословная до четвёртого колена — не каждый человек вспомнит
Ты — то, что ты ешь
Пока мы шли к дворам с мелким рогатым скотом, Виктория рассказала об особенностях органического хозяйства. Я слушал настороженно. Детство моё пришлось на 90-е, когда по развалинам СССР бродил призрак Геннадия Малахова со стаканчиком известной жидкости. Переболев в лёгкой форме адаптированной для наших широт Аюрведой, я привык с большим скепсисом относиться к любым разговорам о здоровой натуральной еде — слишком часто от них пахнет известной жидкостью апелляцией к природе.
Однако Виктория не пыталась меня ни в чём убедить. Для неё полезность органической продукции была самоочевидна. Удивительно для неё было другое — что на свете есть люди, которым всё равно, чем питаться. Которые за обе щёки трескают колбасу непонятного происхождения, из мяса неизвестно какого животного, обколотого бог знает какими гормонами, откормленного невесть чем… Когда Виктория говорила об этом, в её голосе слышалось искреннее изумление и даже какая-то обида. И при всём своём скептицизме я не мог не признать, что здравое зерно в этом есть.
Используются ли для органического сертификата органические чернила?
Чтобы маркировать свою продукцию как органическую, ферме необходимо получить т. н. органический сертификат. Для этого независимая инспекция проверяет, соблюдаются ли на производстве определённые требования: отсутствие химических удобрений и пестицидов, гуманное обращение с животными, бережное отношение к природе. У фермы М2 сразу два таких сертификата — отечественный и европейский. Как рассказала Виктория, отечественные инспекторы исходят из презумпции виновности. Проверяли всё, что можно, «анализы не взяли разве что у зоотехника». С получением же европейского сертификата главной проблемой было… найти инспектора. Эта должность требует подготовки, и квалифицированных инспекторов, которые могут провести проверку по евростандартам, в наших краях раз-два и обчёлся.
В силосных ямах зреет органический корм для скота. Покрышки — чтобы не слетела плёнка и внутрь не попал вредный кислород
Идея полного отказа от химии показалась мне излишне радикальной. По пути к ферме мы видели небольшое поле, заросшее борщевиком Сосновского. Лучше искупаться в глифосате или ещё каком-нибудь гербициде, чем потрогать незащищённой рукой это милое стопроцентно натуральное растение. Не всё природное полезно, не всё искусственное вредно…
А вот слова о гуманном обращении с животными заставили меня задуматься. Не так давно я читал философа-трансгуманиста Дэвида Пирса, его теорию о расширяющемся круге эмпатии. По его мнению, прогресс цивилизации связан с тем, что у людей постоянно увеличивается круг «своих» — тех, чьё благо для них важно, а страдания неприемлемы. Начиная от родоплеменных отношений, когда «свои» — это исключительно соплеменники, и заканчивая современным гуманизмом, признающим одинаковые права за всеми без исключения Homo Sapiens. Однако, по мнению Пирса, это ещё не конец. Круг эмпатии должен расширяться дальше и включить в себя всех живых существ.
Корова в круге эмпатии
Конечно, Пирс — веган в третьем поколении, ему легко так говорить. Для человека, который не представляет свою жизнь без мяса, подобная риторика менее соблазнительна. И всё же, вспоминая большие влажные глаза телят, я думал, что возможен некий срединный путь. Стандарты органического животноводства — это, конечно, ещё не декларация прав животных, но уже небольшой шажок в этом направлении. Животных запрещается содержать в тесноте или изоляции, подвергать без необходимости стрессу и болезненным процедурам. Животные должны разводиться в комфортной для них климатической зоне, по возможности — на вольном выпасе. «В течение всей жизни животного, в том числе во время убоя, любое страдание, в том числе хирургическое вмешательство, должно быть сведено к минимуму», — гласит ГОСТ 33 980–2016, определяющий, что в нашей стране может считаться органической продукцией.
В этих круглых домиках телята могут спрятаться от палящего солнца
Если уж я и не могу отказаться от говядины — по крайней мере хотелось бы знать, что у этой говядины была счастливая жизнь и лёгкая смерть.
…и животноводство!
Я нечасто наблюдал овец или коз. В моём представлении овцы были кудрявыми няшками, а козы — рогатыми отродьями Сатаны. На деле оказалось иначе. Овцы (по крайней мере молочной породы) — бесформенные, флегматичные облака без штанов. А вот козы — изящные создания, не лишённые шарма. Пожалуй, обзывательство «овца» обидное, а вот «коза» — это почти комплимент.
«Сам такой»
Дворы у тех и других были обустроены примерно одинаково. Просторные загоны, выстланные сеном. Кубики каменной соли, привязанные к ограде. Кварцевые лампы и вентиляторы. Уже знакомые нам жёлтые валики автоматических чесалок — наконец-то мы увидели их в действии.
Да, животные действительно кайфуют. Мне даже самому захотелось попробовать
Ну и, разумеется, доилки. Попроще, чем у коров, не полностью автоматические. Человек по очереди заводит скотину в специальную загородку, ставит выменем в нужную сторону. Затем обрабатывает соски и цепляет на них присоски. Автоматика начинает доение. Характеристики молока сразу выводятся на электронное табло, и если что-то не так — оператор не пустит молоко в общую ёмкость.
На табло выводится объём, электропроводность и другие характеристики молока
Я слышал байки о том, что автоматические доилки выдаивают животных до крови. Поинтересовался у Василия, есть ли в этом доля правды.
— Так было с самыми первыми доильными аппаратами, ещё во времена СССР. Сейчас доилки умные: чувствуют — падает давление, значит, пора заканчивать. Сейчас они доят даже нежнее человека. У профессиональной доярки руки становятся мозолистыми, сколько их кремами ни мажь. Приходится перед дойкой смазывать вазелином, и всё равно раздражают, травмируют вымя. Особенно если какое-то неловкое движение. А у автоматики мозолей не возникает и неловких движений быть не может, всё делает чётко, бережно.
Потом мы шли мимо бескрайних посадок и грядок. Клубника, смородина, черноплодная рябина. Тут уже никакой автоматизации, всё собирается вручную. Прошли мимо загона, где паслись куры. Точнее, не знаю, применимо ли к курам слово «пастись», но массовое гуляние у них происходило. В курятник нас не пустили — вход разрешён только рабочим в биозащитных «скафандрах».
Куриный домик тоже помечен опознавательным знаком
Куры живут кучно и очень уязвимы для болезней. Один неудачный визит — и тысячи куриных трупиков везут на утилизацию в крематорий. Этого можно было бы избежать, обкалывая пернатых антибиотиками, однако в органическом хозяйстве подобный подход недопустим.
Курица это или петух? Моих познаний в сельском хозяйстве недостаточно, чтобы определить
Напротив куриных пастбищ пролегла небольшая пасека, несколько десятков ульев. Есть ли хоть одна отрасль сельского хозяйства, которой тут не занимаются?
— Ферма М2 развивалась стихийно, — пояснила Виктория. — Кто-то из основателей загорелся пчеловодством — и вот она, пасека. Сейчас мы идём к нашей пивоварне — тоже не основной профиль, но кому-то стало это интересно — и вот мы производим своё пиво, квас, лимонад. Главное — если мы за что-то берёмся, то делаем как следует. Только лучшие практики, только качественное сырьё и постоянный, неусыпный контроль.
Я украдкой вздохнул. Мне бы такое добросовестное отношение к пет-проектам.
Губит людей не пиво
Производство пива и прохладительных напитков — не совсем то, что ассоциируется с понятием «ферма». Читатель, которому это не слишком интересно, может перейти к более айтишной части поста.
На пивном заводике нас встретил улыбчивый мужчина, назвавшийся Айратом. По тому, как деловито и уверенно он вёл экскурсию, я заподозрил, что это дело у него поставлено на поток. Как оказалось впоследствии — не ошибся. Айрат показал нам весь цикл производства, от начала до конца.
Сжиженная благодать, то есть будущий янтарный лагер «Дзен»
Пиво состоит из четырёх основных ингредиентов: воды, дрожжей, хмеля и солода. Воду ферма получает из собственной скважины, затем вода фильтруется и становится чуть ли ни дистиллированной. После этого в неё добавляют минеральные соли, чтобы она стала похожа по составу на воду той местности, откуда происходит конкретный сорт пива. Я уважительно присвистнул — с таким основательным подходом слова «мы варим немецкое пиво» уже не кажутся хвастовством.
Воду и дрожжи нам показывать не стали — дескать, что в них интересного. Зато показали образцы солода и хмеля — опять же собственного производства. Даже дали понюхать. Солод почти ничем не пахнет. Хмель пахнет алкоголиком, спящим на лавочке.
Обычный, жжёный, карамельный солод, цельнолистовой и гранулированный хмель — я и не подозревал, что у них столько разновидностей
В целом технология пивоварения на ферме стандартная, как в «Википедии». Солод нагревается и мельчится («затирается») в воде, затем жидкость фильтруется. Получается сусло и сухой остаток, который, к слову, является ценной кормовой добавкой. Сусло кипятится, добавляется хмель, потом снова фильтрация («осветление»). Всё это происходит в больших металлических чанах — «танках». Жидкость, постепенно становящаяся пивом, гоняется из чана в чан с помощью насоса и толстого шланга. Один чан — затирание, другой — кипячение. Наконец — главная стадия всей этой алхимии, брожение. Сусло поступает ещё в один танк, добавляются дрожжи, которые начинают производство цэ-два-аш-пять-о-аш.
Танк для затирания сусла. От долгого перемешивания молекулы крахмала становятся низкополимерными, и дрожжам удобнее их «кушать»
В конце пиво фильтруется (или не фильтруется), а затем поступает в разливочный цех — небольшой, но автоматизированный. Едут бутылки, наклеиваются этикетки, наливается продукт, закрываются пробки. Очень медитативное зрелище, часами бы смотрел…
При виде конвейера сразу хочется играть в Infinifactory
Самый волнительный момент такой экскурсии — это, конечно, дегустация. Я не большой специалист по пиву, но APA показался мне вполне вкусным и ароматным. Что интересно, безалкогольное пиво по вкусу почти не уступало нормальному. Но наибольшее впечатление на меня произвёл смородиновый лимонад. Если хорошее пиво найти нетрудно, то действительно вкусную газировку в наше время не сыщешь.
— Это всё органическое производство, — усмехнулся Айрат. — В обычной газировке какие ингредиенты? Вода, углекислый газ, сахар, ароматизаторы, красители. А у нас — только вода, газ и смородиновый сок.
Что бы я ни думал по поводу хайпа вокруг натуральности, трудно спорить с собственными вкусовыми сосочками. Тем временем Айрат ненадолго залез в смартфон.
— У нас любое движение продукта должно быть подтверждено актом. Налил пива на дегустацию — сразу составил акт о списании, указал причину. Всё в мобильном приложении, удобно.
Винный погреб снаружи похож на комфортабельное бомбоубежище
Затем мы спустились в винный погреб. Да, винное производство на ферме М2 также имеется. Без особого хайтека, всё по вековым традициям. Вино зреет в глиняных ёмкостях — квеври, вкопанных в землю (за счёт чего достигается постоянство температуры). Некоторые сорта дозревают в дубовых бочках. Потом благородный напиток разливается по стеклянным бутылям — и готов радовать ценителя.
Горлышко квеври — скромная надводная часть винного айсберга
Трава у дома
Когда я планировал поездку на ферму, мне предлагали снять коттедж с видом на пруд, чтобы заночевать с комфортом. Мы с супругой отказались от этой идеи в пользу поездки одним днём — не хватало свободного времени. Однако проходя мимо этих самых коттеджей, не смогли сдержать любопытство и попросили Викторию показать, чего мы лишились.
Агротуристический рай, вид сверху
Четыре коттеджа приютились на самом краю фермы. За ними начинался лес. Красивые тропинки, выложенные плиткой, рядом небольшая детская площадка в фольклорном стиле. Ну и пруд — «самоочищающийся», как гордо уточнила Виктория. Вода постоянно гоняется насосом через фильтр, чтобы пруд не зацвёл и не заилился.
Виктория заглянула в смартфон и выяснила, что коттедж номер 3 ещё пару часов будет пустовать и мы можем заглянуть в него, если разуемся и обещаем не сорить.
Интерфейс бронирования коттеджей нам покажут позже
Внутри коттедж обставлен в скандинавском стиле. По крайней мере, так мне сказала жена — я-то больше разбираюсь в стилях CSS. Просторная гостиная, две спальни, душ, туалет. На заднем дворе — барбекю. На стене в гостиной — логотип фермы, выполненный из стабилизированного мха.
Как и всё на этой ферме, логотип сочетает «натуральное» и «хайтековое»
— Гости могут готовить барбекю, — рассказывала тем временем Виктория. — Могут плавать в пруду, могут кататься по территории фермы на квадроциклах. Также организуем конные прогулки. Вообще, агротуризм сейчас — бурно развивающееся направление. Городских людей тянет на природу, к животным, к растениям…
Я подумал, что с точки зрения работника фермы всё это довольно забавно, если не сказать нелепо. Приезжают люди, гладят коров, умиляются. Эка, понимаешь, невидаль — корова. У нас тут этих коров целое стадо.
С другой стороны — а ведь правда невидаль. Доля сельского населения сокращается, доля тех, кто вырос вдали от крупного и мелкого рогатого скота, — соответственно, растёт. И пусть со стороны это может выглядеть смешно, но ведь и жители южных приморских городов посмеиваются над остервенело купающимися и загорающими туристами. И всё же туристы загорают и купаются. А кто над чем посмеивается — это его глубоко личное дело.
Уже дома, рыская по интернету в поисках материалов для поста, я узнал, что есть целая платформа для организации агротуров. Платформа названа нехитро, но дескриптивно — «Своё за городом». Там каждый может записаться на экскурсию вроде той, что провели для меня. А может найти и что-то поэкзотичнее — например, крокодиловую или улиточную ферму. Да, улиточные фермы существуют. Нет, не спрашивайте зачем.
«А внутре у ней неонка»
На пивной экскурсии к нам присоединились двое мужчин. Это оказались местные разработчики. Беседы о цифровой составляющей фермы не входят в стандартную программу агротура, но у меня были на этот счёт особые договорённости с РСХБ и через них — с руководством фермы. Потому жена отправилась дегустировать местные лимонады, а мы с Александром и Борисом зашли к ним в офис. Как и всяким порядочным специалистам, им не терпелось поделиться деталями своей работы с человеком, который способен в эти детали вникнуть и, главное, с которым руководство делиться разрешило.
Граф статусов задач в MS. Мне очень нравятся отдельные пункты «Отказ» и «Отказ (делать не будем)»
«Цифровым мозгом» фермы стала ERP-система собственной разработки под названием MS (Major Studio). Я удивился, зачем ферме своя ERP-система. Выяснились интересные вещи. Ферма M2 — это, так сказать, непрофильное дочернее предприятие холдинга Major, основное занятие которого — импорт автомобилей и грузоперевозки. Ферма была создана руководителями холдинга с очень важной и благородной целью: чтобы у них был собственный источник вкусной и здоровой пищи, в которой можно быть уверенными на все сто процентов. Но, конечно, прятать такой источник от человечества — великий грех, поэтому продукция фермы доступна каждому, кого не смутит слегка кусачая цена…
Главный экран системы аналитики
Поскольку ферма появилась не с нуля, на ней стали использовать ту же самую ERP-систему, что и на основных предприятиях холдинга. Разумеется, со своей спецификой, однако архитектура, серверы, база данных — всё это одновременно используется для учёта и коров, и автомобилей. Поэтому Александр даже затруднился сказать мне, какую нагрузку даёт ферма на БД. Всего база обрабатывает 50 тысяч запросов в секунду, а вот какие из них относятся к коровам — это навскидку сказать тяжело.
— Очень много готовых механизмов, — пояснил Александр, когда я усомнился в разумности такого подхода. — Права, авторизация. Хранение файлов, в конце концов. В итоге решили, что проще интегрировать ферму в текущую систему, а не дублировать для неё тот же функционал.
Команду разработчиков для фермы также собирали не с нуля, а из уже работающих на холдинг специалистов. В их рабочем распорядке мало что поменялось — они по-прежнему работали в московском офисе (или, в реалиях последних лет, на удалёнке). Для тестирования даже не стали выделять отдельных специалистов, задачи просто вешались на штатных тестировщиков.
— С нуля сейчас команду собрать нелегко, — сокрушался Борис. — У нас десктопный клиент пишется на Delphi. Трудно найти хорошего специалиста.
— А как вообще поживает Delphi в 2021 году? — удивился я.
— Замечательно поживает. В своей нише — лучше всех. Сейчас модно всё делать в браузере. Но наш клиент на Delphi с десятью открытыми окнами будет потреблять памяти меньше, чем одна вкладка в Chrome.
— Если что, можно писать, что вам требуются специалисты по Delphi? — поинтересовался я, уже понимая, что без поста на Хабр эта поездка не обойдётся.
— Конечно, пиши. Очень даже требуются.
К разговору подключился Александр и рассказал, что у Major даже есть свой образовательный проект — Major Academy. Это большая подборка онлайн-курсов, которые подготавливают к тем или иным нужным в холдинге специальностям.
Курс по использованию бластера
— Курсы самые разные. Есть для SQL-разработчиков, а есть, скажем, курс для зоотехников, как пользоваться считывателем RFID-меток. Небольшой, часа на четыре, при условии, что человек в информационных технологиях полный нуль. Но — курс.
Я записал адрес сайта, чтобы дома из любопытства потыкать курс для зоотехников. Но Александр покачал головой: нет, мол, Major Academy — не открытый образовательный проект, доступ только по приглашению.
Помимо слегка экзотичного в наши дни Delphi, в остальном технологический стек удивления не вызвал. База данных — MS SQL. Серверная часть на C#. Брокер сообщений — RabbitMQ, кеширование на Redis.
— А мобильные приложения вы тоже на Delphi пишете?
— Нет, конечно, — обиделся Борис. — Мы его используем не оттого, что не умеем ничего другого, а потому, что это лучшее решение в своей нише. Мобильные приложения у нас нативные. Пробовали Flutter, но как-то не срослось. Есть веб-версия на React. А интернет-магазин — на Vue.
Всё начинается с корма
Эта фраза, упомянутая мной в начале статьи, прозвучала, когда я стал расспрашивать про архитектуру системы.
— Мы долго думали, что должно быть основной сущностью в нашей системе, — рассказывал Борис. Сначала решили — наверное, животные. Но потом подумали и поняли — нет. Основная сущность — корм, всё начинается с корма. Если не знаешь, сколько корма ушло на животное, на стадо, — не сможешь рассчитать прибыль. Или даже понять, была ли вообще прибыль или конечный продукт не окупил затраты.
Чтобы всё начиналось с корма, нужно, чтобы корм не заканчивался
Другая важная сущность в системе — склад. Складов много, и они организованы иерархически. Допустим, есть склад «Строение 4», в нём подсклад «Помещение 2». При желании можно сделать подподсклад «Дальняя нижняя полка» — был бы в этом смысл, а техническая возможность имеется.
Любой продукт на ферме приписан к складу. Появление продукта, его списание или перемещение — это увеличение или уменьшение его количества на тех или иных складах. В базе данных хранится вся история этих изменений. Каждое изменение подкреплено актом, где указан ответственный. Можно посмотреть в базе и увидеть, скажем, что такого-то числа было использовано такое-то количество укропа для изготовления пирожков. Можно даже увидеть, кто изготовил эти пирожки, где они потом хранились и когда были проданы или списаны в связи с порчей. Или (опция для циников) можно узнать айдишник коровы, из которой была произведена конкретная палка колбасы.
«Джо, а ты совсем не изменился»
— Конечно, чтобы всё это не превратилось в хаос, нужна чёткая настройка прав и возможных направлений перемещения. Иначе на поле вместо удобрений отправится бензонасос — был у нас такой случай во время обкатки системы. С тех пор мы всегда задаём, какие продукты с каких складов на какие могут перемещаться и кто имеет право на такое перемещение.
Учёт бензина и управление сельскохозяйственной техникой — отдельная тема. Для этого система MS интегрирована с сервисами Wialon и Cropio. Первая мониторит перемещения техники в пространстве и расход бензина. Вторая предназначена для планирования сельскохозяйственных операций, а также обеспечивает «поддержку с воздуха» — позволяет следить за состоянием полей со спутника.
Свидетельство выполненной работы тракториста. Видно даже траекторию движения
Также MS интегрирована с системой «Меркурий». Это всероссийская система сертификации животной продукции, о существовании которой я с удивлением узнал в тот день. Оказывается, нельзя просто так произвести брикет масла и толкнуть в магазине — нужно регистрировать его в государственной базе. Киберпанк по-русски: высокие технологии, большой геморрой.
Все ходы записаны
Для бизнес-аналитики используется Power BI.
— У нас в системе данных больше, чем у маркетологов желания их анализировать, — шутил (или не шутил) Александр. — Можем сделать любые графики, любые диаграммы — пусть только попросят. Они потом смотрят на эти графики, и если видят аномальные значения — начинают разбираться. Допустим, случилось резкое уменьшение веса скота — почему? Смотрят — ага, был плановый забой бычков. Значит, всё в порядке.
Смерть одной коровы — говядина, смерть сотен — статистика
Мы могли бы общаться в том же духе ещё долго — о любой достаточно сложной системе, в принципе, можно говорить вечно. Однако моя благоверная уже закончила с лимонадами и нетерпеливо поглядывала на часы.
Назад от природы
Напоследок мы закупились в продукцией фермы в специальном магазинчике на выезде. Взяли всего понемногу — пива, кваса, молока, обычного и козьего сыра. Божественной газировки мы к тому моменту выпили столько, что уже смотреть на неё не могли. Хотелось попробовать побольше всякого разного, но пришлось взять себя в руки — у органической продукции и срок годности меньше, и ценник злее, чем у ассортимента условной «Пятёрочки».
Квас не произвёл на меня особого впечатления. Хороший, но не выдающийся. Пиво — вполне добротный пильзнер, но опять же не сказать чтобы примечательный. Сыр-косичка был очень нежным, несмотря на копчёность. Я раньше не пробовал такого сочетания вкусов. Козий сыр — выше любых похвал, мой персональный фаворит. А вот жене больше понравилось топлёное молоко.
Сырный Форт-Нокс. Поневоле начинаешь задумываться об ограблении
Как истинный эпикуреец, я потреблял сыр с хлебом, возлежа на кровати. Уже набрасывая в уме план будущей статьи, я думал о том, что наше время — время крайностей. Время, когда одни облюбовали асфальтовые джунгли, а другим настоящие леса и поля милее всех благ цивилизации. Когда одни готовы заплатить любые деньги за продукты без «ужасной химии», а другие предпочитают вообще не интересоваться составом продуктов. Конечно, хотелось бы иметь какой-то срединный путь, но иногда такого пути нет, и приходится выбирать сторону.
Экзальтированное поклонение природе и циничное пренебрежение к ней сцепились, как два волка из индейской притчи. А побеждает, как известно, тот волк, которого ты кормишь. Ведь всё начинается с корма.