Lock Free Multithreading in Qt

If multithreading is challenging to get right in your applications, then lock-free multithreading is down-right killer. This article won’t go into detail about lock-free algorithms, but instead I will offer a “poor man’s” method for crossing thread boundaries in Qt without using locks (no mutexes, no semaphores). At least, your code won’t have any locks. […]

Model/View/Presenter and Qt?

Here’s a question for Qt hackers: Does Qt implement the Model/View/Presenter design pattern? The short answer is (drumroll): it depends on some stuff. Let’s dive into it and give you a real answer. First of all, I am no Model/View/Presenter expert. I’ve only read what little information is available online, and I’ve never implemented an […]

Qt Stylesheet Sidebar Tutorial

In some applications, a nice looking sidebar can really add some polish. In this tutorial, we’ll show you how to make a sidebar using nothing but Designer and Qt’s stylesheets. When we’re done, we’ll have this: Step 1 Open Designer and create a new widget for your app. Enjoy the blank slate for a moment. […]

Qt Stylesheets Tutorial

Stylesheets add spicy flavor to your boring Qt GUIs. For a long time, Qt has allowed you to decorate your GUIs with CSS’ish style sheets. Inspired by the web, stylesheets are a great way to stylize your Qt GUI, but it seems that few people use them. In this tutorial, we’ll create an example dialog […]

Mozy Woes on Mac

Mozy has been working fine on my Mac for about 6 months (aside from the massive memory usage it requires during backup), but starting about a week ago, I can’t make Mozy finish (or even start) a backup. I’ve tried uninstalling it, removing all configs, reinstalling it, using the shipped config defaults, and I still […]

Apple Win, Dave Fail

I’ve been enjoying looking down my nose at the world ever since getting my Apple iMac, but today my haughty soul was humbled by a personal fail. I bought some more RAM to upgrade it. The RAM works fine. I tested it in my Dell laptop. The iMac, however, rejected it like an English queen […]

Ditching BAStats

For several years I used BAStats on my blog to get visitor statistics. It gave me nifty info like which Google searches lead people to my blog. After a a few years, my blog pages started loading very slowly, annoyingly slow, and I finally tracked it down to BAStats (using MySQL’s “show processlist” command). The […]

Example Qt Chat Program

A few months ago I gave a presentation to the BYU Unix Users Group on Qt GUI development. During the meeting, we created a simple chat room program called chatterbox. At the time I promised to post my source code with comments, a promise on which I am now making good. Here is the code. […]