Learn how to create custom fmt::formatter specializations in C++ to enable readable, indented output for nested structs. This guide demonstrates using CRTP and helper utilities to format complex types with indentation levels, making logging with fmt and spdlog more human-friendly.
Documenting software architecture isn't just about diagrams - it's about preserving the reasoning behind design decisions. This post explores why high-level documentation matters, how to write it effectively, and which tools and models (like C4 and arc42) help maintain clarity and consistency over time.
Effective debugging in embedded Linux requires a full-stack approach and the right tools. This post covers key techniques—from hardware abstraction and static analysis to profiling and logging—to help you build more reliable systems.
Choosing the right programming language for your embedded Linux device is crucial. Learn the nuances of C++, Rust, and Dart to make an informed decision.
Shipping your app with all dependencies is hard. One way to solve this, is to use Docker on Embedded to combine all dependencies into a single update. In this video, Christoph presents Torizon, one Docker-based solution to handle images and updates on Embedded.
Building an embedded device is a challenge in itself, but bringing it to market means even more work. In this short 'Insights' video, Christoph describes what KDAB did for their customer Kistler, who builds some of the most precise pressure-measurement devices available, to bring a very mobile, handheld device from prototype to market.
In this video, Christoph explains how to configure, create and schedule Over-The-Air Update Builds in the Yocto buildsystem.
This is the fourth and final video in the embedded Linux series, which goes over development environment considerations.
With NLnet support, KDE Plasma’s Wayland session now offers improved accessibility and creative tool support. Enhancements include better sticky keys feedback, customizable tablet areas, pressure curve adjustments, and configurable stylus buttons. These updates make Wayland more inclusive, reinforcing KDE’s commitment to accessibility.
This third video goes over the choices you have for the entire software stack from the OS to the application and gives you things to consider at every step.
Key architectural choices - monolithic vs. microservices - impact scalability and complexity. Planning for multi-user support early prevents costly modifications, while containers enhance consistency and security in deployment. Strong security practices, such as minimizing root access and securing OS vulnerabilities, are essential for resilience. Thoughtful planning ensures a scalable, secure, and maintainable embedded system.
This second video in the series of four, covers the numerous planning considerations that go into choosing your hardware to help you expediate your development process.
This is the first video in a series based on a whitepaper about designing your first embedded device; it covers the beginning and ending of the product development process.
Choosing the ideal software stack for your embedded device is a decision that influences both its performance and long-term value. With so many tools available, the burden of figuring out where to start can feel overwhelming. This blog aims to help you streamline your software selection, focusing primarily on the lowest level of the software […]
Choosing the right hardware for an embedded Linux device is so much more important than your software choices. Making the wrong decision can lead to significant costs and disruptions if you have to change hardware mid-development. Read this blog first before you solidify your choice. Custom or commercial? Choosing between a custom or commercially available […]
Creating applications for cross-platform compatibility is a modern best practice. It increases deployment flexibility and allows applications to reach a wider audience. However, doing it properly can involve some trial and error. At KDAB, we’ve built many multiplatform desktop applications. Here, we’ve compiled a few insights from that process to help you build better software. […]
Building system images for embedded devices from the ground up is a very complex process, that involves many different kinds of requirements for the build tooling around it. Traditionally, the most popular build systems used in this context are the Yocto project and buildroot. These build systems make it easy to set up toolchains for […]
Hotspot is a standalone GUI designed to provide a user-friendly interface for analyzing performance data. It takes a perf.data file, parses and evaluates its contents, and presents the results in a visually appealing and easily understandable manner. Our goal with Hotspot is to offer a modern alternative to perf report, making performance analysis on Linux […]
In this video, we talk to Aiśwarya Kaitheri Kandoth (Aish) who tells us about the growth of free software in Kerala, India, and of her role in the take-up and evolution of GCompris in schools there.
As a consulting company, we've gotten to work on lots of different circuit boards and computer chips. In this video, you'll see some examples and Christoph will point out what makes each one special.