Hotspot v1.5.0 released
KDAB Blogs
by Milian Wolff
1d ago
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 systems more intuitive and efficient. ChangeLog for Hotspot v1.5.0 It comes packed with a wealth of code cleanups, bug fixes and new functionality. Most notably, the disassembly view has been further improved with better searching, highlight ..read more
Visit website
Mixing C++ and Rust for Fun and Profit: Part 3
KDAB Blogs
by Loren Burkholder
4d ago
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++ and Rust that you can easily deploy today. bindgen bindgen is an official tool of the Rust project that can create bindings around C headers. It can also wrap C++ headers, but there are limitations to its C++ support. For example, while you can wrap classes, they won’t have their c ..read more
Visit website
Mastering the Embedded Update Process
KDAB Blogs
by Andreas Holzammer
1w ago
The importance of updating your product after it’s in the field cannot be overstated. Not only is it essential for customer satisfaction with feature updates and bug fixes, but also for addressing security vulnerabilities. In this post, we’ll look at some key considerations and methodologies for updating embedded systems. Selecting an update approach Choosing the right method to update your embedded system is the initial challenge. Let’s explore four widely considered approaches. Package updates – Using package management tools like apt or yum to download and install updates might appear attr ..read more
Visit website
Recursive Instantiation with Qt Quick and JSON
KDAB Blogs
by Javier Cordero
2w ago
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 different topic. Part 1 focuses on the software design pattern used to dynamically instantiate components. Part 2 shows how to layout these dynamic components by incorporating QML’ s positioning and layout APIs. The last entry, consisting of Parts 3 and 4, addresses ..read more
Visit website
Streamlining Strategies for Embedded Software Development
KDAB Blogs
by Nathan Collins
3w ago
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 applications to boards, initializing debuggers, and resetting systems, can significantly reduce the time penalties that embedded developers face. Using automation to streamline setup for new engineers, everyday ..read more
Visit website
Introducing the ConnectionEvaluator in KDBindings
KDAB Blogs
by Shivam Kunwar
1M ago
Managing the timing and context of signals and slots in multithreaded applications, especially those with a GUI, can be a complex task. The concept of deferred connection evaluation offers a nice and easy API, allowing for controlled and efficient signal-slot connections. This approach is particularly useful when dealing with worker threads and GUI threads. A classic example where cross-thread signal-slot connections are useful is when we have a worker thread performing some computations or data collection and periodically emits signals. The GUI thread can connect to these signals and then dis ..read more
Visit website
Streamlining Multi-platform Development and Testing
KDAB Blogs
by Nathan Collins
1M ago
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 and testing multi-platform embedded software. Emulation and virtual machines When developing software, especially in the initial stages, testing and debugging often don’t happen on the final hardware but on development m ..read more
Visit website
Reducing Visual Studio Installations with Toolchains
KDAB Blogs
by Miłosz Kosobucki
1M ago
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 plus older Build Tools. However, it turns out that you can have just the latest IDE but with multiple toolchains installed for older compiler targets. You won’t even need the Build Tools. To use these toolchains you need to install them in your c ..read more
Visit website
Introducing: KDSPDSetup
KDAB Blogs
by Matt Aber
1M ago
KDAB’s newest open-source library is now publicly available: KDSPDSetup! KDSPDSetup is a small library written in modern C++ (≥ 20) that initializes objects from the spdlog library by reading a toml configuration file. This makes setting up loggers more convenient and results in cleaner-looking code. Let’s take a look at an example to see how useful it can be. We’ll read the config from a file logConfig.toml and do some stuff with the loggers KDSPDSetup creates for us. #include <KDSpdSetup/kdspdsetup.h> void doStuff() { auto log1 = spdlog::get("log1"); log1->info("both conso ..read more
Visit website
Punctuality Matters: Using Linux to Manage Time-Critical Situations
KDAB Blogs
by Nathan Collins
2M ago
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 in Linux for core development, you can consider some of these strategies for handling time-critical tasks without abandoning your familiar environment. Real-time patches Linux can be nudged closer to real-time performance using kernel ..read more
Visit website

Follow KDAB Blogs on FeedSpot

Continue with Google
Continue with Apple
OR