Open Source UX: reviewing Joplin and Ocenaudio

In this post, we’re diving into two compelling open source projects, Joplin (task management) and Ocenaudio (audio editing), which are redefining user expectations and providing strong alternatives to proprietary software. These applications not only challenge the dominance of established players but also showcase a commitment to improving usability and functionality in ways that appeal to …

Public service announcement: youtube links have tracking

Public Service Announcement: YouTube links now include an SI source id at the end which is unique to your account if you share link on another non-Google platform. Be sure to delete everything from the “si=” onward or it will be easily traceable to your Gmail @OldRowSwig on X

How to always get maximal debugging output for SQL queries in Qt

I tend to always forget how to use prepared statements, so I generated this little helper function that always does what I typically want. (untested 2023-09-04) #include <QSqlQuery>#include <QSqlError>#include <QVariant>#include <QMap>#include <QDebug>#include <QSqlDatabase>/** * Executes an SQL query with placeholders. * * @param sqlString The SQL query string with placeholders. * @param placeholderMap A map …

Qt Widgets Password Dialog with Caps Lock Check

Checkout on GitHub This is a dialog. There’s really nothing very particular about it; just that it’s been done well for a particular use case, where users need to be nudged to be aware of what they’re doing. In this current implementation, sufficiently technical users are able to extract the password but that isn’t the …

App: Merge Qt translation files

Checkout on GitHub Sometimes you can end up in a situation where you have multiple little apps (Qt projects) as part of a bigger project. So you may have started out with multiple translation files, but really, you want a single common translation file between projects so they share a vocabulary. So how do you …

Qt: Adjust QTableView height according to contents

In my layout, my dynamically generated QTableViews seem to get resized to only show one row. I want to have the container of the table views to have a scrollbar instead of the individual table views, which should show full contents. Qt doesn’t have anything built in for this apparently, you need to calculate and …

Getting Twincat XAE to function on MacBook Pro

I finally got sick and tired of all my windows laptops breaking physically one way or another. First there was ThinkPad Edge, then there was the ultrathin Sony Vaio (bought just before Sony sold the business and discontinued the thing). Developers, Linus Torvalds included, online seemed to agree that MacBooks are the best hardware on …

Learning and state machines

Guiding learning can be a deceptive thing. Where an expert might think something is simple, the student’s journey toward understanding is filled with twists and turns the expert no longer even remembers. This is really the core challenge of teaching: how to communicate the complex when your own mind has already largely automated those early …

Future proofing learning in software development

Authors: Olli Savolainen and Daniel Schildt Olli: In my opinion, it is important in the teaching of programming fundamentals to focus on the essential: Learning what will help you get started quickly and implement your own ideas. This is particularly challenging with C and C++ languages, teaching of which is sometimes still needed. When a …

Winnie the Pooh personality test

A playful experiment in online advertising; a simple “personality test” . It was featured on a local radio station sometime around the year 2006, and gained quite a bit of traffic due to that. It got me some hundreds of euros in the oughties to support my studies. After placing the ads, the total impressions …