Simo Virokannas

Writings and ramblings

Category: Programming

  • Application packaging: history and good practices

    As long as there have been programmable computers, there has been a form of application packaging, and it has taken many shapes in the past and has at least as many that coexist today. Here’s a brief run-through of some of these followed by a couple of conclusions. HISTORY punch card boxes 1950’s and 1960’s…

  • Learning to learn programming (part I)

    Programming as a profession is no different from most professions – there’s no real trick to it, there’s no “learn this in 10 days”. But one skill does help you a lot: the ability to learn. That means the key is to learn to like the learning process and then never stop learning. Therefore, this series…

  • Symbolicate .crash logs – with whatever

    Ran into a situation where I had to get a Apple crash log symbolicated but the instructions say you’ll need to drop them to the device log viewer for that device. But in this case, I don’t have the device the log was from. Or it might not be connected at the moment. Or any…

  • Spline interpolation in Swift

    Just so that the next person can avoid having to do the wikipedia-math-formula-to-Swift conversion, here’s a simple Catmull-Rom interpolation method for linear y=x data. I’m using it to create simple ski jump hill profiles for a possibly upcoming game, it’s so easy to describe a hill profile by just giving it control points and let…

  • Swift: as easy as 1, 2, 3…?

    Apple shook the developer community a few years ago with the release of Swift, a language that is “concise, expressive and lightning fast”. As a developer mainly working on Apple platforms, I decided to jump on it right away, trying to keep in mind there was going to be bumps in the road like there has been with any…

  • Indeterminate progress is not progress

    The progress paradigm Before, you could open your computer, do your stuff, close it and enjoy life. Remember when loading a program, like a word processor, took a minute or more? Today’s applications and websites typically employ a model where there’s a backend process that either runs locally on the same machine or on a server somewhere.…

  • 0xdec4c8

    Putting together some simple 3d for fun once again. Made a little cube, put the vertices and indices together, made a couple of array buffers and rendered a cube. Now usually to make a cube, you’ll need at least 8 vertices and index lists for the triangles or quads for the six sides. A triangle…

  • Hungarian Notation

    Years ago, I got a task to add features to the source code of an existing application. It originated in a company that was seemingly obsessed with win32-style programming and Hungarian notation. After a while, the m_lpsz, g_u32 and s_aul prefixes started to make sense, and almost immediately after that, they stopped making sense. Here’s what…