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 […]
Technical Get the RSS Feed
Mixing C++ and Rust for Fun and Profit: Part 3 How to not reinvent the wheel
In the two previous posts (Part 1 and Part 2), we looked at how to build bindings between C++ and Rust from scratch. However, while building a binding generator from scratch is fun, it’s not necessarily an efficient way to integrate Rust into your C++ project. Let’s look at some existing technologies for mixing C++ […]
Recursive Instantiation with Qt Quick and JSON Factory Design Techniques - Part 1
Recently I was tasked to come up with an architecture for remote real time instantiation and updating of arbitrary QML components. This entry shows how you can use a simple variation of the factory method pattern in QML for instantiating arbitrary components. I’ve split my findings into 3 blog entries, each one covering a slightly […]
Embedding the Servo Web Engine in Qt Using CXX-Qt to integrate a web rendering engine written in Rust
With the Qt WebEngine module, Qt makes it possible to embed a webview component inside an otherwise native application. Under the hood, Qt WebEngine uses the Chromium browser engine, currently the de facto standard engine for such use cases. While the task of writing a brand new standard-compliant browser engine is infamous as being almost […]
Streamlining Strategies for Embedded Software Development
Developing embedded software is notoriously difficult – how can we simplify the process? Fortunately, there are lots of techniques you can use daily to help streamline your development. Embracing Automation The specialized nature of embedded systems extends the ramp-up time for developers and necessitates a higher level of expertise. Automating hardware-specific tasks, such as deploying […]
Streamlining Multi-platform Development and Testing
In today’s pervasively digital landscape, building software for a single platform is a 1990s approach. Modern applications, even those designed for specific embedded targets, must be adaptable enough to run seamlessly across various platforms without sacrificing efficiency or reliability. This is often easier said than done. Here are some key points to consider when developing […]
Reducing Visual Studio Installations with Toolchains
If you work on C++ projects on Windows that need to be built with multiple Visual Studio C++ compiler versions, you need some way to manage the installations of all these build environments. Either you have multiple IDEs installed, or you know about build tools (https://aka.ms/vs/17/release/vs_BuildTools.exe) and maybe keep only the latest full VS IDE […]
Punctuality Matters: Using Linux to Manage Time-Critical Situations
The robustness of Linux is widely acknowledged, but it can’t quite match the microsecond management of a real-time operating system (RTOS) for time critical situations such as CNC machine instructions, vehicular control, or health sensor collection. If your software must record, manage, or control events within a narrow and precise time window and you’re invested […]
Optimizing Embedded Product Design The Case for Off-the-shelf Boards
Choosing the right system-on-chip (SoC) is probably your first consideration when designing an embedded product, followed closely by deciding whether to use an off-the-shelf board or design your own. The case for commercial boards in initial designs For the first product in a new line, consider using a commercially available board that features your chosen […]
The Embedded Developer’s Dilemma in Choosing Hardware
When designing an embedded product, there’s a lot riding on those crucial first decisions of choosing a hardware vendor and board. Clearly, the hardware you select must be powerful enough to support your product, a challenging determination given that software is usually still in the planning stages at this point in the process. Plus, planning […]