👍5❤2
ImHex
🔍 Hex-редактор для реверс-инженеров, программистов и людей, которые ценят свое зрение, когда работают ночью.
https://github.com/WerWolv/ImHex
#github@bookflow
👉 @Bookflow
🔍 Hex-редактор для реверс-инженеров, программистов и людей, которые ценят свое зрение, когда работают ночью.
https://github.com/WerWolv/ImHex
#github@bookflow
👉 @Bookflow
👍8
Go-like каналы на C++
Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылаться на "Go-style channels", т.к. на мой взгляд, важная особенность каналов в языке GO – это возможность их мультиплексировать.
Реализации каналов на языке C++, конечно же, есть, например, в библиотеке boost::fibers, можно найти реализацию двух видов каналов. В документации boost::fibers можно найти описания способов мультиплексирования, правда не самих каналов, но и к ним можно применить подобную технику.
https://habr.com/ru/articles/805561/
#cpp@bookflow
👉 @Bookflow
Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылаться на "Go-style channels", т.к. на мой взгляд, важная особенность каналов в языке GO – это возможность их мультиплексировать.
Реализации каналов на языке C++, конечно же, есть, например, в библиотеке boost::fibers, можно найти реализацию двух видов каналов. В документации boost::fibers можно найти описания способов мультиплексирования, правда не самих каналов, но и к ним можно применить подобную технику.
https://habr.com/ru/articles/805561/
#cpp@bookflow
👉 @Bookflow
❤3👍2🌭1
Коллекция советов по программированию на Python, в основном это касается Matplotlib.
#python@bookflow
👉 @Bookflow
#python@bookflow
👉 @Bookflow
👍3🔥3
Инструментарий инженера DevOps 🧰🎒
Операционная система → Linux (recommended), Windows
Программирование → Go, Python, Groovy, Bash
Container orchestration → Kubernetes, Docker Swarm
Containers → Docker, Podman, Containerd
Source Code Management → Git, Subversion
Cloud → AWS, GCP, Azure, CivoCloud
CI/CD → Jenkins, CircleCI, Bamboo
Хостинг IT-проектов → GitHub, BitBucket, GitLab
IaC (Infrastructure as Code) and IP (Infrastructure Provisioning) → Ansible, Puppet, Chef, Terraform, Pulumi, Stack, Crossplane
Непрерывная обратная связь → GetFeedback, Jira, Slack, Pendo
Обсервация (мониторинг, протоколирование и анализ поведения системы) → Nagios, Grafana , Prometheus, New Relic, ELK Stack Datadog
Планирование → Jira Software, Confluence, Slack
Автоматизированное тестирование → xray, snyk, JUnit, Selenium, Appium
Вы можете выбрать любой из этих инструментов для каждого этапа/категории. Ваш выбор может быть основан на вашем проекте или организации, а может быть полностью личным.
#devops@bookflow
👉 @Bookflow
Операционная система → Linux (recommended), Windows
Программирование → Go, Python, Groovy, Bash
Container orchestration → Kubernetes, Docker Swarm
Containers → Docker, Podman, Containerd
Source Code Management → Git, Subversion
Cloud → AWS, GCP, Azure, CivoCloud
CI/CD → Jenkins, CircleCI, Bamboo
Хостинг IT-проектов → GitHub, BitBucket, GitLab
IaC (Infrastructure as Code) and IP (Infrastructure Provisioning) → Ansible, Puppet, Chef, Terraform, Pulumi, Stack, Crossplane
Непрерывная обратная связь → GetFeedback, Jira, Slack, Pendo
Обсервация (мониторинг, протоколирование и анализ поведения системы) → Nagios, Grafana , Prometheus, New Relic, ELK Stack Datadog
Планирование → Jira Software, Confluence, Slack
Автоматизированное тестирование → xray, snyk, JUnit, Selenium, Appium
Вы можете выбрать любой из этих инструментов для каждого этапа/категории. Ваш выбор может быть основан на вашем проекте или организации, а может быть полностью личным.
#devops@bookflow
👉 @Bookflow
👍4
Советы по Django
'null' vs. 'blank'
В моделях Django 'null' влияет на хранение данных в базе, позволяя полям хранить значения 'NULL'.
'blank' влияет на валидацию форм, разрешая пустые значения в формах.
#python@bookflow
👉 @Bookflow
'null' vs. 'blank'
В моделях Django 'null' влияет на хранение данных в базе, позволяя полям хранить значения 'NULL'.
'blank' влияет на валидацию форм, разрешая пустые значения в формах.
#python@bookflow
👉 @Bookflow
👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
DeepCamera
Камера с искусственным интеллектом с открытым исходным кодом. Наделите любую камеру/CCTV самыми современными функциями искусственного интеллекта, включая распознавание лиц, распознавание людей (RE-ID), обнаружение автомобилей, обнаружение падений и многое другое.
https://github.com/SharpAI/DeepCamera
#github@bookflow
👉 @Bookflow
Камера с искусственным интеллектом с открытым исходным кодом. Наделите любую камеру/CCTV самыми современными функциями искусственного интеллекта, включая распознавание лиц, распознавание людей (RE-ID), обнаружение автомобилей, обнаружение падений и многое другое.
https://github.com/SharpAI/DeepCamera
#github@bookflow
👉 @Bookflow
👍5
Что такое Uniform initialization? Aggregate initialization?
Uniform initialization, введенная в C++11, позволяет использовать единый синтаксис для инициализации переменных и объектов, начиная от примитивных типов до агрегатов¹. Другими словами, она вводит инициализацию скобками, которая использует фигурные скобки {} для заключения значений инициализатора. Синтаксис выглядит следующим образом:
Aggregate initialization - это форма инициализации списком для массивов или типов класса (часто структур или объединений), которые имеют: нет приватных или защищенных членов, нет пользовательских конструкторов, кроме явно заданных или удаленных конструкторов . Это позволяет напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми.
Например, если у вас есть структура с несколькими членами:
Когда мы определяем объект с типом структуры, нам нужен способ инициализации нескольких членов во время инициализации:
Агрегаты используют форму инициализации, называемую агрегатной инициализацией, которая позволяет нам напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми. Так же как обычные переменные могут быть скопированы, напрямую инициализированы или списком инициализированы, есть 3 формы агрегатной инициализации.
#cpp@bookflow
👉 @Bookflow
Uniform initialization, введенная в C++11, позволяет использовать единый синтаксис для инициализации переменных и объектов, начиная от примитивных типов до агрегатов¹. Другими словами, она вводит инициализацию скобками, которая использует фигурные скобки {} для заключения значений инициализатора. Синтаксис выглядит следующим образом:
type var_name {arg1, arg2, ....arg n}.Aggregate initialization - это форма инициализации списком для массивов или типов класса (часто структур или объединений), которые имеют: нет приватных или защищенных членов, нет пользовательских конструкторов, кроме явно заданных или удаленных конструкторов . Это позволяет напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми.
Например, если у вас есть структура с несколькими членами:
struct Employee {
int id {};
int age {};
double wage {};
};Когда мы определяем объект с типом структуры, нам нужен способ инициализации нескольких членов во время инициализации:
Employee joe; // как мы инициализируем joe.id, joe.age и joe.wage?Агрегаты используют форму инициализации, называемую агрегатной инициализацией, которая позволяет нам напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми. Так же как обычные переменные могут быть скопированы, напрямую инициализированы или списком инициализированы, есть 3 формы агрегатной инициализации.
#cpp@bookflow
👉 @Bookflow
👍4❤3