Effective Modern C++ by Scott Meyers

»If you’re an experienced C++ programmer and are anything like me, you initially approached C++11 thinking, “Yes, yes, I get it. It’s C++, only more so.” But as you learned more, you were surprised by the scope of the changes. auto declarations, range-based for loops, lambda expressions, and rvalue references change the face of C++, to say nothing of the new concurrency features. And then there are the idiomatic changes. 0 and typedefs are out, nullptr and alias declarations are in. Enums should now be scoped. Smart pointers are now preferable to built-in ones. Moving objects is normally better than copying them.«

– Effective Modern C++ by Scott Meyers

Creating WDM and driver call

A WDM driver and some application to call it (e.g. MFC)

WDM’s source.c

boost::json алдыннан экран кору өчен функциялар

BrightQnA.com

Обнаружение дедлока из шелл-скрипта

Задача: Обнаружим дедлок bash-скриптом и отдадим на выход exitcode 1.

Вос/произведем простейший дедлок, запустим ./ily.bin deadlock_off 1000000

ily.cpp:

Дедлок вычислим силами GDB – для этого подготовим следующий скрипт (futex_gdb_py), так как gdb поддерживает питон (через import gdb находим pthread_mutex_lock прямо в gdb)

команда x/3d показывает что им владеет процесс 20861
команда x/3d показывает что им владеет процесс 20860
команда thread 4 показывает что процесс 20860 ждет mutex2
команда thread 5 показывает что процесс 20861 ждет mutex1:

И, собственно сам скрипт bash, для простоты берём pid запущенного процесса по имени ily.bin:

Cortex-M3/M4 [Olimex STM32-P152] GCC + OpenOCD с PN2

Olimex STM32-P152

Среда разработки – Eclipse + GCC (исходный код G ++ Lite) / Atollic TrueSTUDIO + ST-Link/V2

(с) kenjia

Microsoft UI Automation

Каким образом програмно получить значение поля Tag из программы Pilot-BIM? Т.к. программа написана на dotNet, её GUI “подчиняется” модели автоматизации пользовательского интерфейса Microsoft.

Соответственно, берём UISpy и ищем наше поле:

Программа для запоминания ключей 部首

Программа Chi[tai]na предназначена для запоминания 214-ти китайских ключей (упрощённое письмо – chinese simplified radicals).

Программа выводит в случайном порядке четыре различных ключа, давая описание одного из них.
При нажатии на правильный ключ воспроизводится его произношение и порядок написания черт.

Скачать chitai_na_setup.msi.cab

github/chitai_na

Блеск и нищета Kubernetes: достоинства и недостатки самой популярной DevOps-технологии для Big Data систем

Сегодня, когда ИТ-компании распиливают монолиты своих Big Data систем на микросервисы, а DevOps-подход совершает свое победное шествие по локальным и облачным кластерам, Kubernetes стал, пожалуй, самой востребованной технологией 2019 года. Однако, K8s нужен далеко не каждому проекту. В этой статье мы поговорим о достоинствах и недостатках кубернетис, в каких случаях он не нужен и какие есть альтернативы этой популярной платформе управления контейнеризованными приложениями.
Плюсы Kubernetes

Кубернетис считается системой или даже платформой оркестрации контейнеров с самыми широкими функциональными возможностями [1]. С точки зрения использования K8s в Big Data системах наиболее значимы следующие преимущества Kubernetes [2]:

· автоматическая балансировка нагрузки с помощью постоянного мониторинга сведений о производительности и использовании ресурсов и соответствующее распределение работающих приложений по всему виртуальному кластеру;

· наличие API и интерфейса командной строки для ручного управления распределением контейнеров и нагрузкой между узлами системы;

· обеспечение информационной безопасности за счет механизма сетевых политик и ролевой авторизации пользователей по ключу;

· гибкая кастомизация метаданных для своих сервисов, подов и других сущностей, что весьма удобно в многокомпонентных инфраструктурах, какими часто являются Big Data системы;

· наличие средств логической изоляции приложений, команд и рабочих нагрузок в одном кластере с целью предоставления запущенным приложениям и командам минимально необходимого набора привилегий для использования ресурсов;

· поддержка распределенных и сетевых файловых систем, таких как, например, HDFS для Apache Hadoop, благодаря изначальной ориентации на кластеры Big Data;

· наличие дэшбордов — наглядных витрин с важными показателями (dashboard).
Минусы Kubernetes

При всех достоинствах K8s эта система управления контейнерными кластерами имеет следующие недостатки, которые значительно усложняют ее использование на практике [2]:

· большое число специфических понятий и взаимозависимых сущностей (под, сервис, кубелет, контроллер и т.д.);

· скудная документация, которая недостаточно подробно описывает систему;
Become a Medium member

· добавление дополнительного уровня абстракции увеличивает сложность и хрупкость системы;

· недостаток и высокая стоимость опытных специалистов, в совершенстве владеющих этой DevOps-технологией.
Когда использовать K8s

Тем не менее, Kubernetes — отличный вариант для Big Data проектов, когда требуется запускать множество контейнерных кластеров, работать с высоконагруженными сетями, а также с облачными PaaS/IaaS-решениями. Кроме того, ее широкие функциональные возможности и гибкие политики сетевой безопасности делают K8s практически идеальным инструментом для развертывания масштабируемых систем Big Data и построения надежного конвейера непрерывной интеграции и поставки приложений (CI/CD pipeline).
Альтернативы кубернетис

Итак, большой и сложный K8s не нужен при следующих условиях:

· число управляемых контейнеров невелико (до 100);

· нет желания или возможности разбираться с особенностями внутренней работы Kubernetes;

· требуется быстрый и недорогой DevOps-инструмент для обеспечения CI/CD pipeline.

Существует множество альтернатив Kubernetes: Docker Swarm, Apache Mesos, Nomad, Fleet, Aurora, Rancher, Amazon EC2 Container Service, Microsoft Azure Container Service [3]. Данные системы оркестрации контейнеров не столь масштабны, как K8s, однако они выполняют наиболее востребованные функции быстрого развертывания приложений и запуска микросервисов на виртуальных кластерах, что существенно облегчает жизнь администраторам Big Data систем и DevOps-инженерам [4]. А для чего вообще нужна оркестрация контейнеров в Big Data, а также каковы преимущества и недостатки виртуальной контейнеризации, читайте в нашей следующей статье.
Press enter or click to view image in full size
алтернативы Kubernetes, контейнеры, оркестраторы

Самые популярные системы оркестрации контейнеров

Источники

1. https://ru.wikipedia.org/wiki/Kubernetes

2. https://blog.strangeman.info/devops/docker/2016/08/21/docker-orchestration-summary.html

3. https://www.xelent.ru/blog/chto-takoe-orkestratsiya-konteynerov/

4. https://dvps.blog/minimalnoie-sravnieniie-swarm-kubernetes-mesos-nomad-rancher/

(c) bigdataschool.ru

nginx telegram webhook behind NAT (&reverse ssh tunneling)

Instead of ngrok, pinggy etc – we’ll do it using own nginx web-server and ssh-tunnel.

/etc/nginx/sites-enabled/tgbot-webhook.conf

On the Bot’s computer in our local network (behind NAT)

ST STM32L152VBT6A support in PlatformIO

OLIMEX STM32-P152 board

JRE as Eclipse plugin

eclipse.ini:

UPD:
org.eclipse.justj.openjdk.hotspot.jre.full-22.0.1-linux-x86_64.tar.gz
org.eclipse.justj.openjdk.hotspot.jre.full-22.0.1-win32-x86_64.tar.gz

Old links:
org.eclipse.justj.openjdk.hotspot.jre.full-19.0.2-linux-x86_64.tar.gz
org.eclipse.justj.openjdk.hotspot.jre.full-19.0.2-win32-x86_64.cab

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert