This document discusses using Docker containers to build embedded apps from QtCreator more efficiently. It presents three solutions: 1) using virtual machines which is currently done but slow, 2) building apps in Docker containers on the local workstation which is faster, and 3) building apps in containers on remote workstations. The document then provides steps for setting up a development environment using Docker to build an app in QtCreator, including installing a Qt SDK in a container, configuring QtCreator, building the app using a Docker wrapper for CMake, and running the app on a Raspberry Pi device.
Build and run embedded apps faster from qt creator with dockerQt
This document discusses using Docker containers to build and run embedded Qt applications from QtCreator more efficiently. It proposes wrapping CMake calls in a Docker script to build apps in containers on the local workstation instead of virtual machines. The key steps are installing a Qt SDK in a container, configuring QtCreator kits to use the Docker wrapper script for builds, and setting up deployment to run the built apps on target devices via SSH. This allows reusing existing container builds on a powerful workstation for faster development compared to building each app version's SDK in a separate virtual machine.
At Qt Day 2019 in Florence, Italy, I gave a presentation about "Using Qt under LGPLv3".
In the first part, I go through Section "4. Combined Works" and explain the obligations of LGPLv3 in detail.
When you combine your application with the Qt libraries, you can keep closed the source code of the application and publish the application and the Qt libraries under your license terms. You must satisfy the following conditions.
On a physical medium like a USB drive or DVD, you must provide the source code of the Qt libraries, the text of the LGPLv3 and GPLv3, the Copyright notices of the Qt libraries, a description of your modification of the Qt libraries and the installation information. If your application has a user interface, you must display the license texts of the LGPLv3 and GPLv3 and the Copyright notices in this user interface.
The installation information - a.k.a. the anti-tivoisation clause - describes how the user can build a modified version of Qt, how to install this version on the device, and how to run the application with the modified Qt version on the device. If you build a B2B product, you need not provide the installation information.
In the second part, I compare the costs of Qt Commercial and Qt LGPLv3. You must check the licenses for all packages of the (embedded) Linux system, no matter whether you use Qt Commercial or Qt LGPLv3. Qt commercial adds per-developer fees and per-unit fees (royalties). If you use Boot2Qt, Qt for Automation, Qt Safe Renderer or other commercial add-ons, Qt Commercial may well be worth the additional costs.
In the third part, I show how Yocto (bitbake) and Fossology help with the compliance checks. Fossology is a license and copyright scanner.
Hexagonal Architecture: The Standard for Qt Embedded ApplicationsBurkhard Stubert
This document discusses the hexagonal architecture pattern for Qt embedded HMIs. It begins with an introduction to ports-and-adapters architecture, then discusses using this pattern to create machine, business logic, and GUI components with different adapters for products, simulators, and tests. It explains how to create these components, connect them, and configure the overall application to be highly modular, testable and maintainable. Benefits of this hexagonal architecture include high testability, modularity, and maintainability, though it does add some complexity. Resources for further information are provided.
These are the slides to my talk "A Deep Dive into QtCanBus" from Qt World Summit 2019. I show how to build the middleware between the CAN bus and the QML HMI.
It's 2021 and containerization has been happening for 7 years already.
In the Java space, there are several ways to package a Java application as a Docker image.
Let's discover them from the Dockerfile to the CNCF Buildpacks, mentioning the Jib way too!
BuildKit is a next-generation build system that provides efficient caching, multi-stage builds, and secure access to private assets without requiring root privileges. It can be deployed on Kubernetes using a DaemonSet or StatefulSet for caching benefits. Build definitions can be provided via Dockerfiles, Buildpacks, or CRDs like Tekton to build images on Kube nodes and push to a remote registry. Consistent hashing with StatefulSets ensures builds always hit the fastest daemon-local cache.
Build and run embedded apps faster from qt creator with dockerQt
This document discusses using Docker containers to build and run embedded Qt applications from QtCreator more efficiently. It proposes wrapping CMake calls in a Docker script to build apps in containers on the local workstation instead of virtual machines. The key steps are installing a Qt SDK in a container, configuring QtCreator kits to use the Docker wrapper script for builds, and setting up deployment to run the built apps on target devices via SSH. This allows reusing existing container builds on a powerful workstation for faster development compared to building each app version's SDK in a separate virtual machine.
At Qt Day 2019 in Florence, Italy, I gave a presentation about "Using Qt under LGPLv3".
In the first part, I go through Section "4. Combined Works" and explain the obligations of LGPLv3 in detail.
When you combine your application with the Qt libraries, you can keep closed the source code of the application and publish the application and the Qt libraries under your license terms. You must satisfy the following conditions.
On a physical medium like a USB drive or DVD, you must provide the source code of the Qt libraries, the text of the LGPLv3 and GPLv3, the Copyright notices of the Qt libraries, a description of your modification of the Qt libraries and the installation information. If your application has a user interface, you must display the license texts of the LGPLv3 and GPLv3 and the Copyright notices in this user interface.
The installation information - a.k.a. the anti-tivoisation clause - describes how the user can build a modified version of Qt, how to install this version on the device, and how to run the application with the modified Qt version on the device. If you build a B2B product, you need not provide the installation information.
In the second part, I compare the costs of Qt Commercial and Qt LGPLv3. You must check the licenses for all packages of the (embedded) Linux system, no matter whether you use Qt Commercial or Qt LGPLv3. Qt commercial adds per-developer fees and per-unit fees (royalties). If you use Boot2Qt, Qt for Automation, Qt Safe Renderer or other commercial add-ons, Qt Commercial may well be worth the additional costs.
In the third part, I show how Yocto (bitbake) and Fossology help with the compliance checks. Fossology is a license and copyright scanner.
Hexagonal Architecture: The Standard for Qt Embedded ApplicationsBurkhard Stubert
This document discusses the hexagonal architecture pattern for Qt embedded HMIs. It begins with an introduction to ports-and-adapters architecture, then discusses using this pattern to create machine, business logic, and GUI components with different adapters for products, simulators, and tests. It explains how to create these components, connect them, and configure the overall application to be highly modular, testable and maintainable. Benefits of this hexagonal architecture include high testability, modularity, and maintainability, though it does add some complexity. Resources for further information are provided.
These are the slides to my talk "A Deep Dive into QtCanBus" from Qt World Summit 2019. I show how to build the middleware between the CAN bus and the QML HMI.
It's 2021 and containerization has been happening for 7 years already.
In the Java space, there are several ways to package a Java application as a Docker image.
Let's discover them from the Dockerfile to the CNCF Buildpacks, mentioning the Jib way too!
BuildKit is a next-generation build system that provides efficient caching, multi-stage builds, and secure access to private assets without requiring root privileges. It can be deployed on Kubernetes using a DaemonSet or StatefulSet for caching benefits. Build definitions can be provided via Dockerfiles, Buildpacks, or CRDs like Tekton to build images on Kube nodes and push to a remote registry. Consistent hashing with StatefulSets ensures builds always hit the fastest daemon-local cache.
This document provides an overview of OpenStack, an open source cloud computing platform. It begins with background on OpenStack's history and community. It then discusses the key OpenStack projects including Compute (Nova), Object Storage (Swift), Image Service (Glance), Identity (Keystone), Block Storage (Cinder), and Networking (Quantum). It explains the architecture and communication between the different OpenStack components. Finally, it covers the networking options in OpenStack including Flat, Flat DHCP, and VLAN modes.
Robert Barr presents on Kubernetes for Java developers. He discusses Quarkus, Micronaut and Spring Boot frameworks for building cloud-native Java applications. He provides an overview of Docker and how it can package applications. Barr then explains why Kubernetes is useful for orchestrating containers at scale, describing its architecture and key concepts like pods, deployments and services. He demonstrates running a sample application on Kubernetes and integrating with its Java client.
Kawabe deployed Calico networking incorrectly, which caused BGP peering to go down on nodes and most pods to be evicted from the master node. This was due to the Calico IPAM component exploding in size and consuming all disk space on the etcd volume. Kawabe resolved this by deploying the Calico controllers, fixing the node role bindings, and enabling garbage collection of unused IP addresses. Monitoring was also updated to track etcd size and object counts.
Tutorial slides about how to set up your own wireless sensor network testbed using SmartSantander/WISEBED technologies. Held at the Senzations Summer School in Palic, Serbia 2013.
Tutorial slides about how to run interactive node-level experiment on the wireless sensor network SmartSantander/WISEBED experimental facility. Held at the Senzations Summer School in Palic, Serbia 2013.
This document provides an overview of the Wiselib, an open-source C++ template library for programming heterogeneous Internet of Things (IoT) platforms. The Wiselib allows for writing portable code that can compile and run on various hardware platforms. It includes reusable implementations of common algorithms, abstracts away differences in operating systems, and provides platform-independent data structures and utility functions. The document outlines key aspects of the Wiselib like its architecture, usage scenarios, callback mechanism, message serialization, and supported programming environments.
The document discusses experimentation on the WISEBED wireless sensor network testbed platform. It provides an overview of the goals and agenda for a tutorial on using the WISEBED testbed to run and script experiments. The tutorial covers the WISEBED application programming interfaces, client applications, and how to reserve nodes, monitor experiments, and interact with nodes on the testbed.
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
This document discusses the benefits of contributing device drivers and other code to the Linux kernel upstream first instead of maintaining private branches. It outlines Chrome OS's strategy of picking long-term stable kernels and contributing hardware support to upstream. While challenging, working upstream provides many benefits like free code reviews, bugfixes, and easier updates. The document shows that Chrome OS contributions have helped increase upstream support for vendors' devices and that there is still work remaining to upstream GPU and other drivers. It demos mainlining the Samsung Chromebook Plus by using the open source Panfrost GPU driver instead of a vendor driver.
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...AMD Developer Central
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compiler Developers, by Yaxun Liu from the AMD Developer Summit (APU13) November 11-13, 2013.
The document provides instructions for building and setting up Android 5.0.2 on the Zedboard. It describes compiling the first stage bootloader (FSBL) and U-Boot, the Linux kernel, and the Android system image. It also explains how to create a bootable SD card with the required files and how to configure the hardware switches and ports on the Zedboard. Following these steps will result in a fully booted Android 5.0.2 system on the Zedboard.
Reaching the multimedia web from embedded platforms with WPEWebkitIgalia
Nowadays the Web is one of the primary ways for multimedia content consumption
and real-time communication (through WebRTC). During this talk Philippe will
present the WPEWebKit web-engine that has been deployed on a wide range of
embedded platforms and how you can add it to your own Linux-based embedded
device. WPEWebKit is the official WebKit upstream port for embedded platforms.
For multimedia playback and real-time communication it heavily relies on the
GStreamer multimedia framework. Philippe will give an overview of the W3C
specifications supported by WPEWebKit. WPEWebKit products have been deployed in
various embedded environments and hardware platforms. Philippe will focus on
i.MX platforms, outlining the steps required to enable WPEWebKit in Yocto-based
BSPs. WPEWebKit can also be used in server-side innovative ways, such as
dynamic HTML/JS/CSS powered video overlaying. Philippe will present this
use-case, detailing how live video streams can be augmented with overlays.
GstWPE is a GStreamer plugin embedding a WPEWebKit WebView, allowing to inject
a live audio/video representation of any Web page into a GStreamer pipeline.
Both GPU-based hardware-accelerated and software rasterisers runtimes are
supported.
(c) Embedded Linux Conference - North America (ELC-NA 2021)
September 27-30, 2021
Hyatt Regency Seattle | Seattle, Washington + Virtual
https://events.linuxfoundation.org/embedded-linux-conference-north-america/
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
This talk starts with an overview of ailia SDK, then introduces optimization techniques for inferring neural networks at high speed in Arm environments. Based on our research for developing ailia SDK, we introduce the optimization for Arm CPU using NEON SIMD instructions and various optimal compute shader implementations for Arm Mali using Vulkan. In addition, we demonstrate how various machine learning models actually operate at high speed in Arm environments.
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
This presentation will introduce you to Docker - the new shiny star on the Devops horizon. It will teach you everything you need to know to get started with Docker, why you'd want to use it and which tools to use to get the most out of it. Additionally to showing the basics, it will introduce helpful libraries available for the JVM and how they can be used together with Docker to create secure, scalable and maintainable cloud setups for your applications.
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Igalia
By Philippe Normand.
This talk is about multimedia support in the WPE and GTK+ WebKit ports. I will give a status update about the HTML5 features currently supported by our GStreamer backend, such as WebRTC, MSE, MediaCapabilities support. The talk would also include a brief case study about using WPE and its Cog browser on IMX6 platforms.
(c) GStreamer Conference 2018
CC-BY-SA 3.0
https://gstreamer.freedesktop.org/conference/2018/
https://gstconf.ubicast.tv/videos/multimedia-support-in-webkitgtk-and-wpe-current-status-and-plans/
This document discusses programming IoT devices with Docker. It begins with an overview of IoT and Docker, defining IoT as connecting devices over the internet and Docker as a platform for developing and running containerized applications. It then provides examples of programming IoT boards, sensors and gateways using Docker containers, including with Johnny-Five for Node.js, ESP32, Apache MyNewt, and building custom images. It emphasizes that Docker allows building once and running anywhere through isolated, portable containers.
Bartosz Tkaczewski - Przygód z Dockerem ciąg dalszy
http://www.tsh.io
Docker jest zauważalny już niemal wszędzie. Na prezentacji zobaczysz działające środowisko developerskie, poznasz kilka sztuczek, jak sobie z nim dobrze radzić i efektywnie pracować, zobaczysz też, jak szybko można prosty projekt wzbogacić o zaawansowane stacki aplikacji (na przykładzie ELK). Postaram się również opowiedzieć, jak można sobie z tym potworkiem poradzić na produkcji.
Prezentacja z Uszanowanka Programowanka #16 - http://www.meetup.com/Uszanowanko-Programowanko/events/234826115/
This document provides an overview of OpenStack, an open source cloud computing platform. It begins with background on OpenStack's history and community. It then discusses the key OpenStack projects including Compute (Nova), Object Storage (Swift), Image Service (Glance), Identity (Keystone), Block Storage (Cinder), and Networking (Quantum). It explains the architecture and communication between the different OpenStack components. Finally, it covers the networking options in OpenStack including Flat, Flat DHCP, and VLAN modes.
Robert Barr presents on Kubernetes for Java developers. He discusses Quarkus, Micronaut and Spring Boot frameworks for building cloud-native Java applications. He provides an overview of Docker and how it can package applications. Barr then explains why Kubernetes is useful for orchestrating containers at scale, describing its architecture and key concepts like pods, deployments and services. He demonstrates running a sample application on Kubernetes and integrating with its Java client.
Kawabe deployed Calico networking incorrectly, which caused BGP peering to go down on nodes and most pods to be evicted from the master node. This was due to the Calico IPAM component exploding in size and consuming all disk space on the etcd volume. Kawabe resolved this by deploying the Calico controllers, fixing the node role bindings, and enabling garbage collection of unused IP addresses. Monitoring was also updated to track etcd size and object counts.
Tutorial slides about how to set up your own wireless sensor network testbed using SmartSantander/WISEBED technologies. Held at the Senzations Summer School in Palic, Serbia 2013.
Tutorial slides about how to run interactive node-level experiment on the wireless sensor network SmartSantander/WISEBED experimental facility. Held at the Senzations Summer School in Palic, Serbia 2013.
This document provides an overview of the Wiselib, an open-source C++ template library for programming heterogeneous Internet of Things (IoT) platforms. The Wiselib allows for writing portable code that can compile and run on various hardware platforms. It includes reusable implementations of common algorithms, abstracts away differences in operating systems, and provides platform-independent data structures and utility functions. The document outlines key aspects of the Wiselib like its architecture, usage scenarios, callback mechanism, message serialization, and supported programming environments.
The document discusses experimentation on the WISEBED wireless sensor network testbed platform. It provides an overview of the goals and agenda for a tutorial on using the WISEBED testbed to run and script experiments. The tutorial covers the WISEBED application programming interfaces, client applications, and how to reserve nodes, monitor experiments, and interact with nodes on the testbed.
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
This document discusses the benefits of contributing device drivers and other code to the Linux kernel upstream first instead of maintaining private branches. It outlines Chrome OS's strategy of picking long-term stable kernels and contributing hardware support to upstream. While challenging, working upstream provides many benefits like free code reviews, bugfixes, and easier updates. The document shows that Chrome OS contributions have helped increase upstream support for vendors' devices and that there is still work remaining to upstream GPU and other drivers. It demos mainlining the Samsung Chromebook Plus by using the open source Panfrost GPU driver instead of a vendor driver.
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...AMD Developer Central
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compiler Developers, by Yaxun Liu from the AMD Developer Summit (APU13) November 11-13, 2013.
The document provides instructions for building and setting up Android 5.0.2 on the Zedboard. It describes compiling the first stage bootloader (FSBL) and U-Boot, the Linux kernel, and the Android system image. It also explains how to create a bootable SD card with the required files and how to configure the hardware switches and ports on the Zedboard. Following these steps will result in a fully booted Android 5.0.2 system on the Zedboard.
Reaching the multimedia web from embedded platforms with WPEWebkitIgalia
Nowadays the Web is one of the primary ways for multimedia content consumption
and real-time communication (through WebRTC). During this talk Philippe will
present the WPEWebKit web-engine that has been deployed on a wide range of
embedded platforms and how you can add it to your own Linux-based embedded
device. WPEWebKit is the official WebKit upstream port for embedded platforms.
For multimedia playback and real-time communication it heavily relies on the
GStreamer multimedia framework. Philippe will give an overview of the W3C
specifications supported by WPEWebKit. WPEWebKit products have been deployed in
various embedded environments and hardware platforms. Philippe will focus on
i.MX platforms, outlining the steps required to enable WPEWebKit in Yocto-based
BSPs. WPEWebKit can also be used in server-side innovative ways, such as
dynamic HTML/JS/CSS powered video overlaying. Philippe will present this
use-case, detailing how live video streams can be augmented with overlays.
GstWPE is a GStreamer plugin embedding a WPEWebKit WebView, allowing to inject
a live audio/video representation of any Web page into a GStreamer pipeline.
Both GPU-based hardware-accelerated and software rasterisers runtimes are
supported.
(c) Embedded Linux Conference - North America (ELC-NA 2021)
September 27-30, 2021
Hyatt Regency Seattle | Seattle, Washington + Virtual
https://events.linuxfoundation.org/embedded-linux-conference-north-america/
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
This talk starts with an overview of ailia SDK, then introduces optimization techniques for inferring neural networks at high speed in Arm environments. Based on our research for developing ailia SDK, we introduce the optimization for Arm CPU using NEON SIMD instructions and various optimal compute shader implementations for Arm Mali using Vulkan. In addition, we demonstrate how various machine learning models actually operate at high speed in Arm environments.
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik DornPROIDEA
This presentation will introduce you to Docker - the new shiny star on the Devops horizon. It will teach you everything you need to know to get started with Docker, why you'd want to use it and which tools to use to get the most out of it. Additionally to showing the basics, it will introduce helpful libraries available for the JVM and how they can be used together with Docker to create secure, scalable and maintainable cloud setups for your applications.
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Igalia
By Philippe Normand.
This talk is about multimedia support in the WPE and GTK+ WebKit ports. I will give a status update about the HTML5 features currently supported by our GStreamer backend, such as WebRTC, MSE, MediaCapabilities support. The talk would also include a brief case study about using WPE and its Cog browser on IMX6 platforms.
(c) GStreamer Conference 2018
CC-BY-SA 3.0
https://gstreamer.freedesktop.org/conference/2018/
https://gstconf.ubicast.tv/videos/multimedia-support-in-webkitgtk-and-wpe-current-status-and-plans/
This document discusses programming IoT devices with Docker. It begins with an overview of IoT and Docker, defining IoT as connecting devices over the internet and Docker as a platform for developing and running containerized applications. It then provides examples of programming IoT boards, sensors and gateways using Docker containers, including with Johnny-Five for Node.js, ESP32, Apache MyNewt, and building custom images. It emphasizes that Docker allows building once and running anywhere through isolated, portable containers.
Bartosz Tkaczewski - Przygód z Dockerem ciąg dalszy
http://www.tsh.io
Docker jest zauważalny już niemal wszędzie. Na prezentacji zobaczysz działające środowisko developerskie, poznasz kilka sztuczek, jak sobie z nim dobrze radzić i efektywnie pracować, zobaczysz też, jak szybko można prosty projekt wzbogacić o zaawansowane stacki aplikacji (na przykładzie ELK). Postaram się również opowiedzieć, jak można sobie z tym potworkiem poradzić na produkcji.
Prezentacja z Uszanowanka Programowanka #16 - http://www.meetup.com/Uszanowanko-Programowanko/events/234826115/
GDG-ANDROID-ATHENS Meetup: Build in Docker with Jenkins Mando Stam
The document discusses automating an Android application build process using Docker and Jenkins. It describes how previously the build was done manually across multiple machines. The proposed solution is to create Docker images with the Android SDK, NDK and other build tools. These images would be used as build agents in Jenkins. Several challenges are addressed such as setting environment variables and running builds interactively in Docker containers. Defining properties files and caching downloads are techniques used to optimize the build process.
Docker is a tool that allows developers to package applications and dependencies into containers that can be run anywhere. The document discusses how Docker eliminates complexity by allowing developers to build, ship and run distributed applications using containers. It provides instructions on how to install Docker and create a simple "hello world" Docker container to demonstrate its basic functionality.
About 94% of AI Adopters are planning to use containers in the next 1 year. What’s driving this exponential growth? Faster time to deployment and Faster AI workload processing are the two major reasons. You can use GPUs in big data applications such as machine learning, data analytics, and genome sequencing. Docker containerization makes it easier for you to package and distribute applications. You can enable GPU support when using YARN on Docker containers. In this talk, I will demonstrate how Docker accelerates the AI workload development and deployment over the IoT Edge devices in efficient manner
This document discusses using Jenkins and Docker together for continuous integration and continuous delivery (CI/CD) workflows. It provides an overview of continuous integration, continuous delivery, Jenkins, and Docker. It then demonstrates setting up a CI/CD pipeline using Jenkins and Docker to build, test, and deploy a sample voting application across multiple Docker nodes. The pipeline includes building Docker images from source code in Jenkins, running builds and tests on commits, and deploying updated images to a Docker swarm cluster.
Flutter provides an excellent way to build Android, iOS, web and desktop apps, but what about the back end services? Full stack Dart is all about using that investment in Dart programming to build the services used by applications, whether it's in the cloud or on the Internet of Things. This presentation will look at the tradeoffs between just in time (JIT) and ahead of time (AOT) compilation, Dart on Docker, the Functions Framework for Dart, Profiling and Performance Management. Choices of back end architecture (x86_64 vs Arm) will also be examined, along with some of the challenges this can present for Continuous Delivery.
1. Docker is a container platform that packages applications and dependencies to run seamlessly in any computing environment. It helps eliminate issues caused by differences in computing environments.
2. Kitematic provides a graphical user interface for Docker that makes it easy to run Docker containers without using the command line. It allows visually managing containers.
3. The Docker CLI can be used to run containers by pulling images from Docker Hub, a registry for Docker images, and using commands like docker run to launch containers from those images.
The document provides an introduction to Docker containers. It describes how Docker allows applications to be packaged and run in lightweight isolated containers. Docker containers leverage features of the Linux kernel such as cgroups and namespaces to provide isolation. This allows containers to share resources of the host machine including network and disk, while running as isolated processes. The document then demonstrates common Docker commands and provides a tutorial on building Docker images for development and deployment workflows.
This document discusses deploying Django apps using Docker. Docker allows encapsulating apps from the host system in "containers" to make deployment repeatable without interfering with other host configurations. Key Docker terms include Dockerfile (commands to build images), images (snapshots of lightweight VMs), and containers (running instances of images). The document provides commands for building/running images and entering containers. It recommends getting a cheap VM from Digital Ocean with Docker preinstalled to easily test and use Docker.
This is part of the Docker Series Course that I am presenting, the videos of which with practical example will be available soon.
Part 1:- Docker Concepts - Orientation
Part 2:- Docker Concepts - Edition
Part 3:- Docker Concepts - Kitematic
Part 4:- Docker Concepts - Docker Machine
Part 5:- Docker Concepts - Docker Compose
Part 6:- Docker Toolbox - Mac
Part 7:- Docker Toolbox - Windows
Part 8:- Docker Engine Installation - Mac
Part 9:- Docker Engine Installation - Windows
Part 10:- Docker Engine Installation - Linux
Part 11:- Docker Machine Installation - Mac
Part 12:- Docker Machine Installation - Windows
Part 13:- Docker getting Started -Pre-requisites
Part 14:-Docker on the Cloud - AWS
Part 15:- Docker on the Cloud - Azure
Part 16:- Running Containers
Part 17:- Running Multiple Containers
Part 18:- Getting Inside Containers
Part 19:- Containers and Images
Part 20:- Building an Application:Docker Build
Part 21:- Building an Application:Docker File
Part 22:- Docker Swarms
Part 23:- Docker Stacks
Part 24:- Docker Overview
Part 25:- Docker Networks
Part 26:- Docker Networks-Bridge
Part 27:- Docker Networks-Host
Part 28:- Docker Networks-Overlay
Part 29:- Docker Networks-Macvlan
Part 30:- Docker Networks-Advanced Container Networking
Part 31:- Docker Storage:- Volumes
Part 32:- Docker Storage:- Bind Mounts
Part 33:- Docker Storage:- temps mounts
Part 34:- Docker Storage:- Storage within Containers
Dayta AI Seminar - Kubernetes, Docker and AI on CloudJung-Hong Kim
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes services expose these units to enable dynamic load balancing while maintaining session affinity. It also provides self-healing capabilities by restarting containers that fail, replacing them, and killing containers that don't respond to their health check.
The document discusses deep learning applications design, development and deployment in IoT edge. It describes using a Power9 system to train artificial neural network models using the MNIST dataset. It also covers building inference engines for Android phones and deploying visual recognition models to IBM Watson Studio.
Quantifying Your World with AI & Docker on the Edge | OSCONF 2020 JaipurAjeet Singh Raina
When Docker, IoT and AI Meet Together....
Highlights:
- Opendatacam is 100% Open Source solution
- Quantifies and tracks moving objects with Live Video Analysis
- Runs on Linux and CUDA GPU enabled hardware
- Runs completely on Docker Containers as well as support K3s.
Read the Full Story - https://collabnix.com/object-detection-with-yolo-using-docker-19-03-on-nvidia-jetson-nano/
Hear me LIVE on 10th October while I talk about Running Docker Container which uses GPU on Jetson Nano for Implementing Object Detection and Analytics.
This document summarizes Docker concepts and provides steps for a local Docker development setup. It introduces Docker images, containers, and registries. It then outlines requirements for development and production configurations and provides examples of setting up a Node.js/Angular frontend and Django backend using Docker images. The document concludes with notes on continuous integration and architecture options.
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
This document discusses using GitLab CI and Kubernetes together for continuous integration, delivery, and deployment. It provides an overview of Kubernetes and GitLab, describes how to set up a GitLab runner using the Kubernetes executor, and provides an example YAML configuration. It also covers continuous deployment workflows, running GitLab on Kubernetes, and some tips and tricks as well as techniques for troubleshooting Kubernetes and GitLab CI/CD pipelines.
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
This document discusses scaling Docker containers using Kubernetes and Azure Container Service. It begins with an introduction to containers and Docker, including how containers improve dependency and configuration management. It then demonstrates building and deploying containerized applications using Docker and discusses how to optimize Docker images. Finally, it introduces Kubernetes as a tool for orchestrating containers at scale and provides an example of deploying a containerized application on Kubernetes in Azure.
The document discusses Docker and container orchestration tools. It begins with an agenda on multi-machine Docker swarms and alternatives like Kubernetes and Mesos. It then provides step-by-step instructions for setting up a multi-node Docker swarm cluster on VirtualBox machines and deploying an application. The document also discusses the Moby Project for separating Docker's open source and commercial components, as well as other Docker tools for developers.
Similar to Webinar: Building Embedded Applications from QtCreator with Docker (20)
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
Webinar: Building Embedded Applications from QtCreator with Docker
1. Copyright 2020, Burkhard Stubert
Build and Run Embedded Apps
Faster from QtCreator with Docker
Burkhard Stubert
As a solo consultant, I help teams succeed with Qt embedded systems
2. The Problem
2
App A v3.5 App A v1.0 App B v2.3 App C v4.7
Qt SDK
Yocto 2.7
Ubuntu 18.04
Qt SDK
Yocto 2.0
Ubuntu 14.04
Qt SDK
Yocto 2.4
Ubuntu 16.04
Qt SDK
Yocto 3.1
Ubuntu 19.10
Workstation
2x Xeon (32 cores)
Ubuntu 16.04
All Qt SDKs built in
Docker containers on
same workstation
How do we best build
Apps from QtCreator?
? ? ? ?
3. Solution 1 (Currently Used):
Virtual Machines
3
Host OS: Windows,
MacOS, Linux
App A v3.5
Qt SDK
Yocto 2.7
Guest OS:
Ubuntu 18.04
Host OS: Windows,
MacOS, Linux
App A v1.0
Qt SDK
Yocto 2.0
Guest OS:
Ubuntu 14.04
Host OS: Windows,
MacOS, Linux
App B v2.3
Qt SDK
Yocto 2.4
Guest OS:
Ubuntu 16.04
Host OS: Windows,
MacOS, Linux
App C v4.7
Qt SDK
Yocto 3.1
Guest OS:
Ubuntu 19.10
2-3 VMs fit on same dev PC
Fast workstation and
existing containers
not used for app builds
VMs slower than containers
4. Solution 2 (This Talk):
Containers on Local Workstation
4
Workstation: Ubuntu 16.04
QtCreator
App A v3.5
Qt SDK
Yocto 2.7
Ubuntu 18.04
Container
QtCreator
App A v1.0
Qt SDK
Yocto 2.0
Ubuntu 14.04
Container
QtCreator
App B v2.3
Qt SDK
Yocto 2.4
Ubuntu 16.04
Container
QtCreator
App C v4.7
Qt SDK
Yocto 3.1
Ubuntu 19.10
Container
Build details hidden
in black box (container)
Reuse existing containers
on fast workstation
5. Solution 3 (Future):
Containers on Remote Workstation
5
Windows
QtCreator
App A v3.5
Linux
QtCreator
App A v1.0
Windows
QtCreator
App B v2.3
MacOS
QtCreator
App C v4.7
Workstation: Ubuntu 16.04
Qt SDK
Yocto 2.7
Ubuntu 18.04
Container
Qt SDK
Yocto 2.0
Ubuntu 14.04
Container
Qt SDK
Yocto 2.4
Ubuntu 16.04
Container
Qt SDK
Yocto 3.1
Ubuntu 19.10
Container
Apps developed on
different computers
Apps built in containers
on one or more
remote workstations
6. Copyright 2020, Burkhard Stubert
QtCreator-CMake-Docker
6
• Motivation
• Idea: Docker Wrapper for CMake
• Prerequisites
• General
• SSH Access to Device
• Building App with Docker
• Installing Qt SDK in Container
• Configuring QtCreator
• Building App with Docker-CMake
• Running App on Device
• Deployment and Run Settings
• Running App
8. Docker Wrapper for CMake
8
#!/bin/bash
args=$(echo $@ | sed -e "s|-GCodeBlocks - Unix Makefiles|'-
GCodeBlocks - Unix Makefiles'|g")
docker run --rm -v /public/Work:/public/Work -v /tmp:/tmp
-w $(pwd) dr-yocto:sdk-18.04 cmake $args
Save script in
$HOME/bin/dr-cmake
Resurrect single quotes
removed by shell
/public/Work and /tmp
visible both on host PC
and in container
9. Copyright 2020, Burkhard Stubert
QtCreator-CMake-Docker
9
• Motivation
• Idea: Docker Wrapper for CMake
• Prerequisites
• General
• SSH Access to Device
• Building App with Docker
• Installing Qt SDK in Container
• Configuring QtCreator
• Building App with Docker-CMake
• Running App on Device
• Deployment and Run Settings
• Running App
10. My Setup
10
Workstation: Ubuntu 16.04
QtCreator
Cuteradio App
Qt SDK for RPi 3
Yocto 2.6
Ubuntu 18.04
Container
Only a proof of concept!
11. Copyright 2020, Burkhard Stubert
Prerequisites: General
• Install Docker on workstation (see [2])
• Create a Docker container (sdk-18.04) for Yocto builds (see [3])
• Build a Linux image with the Docker container (see [3])
• Or: Use a pre-built Boot2Qt image from The Qt Company (see [5] and [6])
• Build Qt SDK with the Docker container (see [4])
• Or: Use a pre-built Boot2Qt SDK from The Qt Company (see [5] and [6])
• Establish SSH connection between workstation and device (see [1] and [4])
11
12. Copyright 2020, Burkhard Stubert
QtCreator-CMake-Docker
12
• Motivation
• Idea: Docker Wrapper for CMake
• Prerequisites
• General
• SSH Access to Device
• Building App with Docker
• Installing Qt SDK in Container
• Configuring QtCreator
• Building App with Docker-CMake
• Running App on Device
• Deployment and Run Settings
• Running App
23. Copyright 2020, Burkhard Stubert
QtCreator-CMake-Docker
23
• Motivation
• Idea: Docker Wrapper for CMake
• Prerequisites
• General
• SSH Access to Device
• Building App with Docker
• Installing Qt SDK in Container
• Configuring QtCreator
• Building App with Docker-CMake
• Running App on Device
• Deployment and Run Settings
• Running App
24. Building the App with dr-cmake:
Switching to Project "Docker Raspberry Pi"
24
25. Building the App with dr-cmake:
Output when Switching the Project
25
26. Building the App with dr-cmake:
CMake-Output of Switching to Project
26
15:50:29: Running steps for project cuteradio-apps...
15:50:30: Starting: "/home/burkhard/bin/dr-cmake" --build . --target all
[ 16%] Automatic MOC for target cuteradio
[ 16%] Built target cuteradio_autogen
[ 33%] Automatic RCC for qml.qrc
Scanning dependencies of target cuteradio
[ 50%] Building CXX object
CMakeFiles/cuteradio.dir/cuteradio_autogen/mocs_compilation.cpp.o
[ 66%] Building CXX object CMakeFiles/cuteradio.dir/main.cpp.o
[ 83%] Building CXX object
CMakeFiles/cuteradio.dir/cuteradio_autogen/EWIEGA46WW/qrc_qml.cpp.o
[100%] Linking CXX executable cuteradio
[100%] Built target cuteradio
15:50:33: The process "/home/burkhard/bin/dr-cmake" exited normally.
15:50:33: Elapsed time: 00:05.
27. Copyright 2020, Burkhard Stubert
QtCreator-CMake-Docker
27
• Motivation
• Idea: Docker Wrapper for CMake
• Prerequisites
• General
• SSH Access to Device
• Building App with Docker
• Installing Qt SDK in Container
• Configuring QtCreator
• Building App with Docker-CMake
• Running App on Device
• Deployment and Run Settings
• Running App
34. Copyright 2020, Burkhard Stubert
References
[1] Docker Builds from QtCreator. Basis for this talk.
[2] Using Docker Containers for Yocto Builds. How to install Docker.
[3] Qt Embedded Systems – Part 1: Building a Linux Image with Yocto. First step
to create a Qt SDK.
[4] Qt Embedded Systems – Part 2: Building a Qt SDK with Yocto. Creates the Qt
SDK used in this talk.
[5] The Qt Company, Boot to Qt Software Stack. Official documentation of
Boot2Qt.
[6] Tino Pyssysalo, Getting Started with Yocto & eLinux. How to install a Qt SDK
and start developing an app.
34
35. This presentation is licensed under a Creative Commons
Attribution-ShareAlike 4.0 International License.
Copyright 2020, Burkhard Stubert
Thank you
Mail: burkhard.stubert@embeddeduse.com
Web: http://www.embeddeduse.com
Editor's Notes
If Ubuntu version newer than Yocto version, Yocto builds fail with strange errors.
Ubuntu versions can also be too old so that newer Yocto versions don't build on them.
App developers work on different Ubuntu versions for many good reasons.
Embedded systems have life times of 10, 15 or even 20 years. As the manufacturer, you must guarantee that systems work that long.
You can run VMs (basically) everywhere: on laptop, dev PC, workstation.
Build times for my current project: ~5 minutes in VM on Macbook Pro, 20 seconds natively on workstation.
Longer build times sum up. Easily 1-2 days per month per team (3 developers).
All containers have the same interface!!! They are black boxes for QtCreator
Reuses existing containers on fast workstation
This is what you do with builds of Linux images and Qt SDKs already – and for release builds.
CLion seems to support these remote builds.
The cmake calls are the interface to the Docker containers. They are the same for all containers.
The work directories /tmp and /public/Work must be visible in host PC and in Docker container.
QtCreator only passes the binary of the C and C++ compiler (without any options) to CMake.
This lets the compiler test fail, because the test binary doesn't have the right floating-point support.
QtCreator expects all compiler flags in the CFLAGS and CXXFLAGs and ignores options contained in CC and CXX.