DEMKO.CA

2024-03-22 In Defense of Object-oriented Programming

OOP is here to stay!

2023-10-08 Explicit Globals

The problems of lazily constructed global variables.

2021-05-12 Crypto Scams

The various ways crypto currencies are evil.

2017-11-11 Every Day Data Structures

An overview of data structures in every data applications

2016-11-06 The 10x Programmer

What are 10x programmers?

2016-06-12 Google, Android and Java

Alternatives to Java for Android

2015-06-23 Qt goes LGPL! (part two)

I celebrated when, almost seven years ago, Troll Tech licensed the venerable Qt library under the LGPLv2. This meant that you could use this library without having to get a costly commercial license, greatly expanding its usability and use. ...

2015-01-22 Design Patterns: Error Handling

There are generally three approaches to signaling error conditions from functions to callers. They are: ...

2014-02-12 Mapping Programming Language Complexity

Software development is fundamentally an exercise in managing complexity. Programmers juggle and connect algorithms, their states and the data they operate on. These algorithms are further grouped into modules or programs, which then connect users and computers together. This virtual world is unlike any other construction project and it's all malleable at any time. ...

2013-06-01 TeX and LaTeX - Good Math, Bad Software

TeX and LaTeX - Good Math, Bad Software [http://scienceblogs.com/goodmath/2008/01/10/the-genius-of-donald-knuth-typ/] I stumbled upon a old blog post celebrating Donald Knuth's birth day by reviewing his work, particularly the TeX typesetting software. Now, as a Computer Scientist I completely agree that Dr. Knuth is a one of the founding fathers - so to speak - of Computer Science, and I pledge eternal allegiance by swearing on my computer of The Art of Computer Programming. However, I have to draw the line at TeX. ...

2012-12-04 What's the point of the Wii U?

I like Nintendo. I have a long history with them. I grew up with the original NES and SNES systems and did buy the original Wii near launch. At the time it was a good value: half the price of existing systems, innovative waggle/wiimote interface (which my family still enjoys to this day) and good-enough (at the time) SD graphics. ...

2012-09-03 Employment Insurance is broken in Canada

This article is probably of interest to fellow Canadians, as it's about our Employment Insurance system. ...

2012-07-24 Microsoft hates C++

During various Microsoft-centric blogs, the term native renaissance was bounced around outlining the fact that Microsoft is getting back into native (i.e. C++) development in a big way. This was underscored by the fact that newer versions of the Visual Studio C++ compiler is going to track the C++ standard more closely and that the Windows 8 platform will make more use of native code. At least, that's the promise. ...

2012-03-01 Privacy and Dual Browsers

Google, Facebook and who knows what other ad-driven Internet sites are by design, attempting to track you in all kinds of pervasive ways in order to show you ads. This is their nature, it's their business, and I'm going to outline a simple technique that will reduce some of your exposure. ...

2012-01-01 How to get free TV in Winnipeg

Since December, 2011, all the over-the-air (aka OTA, aka antenna) television stations in Winnipeg, Canada have completed their switch to digital HD broadcasting. This means, that with an antenna you can receive free, high definition TV with an antenna. Combined with Netflix (and say, a Boxee Box), you can easily ditch your overpriced cable TV service. ...

2011-12-01 How to Build a Backup System

Backup is vital. Keeping your important data on finicky spinning disk platters with reading heads held precariously on a cushion of air or oil is a recipe for disaster. Your hard disks will die, crash, get stolen or just break. Data will be lost. If you don't have a backup system in place, you'return just waiting for the inevitable. ...

2009-03-01 Microsoft and Mono

The Linux Outlaws Podcast recently (in ep. #75) had an interview with Miguel de Icaza on the topic of Mono. Since this is often a heated topic among Linux hackers, I figured I'd chime in with my two cents. ...

2009-02-01 Qt goes LGPL!

In about a month, Nokia, owners of Troll Tech, makers of the Qt widget library will release Qt 4.5 under the LGPL license. In a web centric world desktop application programming may seem unhip and uninteresting but rest assured, this is huge news, especially for desktop app developers and potentially mobile app developers (Nokia's primary intent here is to build a platform, after all). ...

2008-05-01 Making your own smart pointers in C++

Although C++ has no fancy, automatic dynamic memory management at the language level (yet), it does include (through templates and the RAII principles) the ability to make your own so-called "smart" pointers. ...

2007-11-01 How to record your Skype conversation in Linux

This note describes how to record your half of a Skype conversation to a high quality file. This process doesn't record the other party's voice -- it's assumed they will record their own voice locally and you'll mix them together afterwards. This is a standard pod-casting trick. ...

2007-09-01 The problem with "stable" Linux distributions

I like stable, long supported Linux distribution versions, like Ubuntu 6.04 LTS. Unlike the frequent, bleeding edge releases from Fedora and Ubuntu, these long term support releases promise a stable platform. This platform you could hope to depend on for at least a few years, with an assured stream of security updates. ...

2007-09-01 Why must the GPL be tested in court?

The GPL is a very interesting license, with "viral" like properties that encourage keeping software free for users and developers. It's unique in that it's not a very liberal (in the "do with as you please" sense like BSD) or an exclusive, pay per use license like commercial/bought software. ...

2007-06-01 Why the Web-of-Trust doesn't work

GPG and PGP advocate a "web of trust" model for the verification of public keys. In this model, the user himself builds a collection of trusted keys, who's signatures on other keys spread my trust. If I trust Bob, and Bob trusts Sally (by signing her key), then I can probably trust Sally to. Simple enough? ...

2007-06-01 Autoconf sucks

This is the most obscure, wacky ass build configuration system in existence, yet is somehow the backbone of most open source projects. That -- along with preferring C over C++, but that's another post -- is what I think provides a huge barrier to entry for many developers to contribute to open source projects, myself included. ...

2007-05-01 GTK+, GTKmm and their wacky reference counting scheme

This document attempts to make sense of the reference counting scheme in GTK+ and GTKmm. I've put this all in one place, since it doesn't seem to be in any central location already. ...

2007-04-01 The Nintendo Wii, first impressions

This is a short write up on the Nintendo Wii, in particular its control scheme and where I think this system can go. I've had the system for almost two months now, played a variety of games (including finishing Twilight Princess) and based on my DS ownership, I think many people have the wrong idea on where the Wii is headed. ...

2007-01-01 Why I moved from Fedora to Ubuntu

After having been a long time Red Hat (since version 3 or 4) then Fedora (to version 5) user, I've decided to jump ship and try out Ubuntu. I loved Red Hat for a long time, and even enjoyed Fedora when they were only ones on the bleeding edge of 64-bit, LVM, NPTL threads support etc. But now, for a variety of reasons, they've been slipping and so I've switched to Ubuntu. ...

2006-10-01 PDF Hacking

"Encrypted" PDFs produce postscript files that have little traps in them making them only printable, and not return-distillable. This is annoying. ...