Simo Virokannas

Writings and ramblings

Category: Programming

  • What is Software Salvage

    What is Software Salvage

    Summary This article describes the method for software rewrites when the original source code is unavailable – or unstable, of questionable quality or otherwise the product of a beautiful mind. Background One part of what I do is software salvage. I’ve had the joy of working on bringing life back to abandoned codebases, extend them…

  • Transference of Complexity

    Transference of Complexity

    Summary Programming languages have evolved in accessibility, complexity and readability in the past six decades. The overall internal complexity of a single software application has grown exponentially, while the amount of code lines written to achieve a specific end result has decreased. This naturally occurring transference of complexity brings about completely new kinds of problematic…

  • Compiling Pixar’s USD natively on Windows 11 / VS 2022

    If you’ve tried it, you’ve probably run into the endless catch-22 that is getting everything to behave when trying to compile the Universal Scene Description on a newly setup Windows machine. NOTE: if there’s any way for you to avoid this in your life, don’t look back, rejoice. Prerequisites You’ll need to install at least…

  • 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 making it happen. I don’t like how homebrew and alike plug themselves into default locations and potentially taint your environment, so I default to Python-centric virtual environment handlers like miniconda. With the…

  • 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 you’re into doing the latest thing or if what you already have can in itself withstand the changes in computing landscape. But if you’re like me and at least like to entertain…

  • 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 you really want to do is fill the whole available area based on two options: “stretch me to fit this box” or “stretch this box so I can fit”. This happens especially…

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