Павел Остапенко @mt_
User
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Chief Technology Officer (CTO)
Optimization of business processes
Development management
Mentoring
FullStack
Agile
Возможно, вам имеет смысл с ними договориться объединить (с дублированием, например) ваши системы.
Мы не в детском саду собрались.
Есть «правила игры».
Есть протоколы УИК, которые подписываются ВСЕМИ участниками комиссии и копии которых есть у всех участников УИК. Эти протоколы передаются наверх и суммируются.
Всё что нужно сделать гражданам — это просуммировать данные с копий протоколов УИК самостоятельно.
Всего таких протоколов будет порядка 100 тысяч.
Просуммировав, можно будет понять, на каком этапе произошла фальсификация и кто несёт за неё ответственность. Можно будет выяснить реальные цифры проголосовавших. В общем, можно будет выдавать данные параллельно (а может даже и раньше) с тем, как их посчитает центризбирком.
И ничего тут волшебного нет. Надо просто оторвать задницу от стула и принять участие в открытом, гражданском расчёте голосов.
А не визжать о «волшебнике Чурове» и его отставке.
Потому что если человек ответственен за фальсификации, то его надо судить по закону РФ. А если он перед законом чист, то оставить на своём месте. В любом случае, надо помнить, что в демократическом обществе существуют не только законы, но и презумпция невиновности.
Обязательно расскажу о программе всем знакомым ребятам-наблюдателям.
Вот ссылка на описание. Посмотрите, пожалуйста, это ли Вы имели в виду, или нет.
Здесь мы говорим конкретно о коде на С++, а не о процессах. Поэтому я также уточняю конкретные требования к декомпозиции задачи на классы, а также уточняю обмена абстрактными сообщениями до передачи колбэков с копированием параметров (простым или разрушающим).
В комментариях мне написали, что я не единственный, кто изобретал этот велосипед. Параллельно со мной этим занимались как крупные компании вроде Интел, так и другие команды исследователей. Всего есть как минимум несколько библиотек, которые решают сходные задачи, но со своими особенностями.
Однако, не могу согласиться с ней применительно к U++. Вы можете ознакомиться с другими примерами с сайта и, возможно, придёте к выводу, что U++ не только более выразителен и лаконичен, но и вполне себе расширяем. Что касается эффективности, то и здесь есть чему на что посмотреть.
Тем, что из моей статьи не следует явного призыва пользоваться готовым решением для моделей потоков с очередями? И что некоторые сделают вывод, что её лучше сделать самому?
В защиту лишь могу сказать, что с моей точки зрения основную ценность статьи представляет собой не реализация передачи сообщений (о которой было сказано не так много), а тот факт, что я поставил на повестку дня использование иных моделей, кроме shared memory. Я постарался показать, как при этом, добавив определённые ограничения на код, избавиться от объектов синхронизации.
В этом смысле, для человека, профессионально разбирающегося в вопросе, статья интереса не представляет. Скорее, я проблематизирую «конвейерный» (communicating sequential processes) подход для тех, кто не знает что это такое либо не представляет его потенциальные плюсы. Причём пишу с позиции примерно пяти лет практического использования в production, то есть некоторого понимания плюсов и минусов. То что получилось, действительно вдохновило меня рассказать об этом людям, именно с точки зрения практики. Потому что, всё-таки, ещё одна заумная статья на тему теории массового обслуживания, применённой к работе потоков, вряд ли кому-то здесь была интересна.
Насчёт «тут же появились» можно поспорить — нижний порог радаров (порядка десятков метров) имеет под собой определённые основания.
И насчёт конкурентов — тоже спорно, учитывая что очень многие хотят, но не могут.
Вот скажем, например, как сделали системы с разделяющимися боеголовками, так вот уже несколько десятков лет эффективного симметричного ответа не существует.
Предлагаю замять для ясности и просто порадоваться тому, что такое уникальное и красивое «чудище морское» было сделано нашими с Вами отцами первыми в мире.
— Что помешало, если не секрет? Старался разбавить статью картинками и не слишком усложнять (хотя было желание ввести теорию).
По поводу транспортного средства. Это экраноплан. Придуманные в первые десятилетия существования СССР (как и многие другие уникальные изобретения, вроде атомной электростанции или гироскопического шаропоезда), они могли развивать скорость в сотни километров час и двигаться над водой при волнении до 3 баллов (некоторые — больше). Фактически уничтоженная из-за предательства советской партийной элиты, индустрия экранопланов могла бы не только спасти большое число жизней, но и обеспечить полное доминирование нашей страны на морях. Насколько я знаю, до сих пор не существует тактических средств не то что уничтожения экранопланов, но и даже адекватного определения местонахождения.
Сейчас фирмы вроде Боинг делают определённые робкие шаги в направлении экранопланов, так что заработанный «на излёте», в 70-е годы, приоритет, тает.
Данный экраноплан был назван на Западе «Каспийским монстром» за свои размеры, мощь, скорость и манёвренность. При невероятных для мореплавания скоростях, экранопланы исключительно безопасны и стабильны при передвижении.
Именно оттуда я и взял ассоциацию с названием статьи.
С моей точки зрения, предложенный в статье подход более прост, менее перегружен синтаксисом, и что важнее всего — свободен от проблем взаимного ожидания.
Конечно, там есть свои проблемы, но они уже скорее «логического» порядка, не приводящие к «падению» и зависанию.
Что касается таких вещей как кэш, то, в общем случае, это одна из тех задач, где классическая синхронизация подходит куда лучше очередей.
Поскольку библиотека является частью фреймворка U++, на неё распространяется лицензия BSD.
Тут вопрос немного в другой идеологии. В моём случае, очередь присутствует внутри класса-потока и явным образом нигде не фигурирует. Пользователь может лишь «запросить» у объекта-потока определённый его колбэк. Объектная мизонтропия, организованное взаимное недоверие, инкапсуляция, возведённая в жёсткое правило.
В этом смысле, Queue — питоновский аналог очереди в объекте-потоке. Кроме того, в случае С++ в очередь кладутся строго «облегчённые» колбэки с аргументами, что позволяет говорить об определённом уровне эффективности.
Повторюсь, идеологически то что Вы привели — очень близко, да.