
Virtual functions, though generally a blessing, have a defect-prone dark side. No language, that I know of, provides a way to encode when the base class should be called. This leads to […]
Virtual functions, though generally a blessing, have a defect-prone dark side. No language, that I know of, provides a way to encode when the base class should be called. This leads to […]
A good text editor is the most important tool for me. My favourite text editor, Kate is unfortunately broken after upgrading from Kubuntu 12.04 to 16.04 (several things simply don’t work anymore). […]
“Reference counting is slower than garbage collection”, a claim often made in the discussion of memory management. I heard it again recently when discussing Leaf; somebody took issue with my arguments against […]
Reference counting is a common form of memory management. In some languages, like Python, it’s the natural way objects are tracked, and in others it’s in the standard library, such as shared_ptr […]
Every day millions of programmers require the length of a string. Despite this there is no universal definition of what string.length actually represents. It changes between languages, and quite often doesn’t return […]
No mobile app would be complete without a few gestures. I already had swiping in place, so now I turned my attention to panning, zooming, and rotation. These nicely round out of […]
Queues are a common part of modern software. Scheduling jobs and actions isn’t just for distributed systems, but for any system dealing with external events or asynchronous processing. It’s easy to grab […]
Good products can be hampered by relatively minor design issues. After a long period of development it’s often tempting to push something through the door despite its flaws. It is important to […]
On 9 February human error resulted in 11 deaths and 80 further casualties in tragic wreck near Bad Aibling, Germany. Despite a supposedly robust safety system, a lone operator was capable of […]
I started using the mach_absolute_time function on iOS to get proper event timing information. It works well, I think; the problem is that I actually don’t know what this function is supposed […]
floor and ceil have the bad habit of producing unexpected results. They aren’t broken, but in light of floating point nasties can often result in a number that’s ±1 of the desired […]
I recently implemented a swipe gesture for Fuse. The gesture recognition itself, though complex, was not hard to implement; I had most of the needed pieces already. Designing a user friendly, declarative […]
Are our discussions about errors focusing on the right part of the problem? We tend to argue about what exceptions mean, or how return values are messy. But if I look at […]
Virtual functions are a great feature, but they have a rather severe limitation. They can only be implemented by extending the definition of all classes involved. A lot of operations on classes […]