«Современные» обедающие философы на C++ посредством акторов и CSP |
Некоторое время назад ссылка на статью "Modern dining philosophers" распространилась по ресурсам вроде Reddit и HackerNews. Статья интересная, она показывает несколько решений этой известной задачи, реализованных на современном C++ с использованием task-based подхода. Если кто-то это статью еще не читал, то имеет смысл потратить время и прочесть ее.
Однако, не могу сказать, что представленные в статье решения мне показались простыми и понятными. Вероятно это как раз из-за использования тасков. Слишком уж их много создается и диспетчируется посредством разнообразных диспетчеров/сериализаторов. Так что не всегда понятно, где, когда и какие задачи выполняются.
При этом task-based подход не является единственным возможным для решения подобных задач. Почему бы не посмотреть, как задача "обедающих философов" решается посредством моделей Акторов и CSP?
Посему попробовал посмотреть и реализовал несколько решений этой задачи как с использованием Акторов, так и с использованием CSP. Код этих решений можно найти в репозитории на BitBucket-е. А под катом пояснения и объяснения, так что кому интересно, милости прошу под кат.
Читать дальше ->https://habr.com/ru/post/437998/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437998
Метки: C++ Open source Программирование c++14 actor model actors concurrency multithreading sobjectizer |
Чек-лист: что нужно было делать до того, как запускать микросервисы в prod |
Эта статья содержит краткую выжимку из моего собственного опыта и опыта моих коллег, с которыми мне днями и ночами доводилось разгребать инциденты. И многих инцидентов не возникло бы никогда, если бы всеми любимые микросервисы были написаны хотя бы немного аккуратнее.
К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.
Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.
Читать дальше ->https://habr.com/ru/post/438064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438064
Метки: DevOps Микросервисы microservices kubernetes docker quality of service quality control |
Настройка smart-оборудования Zyxel в автономном и «облачном» режимах |
https://habr.com/ru/post/438008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438008
Метки: Беспроводные технологии Облачные сервисы Сетевое оборудование zyxel точка доступа коммутатор nebula тестирование |
[Перевод] Эволюция переключения контекста x86 в Linux |
https://habr.com/ru/post/438042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438042
|
Шпаргалка для искусственного интеллекта — выбрось лишнее, учи главному. Техника обработки обучающих последовательностей |
https://habr.com/ru/post/433946/?utm_source=habrahabr&utm_medium=rss&utm_campaign=433946
Метки: Data Mining Алгоритмы искусственный интеллект Машинное обучение обработка изображений |
Design Patterns Зоопарк |
AnimalFactory factory = new AnimalFactory()
IAnimal elefant = new factory.getAnimal(AnimalFactory.ID_ELEFANT_TYPE)
Читать дальше -> https://habr.com/ru/post/437840/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437840
Метки: Программирование Прототипирование patterns programming patterns design patterns |
Иррациональное |
https://habr.com/ru/post/437562/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437562
Метки: мозг Читальный зал никто не уйдет обиженным мозгохранилище |
Светильник-конструктор Combo |
https://habr.com/ru/post/437930/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437930
Метки: Блог компании LampTest Гаджеты led Светильник cri led-лампы освещение тестирование обзор |
Как использовать старые IDE HDD? |
https://habr.com/ru/post/438040/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438040
Метки: Накопители резервное копирование hdd pata sata переходник адаптер внешний корпус |
3blue1brown и MIT на русском |
https://habr.com/ru/post/438036/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438036
Метки: Математика Машинное обучение Физика mit opencourseware 3blue1brown уолтер левин переводы озвучка |
Карьерные стероиды. Реальные истории |
https://habr.com/ru/post/438038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438038
Метки: Анализ и проектирование систем Карьера в IT-индустрии Управление персоналом Управление проектами карьерные стероиды |
[Из песочницы] Android, Rx и Kotlin или как заставить сжиматься клешню из Lego. Часть 1 |
|
Что почитать по PHP на русском? |
https://habr.com/ru/post/428435/?utm_source=habrahabr&utm_medium=rss&utm_campaign=428435
Метки: Блог компании Mail.ru Group php Программирование Профессиональная литература geekbrains книги по программированию обучение подборка книг |
Универсальное расширение 1С для Google Таблиц и Документов — берите и пользуйтесь |
https://habr.com/ru/post/437824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437824
Метки: Блог компании ПИК Digital IT-инфраструктура g suite google sheets google docs google drive api google cloud platform 1с |
Использование DiagnosticSource в .NET Core: практика |
В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection
и SqlCommand
и измерять время их выполнения.
В настоящее время DiagnosticSource уже используется в AspNetCore, EntityFrameworkCore, HttpClient и SqlClient — каждый из них отправляет собственные события, которые могут быть перехвачены и обработаны.
В этой статье я хочу рассмотреть несколько примеров того, как можно на практике использовать DiagnosticSource в приложениях ASP.NET Core.
Кроме того, в этой статье я решил собрать список событий, которые доступны для обработки и могут быть использованы в ваших приложениях, а также рассказать о некоторых подводных камнях, с которыми вы можете столкнуться, если решите использовать механизм DiagnosticSource в своём проекте.
Читать дальше ->https://habr.com/ru/post/221037/?utm_source=habrahabr&utm_medium=rss&utm_campaign=221037
Метки: Блог компании OZON: life in tech .net c# .net core asp.net core DiagnosticSource prometheus opentracing |
Кому эффективнее всего заниматься разводкой печатных плат? |
https://habr.com/ru/post/437850/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437850
|
Как тестируют в Автотеке: MindMap’s, статический анализ кода и MockServer |
https://habr.com/ru/post/437952/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437952
Метки: Блог компании Авито Тестирование веб-сервисов Управление разработкой тестирование авито qa qa automation qa testing |
Космическая станция Роскомнадзора |
https://habr.com/ru/post/437712/?utm_source=habrahabr&utm_medium=rss&utm_campaign=437712
|
[Перевод] Предиктивная аналитика данных — моделирование и валидация |
https://habr.com/ru/post/428321/?utm_source=habrahabr&utm_medium=rss&utm_campaign=428321
Метки: Data Mining python data science data visualization Julia octave |
RedisPipe — вместе веселее |
Когда я думаю о том, как работают наивные RPC клиенты, мне вспоминается анекдот:
Суд.
— Подсудимый, за что вы убили женщину?
— Еду я в автобусе, подходит кондуктор к женщине, с требованием купить билет. Женщина открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, достала кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку, открыла кошелек, достала деньги, открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, положила туда кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку.
— И что?
— Контролер ей дал билет. Женщина открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, достала кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку, открыла кошелек, положила туда билет, закрыла кошелек, открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, положила туда кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку.
«Возьмите сдачу», раздался голос контролера. Женщина… открыла сумочку…
— Да убить её мало, — не выдерживает прокурор.
— Так я это и сделал.
https://habr.com/ru/post/438026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438026
Метки: Блог компании Joom Go Open source Высокая производительность Программирование Redis pipeline |