пятница, 6 апреля 2018 г.

[prog.c++] Только что довелось самому воспользоваться msg_tracing-фильтрами при поиске проблемы

Делаю примеры для новой статьи про SObjectizer. В примерах имитируется работа с оборудованием и собирается небольшая статистика о задержках в обработке сообщений при разных политиках обработки этих сообщений. По сути, в примерах работает два агента. Первый, a_device_manager, имитирует работу с оборудованием. Второй, a_dashboard, раз в пять секунд выдает на экран текущие показатели.

И вот при первых запусках примеров обнаруживается, что в какой-то момент статистика перестает обновляться. Становится понятно, что это происходит потому, что не обрабатывается одно из сообщений, a_device_manager_t::reinit_device_t. Но почему не обрабатывается? Подписка на него есть:

четверг, 5 апреля 2018 г.

[prog.c++] RESTinio обновилась до версии 0.4.4

Мы сегодня выкатили очередное обновление для своей C++библиотеки для встраивания HTTP/WebSocket-сервера в C++ное приложение. С полным текстом анонса можно ознакомиться у нас на сайте: русская версия и английская версия.

Мы постарались упростить работу с запросами, которые содержат сжатые zlib-ом данные. Если вам кажется, что у нас получилось не очень и у вас есть идеи о том, как это сделать более просто и удобно -- дайте знать, плиз, постараемся творчески переосмыслить конструктивную критику и предложения.

Ну и вообще, если у вас есть какие-то пожелания к RESTinio, то мы всегда открыты и готовы выслушать любые соображения. Про поддержку пакетных менеджеров мы в курсе, как только, так сразу :)

среда, 4 апреля 2018 г.

[soft.business] Любопытная статья на Хабре про ИТ-шную составляющую клининговой компании

Вот сама статья. Обсуждение там какое-то вялое, а человека, который задавал вполне себе разумные вопросы, сразу заминусовали.

Чем статья зацепила меня? Речь в ней идет о компании, которая, как я понимаю, занимается "сводничеством" на тему уборки помещений. Вы на сайте компании заказываете уборку офиса/квартиры, компания подбирает исполнителей из числа тех кто подключился к их системе. Вот что они сами о себе говорят:

Мы начинали в 2014 году с квартиры-офиса на Арбате (с переговоркой в кухне), 300 клиентов и организацией всего “руками”. Вся информация фиксировалась в экселе, а разработкой и не пахло. Со временем количество клиентов увеличивалось, потребовалась автоматизация, и сегодня Qlean — это зрелая компания, в которой отдел разработки насчитывает более 25 человек. Сегодня через наш сервис делается в среднем около 1000 уборок в день силами 3000 подключенных к системе исполнителей.

За четыре года рост ИТ-сектора с нуля до 25 человек... Для компании, которая выполняет, грубо говоря, всего 1000 заказов в день... Какой-то перебор как по мне. Еще один звоночек:

Всего у нас около 30 различных сервисов, которые живут на более чем 70 виртуальных машинах...

30 сервисов и 70 виртуальных машин? И все это для того, чтобы обслуживать 30K клиентов и 3K исполнителей, при нагрузке в районе 100rps.

Ну и список языков+технологий доставляет: Ruby, nodejs+React, clojure, react native, python, go. Ну и куда же без docker, memcached, redis :)

И вот что у меня в голове не сходится. 25 разработчиков. Пусть затраты на каждого из них (ЗП со всеми налогами и отчислениями с ЗП) составляют 60K RUB в месяц. Это означает, что расходы компании только на свой ИТ-шный сектор будут составлять 1.5M RUB в месяц. Еще раз: полтора миллиона рублей только на зарплаты разработчикам (насколько правдоподобна ЗП разработчика в 60K со всеми налогами судите сами). Чтобы отбить только эти расходы компания должна получать по 50 RUB с каждой уборки (1000 уборок день при, грубо говоря, 30 днях в месяц).

Но ведь расходы на ЗП программистов не единственные. Есть же еще ЗП всего остального персонала компании. Есть арендная плата, есть коммунальные платежи, есть расходы на амортизацию оборудования, есть расходы на маркетинг. Есть налоги в конце-концов. Плюс должна же быть и какая-то прибыль.

И что-то мне подсказывает, что для того, чтобы держаться на плаву, компания должна зарабатывать с каждой уборки далеко не 50 RUB. И, возможно, даже не 200 RUB. Соответственно, если уборка однокомнатной квартиры стоит 1600 RUB, из которых, как минимум, 200 RUB забирает себе компания, то насколько выгодно с такой компанией сотрудничать клинерам-исполнителям?

Собственно, к чему я веду. Такое ощущение, что ИТ-шники умело разводят руководителей и владельцев. Ну или компания старательно и красиво прожирает деньги инвесторов, создавая перед инвесторами впечатление движения в очень правильном направлении. Либо же в эту игру играют и сами инвесторы, накачивая "стоимость" и "весомость" перед последующей продажей.

Конечно, есть еще вариант, что под соусом клининговых услуг разрабатывается технологическая платформа, с помощью которой можно будет развернуть подобные же сервисы для других типов работ: выгул домашних животных, например, услуги сиделки, репетиторство и т.д. Тогда да, тогда компания может инвестировать большие средства в разработку платформы, чтобы затем быстро и дешево выкатывать новые сервисы под новыми брендами. Но и в этом случае 25 человек в разработке -- это как-то многовато, как по мне. Явно мы у себя в СтифСтриме чем-то не тем занимаемся... Нужно еще учиться и учиться, чтобы так умело разводить инвесторов на бабло :(

вторник, 3 апреля 2018 г.

[prog.flame] Таки Rust -- это язык, где каждая закорючка имеет огромное значение

В последние дни пытаюсь читать вторую редакцию Rust book-а. Но не потому, что сильно воспылал желанием попрограммировать на Rust-е, а потому, что предлагают принять участие в обсуждении Rust-а и C++ на грядущей C++ CoreHard Spring 2018. Вот и пытаюсь слегка погрузиться в тему.

По ходу чтения складывается ощущение, что второе издание писали с прицелом на дебилов веб-разработчиков, которые кроме Ruby и JavaScript-а ничего не видели. Плюс еще и очень сильно ощущается маркетинговая составляющая. Мол, Rust -- это чуть ли не лучшее, что появилось в области разработки софта, и с Rust-ом ваши волосы всегда будут... ;) Возможно, что я ошибаюсь, но года три назад, когда я впервые начал к Rust-у серьезно приглядываться, у меня не было такого ощущения.

Но в этот раз хочется заострить внимание на другом. Всегда, когда доводилось погружаться в Rust, ловил себя на том, что при чтении Rust-овского кода приходится заострять внимание буквально на каждом символе. И вот наткнулся на очередное подтверждение этого впечатления. Простая программка:

[prog] В склерозник: ссылки на тему очередного key-value-хранилища под названием Anna

Зафиксирую в блоге несколько ссылок, дабы затем можно было найти.

PDF-ка от исследователей из Беркли, Йеля и Колумбийского университетов: Anna: A KVS For Any Scale. Рассказывает о проекте с непонятным статусом (прототип, экспериментальная разработка, ...), в котором реализуется высокопроизводительное и масштабируемое key-value-хранилище под названием Anna. Что особенно привлекательно для меня, так это то, что Anna реализована на C++, да еще и с использованием модели акторов (для реализации взаимодействия между акторами используется механизм pub-sub и ZeroMQ в качестве транспорта).

Еще очень интересная ссылка на обсуждение этой темы на Hacker News: тыц. Там в комментариях большое количество других ссылок, на разные key-value-хранилища и не только.


Кстати говоря, от данной темы я очень далек. Но судя по тому, какое большое количество проектов в этом направлении развивается, тема эта выглядит горячей и востребованной. Это вообще так или мне кажется?

Ну и есть ли здесь вообще какой-нибудь коммерческий потенциал? Т.е. поставщики решений, вроде Redis-а, memcached или Cassandra, они что-нибудь на этом зарабатывают? Типа продают лицензии, платную техподдержку или что-то в этом духе. Или же здесь как с Linux-ом: несколько крупных компаний держат отдельных разработчиков, чтобы те совместно пилили большой OpenSource-проект в режиме full-time.

понедельник, 2 апреля 2018 г.

[life.cinema] Очередной кинообзор (2018/03)

Подошло время очередного кинообзора. Как обычно, в начале списка идут фильмы, которые понравились больше, затем те, что понравились меньше.

Первому игроку приготовиться (Ready Player One, 2018). Сюжет полное Г. Но вот визуальная составляющая доставляет по полной программе. И вообще, это фильм для семейного просмотра, так что в этом качестве к нему претензий нет -- хороший, динамичный и красочный аттракцион.

Большая игра (Molly's Game, 2017). Наверное, не шедевр. Но мне понравилось.

Все деньги мира (All the Money in the World, 2017). Первый фильм Ридли Скотта за последние годы, который можно спокойно посмотреть.

Tomb Raider: Лара Крофт (Tomb Raider, 2018). Еще один красочный аттракцион для семейного просмотра. Как по мне, так самое достойное, наверное, из приключенческого кино в стиле "Индианы Джонса" за последнее время. Ну и, по-моему, гораздо лучше, чем фильмы по мотивам Tomb Raider с Джоли в главной роли.

Джуманджи: Зов джунглей (Jumanji: Welcome to the Jungle, 2017). Очень неплохая приключенческая комедия.

Аутсайдер (The Outsider, 2018). Посмотреть можно. Но как-то все очень неспешно в фильме происходит, к этому нужно быть готовым.

10 на 10 (10x10, 2018). Могло бы быть хорошо, если бы не несколько моментов, в которые приходится вопрошать "Ну что за...? Ну как же так...?"

Аннигиляция (Annihilation, 2018). Очень занудная нудятина-бредятина с предсказуемой концовкой.

Форма воды (The Shape of Water, 2017). Тот самый случай, когда и во время, и после просмотра хочется воскликнуть: "Коллега, что за фигню нам здесь показывают?!!!"

Титан (The Titan, 2018). Обычная история для фильмов Netflix: замах на рубль, удар на копейку. Но в данном случае все настолько скучно, занудно и убого, что можно смело не смотреть.