Вопрос по примеру из раздела Transaction Script, если возникнет необходимость написать утилиту командной строки с авторизацией, будете использовать эти же скрипты? Как выглядят тесты для проверки этих скриптов? К какому типу тестов они относятся?
С ноября месяца не получается залогиниться на Google Chrome на Ubuntu. Что-то поломалось у вас там. На FireFox есть поставить на паузу через некоторое время все замораживается и падает. Майнингом занимаетесь?
Как-нибудь посмотрю. Сейчас проблема решилась перезагрузкой станции, отключил/включил питание. Подсказали в поддержке компании.
Интересует такой вопрос: у нас в деревне зимой дровами топят утром и вечером, иногда ветер дует в мою сторону, можете посоветовать какой-нибудь датчик, который бы распознавал дым, и подавал сообщение, чтобы закрыть заслонку бризера?
У нас в деревне зимой дровами топят утром и вечером, иногда ветер дует в мою сторону, посоветуете какой-нибудь датчик, который бы распознавал дым, и подавал сообщение, чтобы закрыть заслонку бризера?
Сегодня утром просыпаюсь, смотрю, на станции контроля AirNanny A7 на дисплее перестала показываться информация о концентрации C02, иногда моргает и показывает, и еще иногда показывает ошибку E-10. Захожу на хабр, вижу эту статью. Вы сговорились!!!
Способ с шиной сообщений и редиса. Событийно-ориентированный.
Посылаем команду на запуск процесса по шине. Обработчик принимает команду, проверяет в редисе в соответствующем set или hash контейнере эту команду, если ее в наборе нет, то добавляет ее в набор и стартует процесс, сообщает пользователю о старте процесса. Процесс заканчивается, убирает в редисе из набора команду, сообщает пользователю. Если в наборе уже есть команда, то значит процесс уже выполняется, тогда обработчик получает информацию из этого hash-контейнера и отправляет отлуп пользователю.
Создаем журнал для фиксации запросов. В журнал добавляем числовое уникальное ненулевое поле "номер версии" для блокировки создания записи с одинаковым номером версии, поле для статуса операции [started, success, failed] и другие поля, например, время старта, время окончания операции. При добавлении записи в журнал сначала проверяем, не ли уже запущенной такой-же операции, если нет, то находим последнюю запись и номер версии, увеличиваем номер версии на единицу, добавляем запись в новым номером версии в журнал. Если паралельно пришло несколько запросов с таким-же номером, то, естественно, сможет добавиться только один, на остальных поднимется исключение. Если запись добавилась, то в эту запись пишем статус "started", время начала операции и т.д., запускаем нужный процесс, отдаем пользователю ответ, что операция стартовала при необходимости. Если запись не добавилась, поднялось исключение, то выполняем запрос для получения информации из записи с таким-же номером версии, отдаем пользователю, что операция уже выполняется. По-окончании операции изменяем статус операции, устанавливаем время окончания операции и т.д.
Долго жить будешь! Там в 77 году появились Б3-21 - не для детей. PS. У меня не было этих МК, цены были просто какими-то космическими, но разобрался как программировать Б3-34 по статье в ТМ. Когда увидел MK61 в 90 году в магазине, мог бы купить и на стипендию. Но уже было не актуально, имел доступ к двум настоящим IBM PC/XT.
ЦА статьи - готовящиеся к тех собеседованию, или проходящие его. Курсы и учебники для начинающих нужно уметь писать. Нужно уметь создавать иллюзию у начинающих, что за 2-3 месяца умственных усилий у них будет зарплата в 120.
Ни кого не возникает неопредолимого желания написать подобное на C++, на любом стандарте?
C++ в хабах - для привлечения внимания?
Вопрос по примеру из раздела Transaction Script, если возникнет необходимость написать утилиту командной строки с авторизацией, будете использовать эти же скрипты?
Как выглядят тесты для проверки этих скриптов? К какому типу тестов они относятся?
Надо просто взять и переписать все модули ядра на C++.
baderouaich/the-zero-overhead-principle: Little demonstration of the Zero Overhead principle.
Working with Money in Postgres
https://www.crunchydata.com/blog/working-with-money-in-postgres
Storing currency values: data types, caveats, best practices
https://cardinalby.github.io/blog/post/best-practices/storing-currency-values-data-types/
еще ядерный реактор
С ноября месяца не получается залогиниться на Google Chrome на Ubuntu. Что-то поломалось у вас там.
На FireFox есть поставить на паузу через некоторое время все замораживается и падает. Майнингом занимаетесь?
Спасибо! И Вашему тоже!
Как-нибудь посмотрю. Сейчас проблема решилась перезагрузкой станции, отключил/включил питание. Подсказали в поддержке компании.
Интересует такой вопрос: у нас в деревне зимой дровами топят утром и вечером, иногда ветер дует в мою сторону, можете посоветовать какой-нибудь датчик, который бы распознавал дым, и подавал сообщение, чтобы закрыть заслонку бризера?
У нас в деревне зимой дровами топят утром и вечером, иногда ветер дует в мою сторону, посоветуете какой-нибудь датчик, который бы распознавал дым, и подавал сообщение, чтобы закрыть заслонку бризера?
Сегодня утром просыпаюсь, смотрю, на станции контроля AirNanny A7 на дисплее перестала показываться информация о концентрации C02, иногда моргает и показывает, и еще иногда показывает ошибку E-10.
Захожу на хабр, вижу эту статью.
Вы сговорились!!!
Способ с шиной сообщений и редиса. Событийно-ориентированный.
Посылаем команду на запуск процесса по шине. Обработчик принимает команду, проверяет в редисе в соответствующем set или hash контейнере эту команду, если ее в наборе нет, то добавляет ее в набор и стартует процесс, сообщает пользователю о старте процесса. Процесс заканчивается, убирает в редисе из набора команду, сообщает пользователю.
Если в наборе уже есть команда, то значит процесс уже выполняется, тогда обработчик получает информацию из этого hash-контейнера и отправляет отлуп пользователю.
Способ с номерами версий.
Создаем журнал для фиксации запросов. В журнал добавляем числовое уникальное ненулевое поле "номер версии" для блокировки создания записи с одинаковым номером версии, поле для статуса операции [started, success, failed] и другие поля, например, время старта, время окончания операции.
При добавлении записи в журнал сначала проверяем, не ли уже запущенной такой-же операции, если нет, то находим последнюю запись и номер версии, увеличиваем номер версии на единицу, добавляем запись в новым номером версии в журнал. Если паралельно пришло несколько запросов с таким-же номером, то, естественно, сможет добавиться только один, на остальных поднимется исключение.
Если запись добавилась, то в эту запись пишем статус "started", время начала операции и т.д., запускаем нужный процесс, отдаем пользователю ответ, что операция стартовала при необходимости.
Если запись не добавилась, поднялось исключение, то выполняем запрос для получения информации из записи с таким-же номером версии, отдаем пользователю, что операция уже выполняется.
По-окончании операции изменяем статус операции, устанавливаем время окончания операции и т.д.
Более подробно об этом способе здесь:
https://github.com/cosmicpython/book/blob/master/chapter_07_aggregate.asciidoc
Мопед на калькулятор! Понимает толк в наслаждениях!!!
Долго жить будешь! Там в 77 году появились Б3-21 - не для детей.
PS. У меня не было этих МК, цены были просто какими-то космическими, но разобрался как программировать Б3-34 по статье в ТМ. Когда увидел MK61 в 90 году в магазине, мог бы купить и на стипендию. Но уже было не актуально, имел доступ к двум настоящим IBM PC/XT.
Не плавали! Не плавали вы на наших галерах!!
только-только собирался вернуться в C++ с познаниями в "чистой архитектуре" полученными в разработке на Python
ЦА статьи - готовящиеся к тех собеседованию, или проходящие его.
Курсы и учебники для начинающих нужно уметь писать. Нужно уметь создавать иллюзию у начинающих, что за 2-3 месяца умственных усилий у них будет зарплата в 120.
окинул взглядом... может, ну его нафиг, в С++ вернуться...
По теме статьи, последние главы этой книги.
https://github.com/nomhoi/cosmicpython-fastapi
Завершил вчера рефакторинг, полностью асинхронный вариант.
Ну, сам учет - это проблемная область. А формочки - это где-то в периферийной части архитектуры.