Simo Virokannas

Writings and ramblings

  • Compiling Pixar’s USD natively on Apple M1

    This is in no way meant to be a “standard, do it this way” kind of a solution, but just one way of…

  • A new design pattern for MMXXII

    Over the past decades designing an application has gone through several overhauls. Of course whether this affects you or not depends on if…

  • Adding resizing and resizable subviews to NSView

    If you’re adding a subview programmatically, you may run into having to constantly set all the resizing behaviors and/or anchors manually when all…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • CARL merchandise now available!

    Go check out the fresh collection of CARL merchandise! There’s awesome stuff, like this cool Espresso cup!  

  • CARL 1.1 is out!

    Check out the new features at the product home page: CARL Also, on the App Store and KVR Audio

  • CARL 1.1 soon out

    The next major release of CARL is soon out. Just a sneak peek: Finally, going back to the roots of chip tune, CARL…

  • 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…

  • 0xdec4c8

    Putting together some simple 3d for fun once again. Made a little cube, put the vertices and indices together, made a couple of…

  • 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…

  • Poor man’s photo backup, part I

    A photo library, around 100 000 photos, not really professional but nice-to-have photos. Some of them are blurry, unfocused, or just plain horrible…

  • Create ringtones from YouTube

    Most of the methods online for creating ringtones from YouTube seem to involve shady websites with ads and registering accounts, if they even…

  • Streaming basics

    As a quick crash course on video and audio streaming, here’s some nice facts and articles. The tool of the trade is RTSP,…

  • Unity version of MonoDevelop on OSX won’t run

    …that is, if you are not running your system as admin. MonoDevelop assumes that everyone who uses OSX use it as admin. The…

  • Some more music

    Here’s one old track remastered and another new piece: Cabo Blanco (2012 remaster): Cabo Blanco (2012 remaster) Detective Story: Detective Story

  • NSOpenGLView and NSToolbar issue

    For a long time, I’d run to the same problem with projects that included a window containing a full-window NSOpenGLView and a toolbar.…

  • Emoji nonsense

    Short history of Emoji characters: Many smartphone manufacturers released Emoji first only for Japanese products as a keyboard layout. Later they became popular…

  • Xcode, NSOpenGLView, internal crash

    Xcode, NSOpenGLView, internal crash

    I’ve been encountering a frequent problem with Xcode interface builder with NSOpenGLViews – whenever you add one, connect it to a class, and…

  • Orchestral tracks from the past

    It’s already a long time since I removed the online jukebox from these pages, so here’s some of the old orchestral music from…

  • Dashcode, part II

    After using Dashcode for almost a year now, this is the bottom line: “Don’t make any big projects with it.” – A random…

  • Wonderful null character

    I recently programmed a lengthy piece of online software with PHP and JavaScript, utilizing server-side PHP/MySQL queries. But there was a problem that…

  • MacRuby and (too) persistent objects

    If you’re starting with MacRuby and Xcode, you might stumble upon the same problem I did: If you deploy the project even once,…

  • Amplify multiple mp3s from command line

    Amplify multiple mp3s from command line

    This is quite easy to do, actually, just another case of bad (or missing) documentation. First, get an ffmpeg binary. This can be…

  • HALion Symphonic Orchestra on OSX Lion

    HALion Symphonic Orchestra on OSX Lion

    This page at Steinberg’s website claims that Halion Symphonic Orchestra won’t work on OSX Lion. It says “Plug-in not detected by host. No update…

  • UBV Beach Volley 2011

    UBV Beach Volley 2011

    I’m happy to announce the first version of UBV 2011 is now available for buying in the Mac App Store. Link to Mac…

  • 4 new tracks

    4 new tracks

    Here’s some new music: Vector Strongly influenced by Tron: Legacy soundtrack. Vector HD1 Tried to capture the classic feeling of Vangelis’ Chariots of…