Category: Technology

A note about programming

Programming is a strange activity in some ways. For starters, the majority of people don’t really understand what it entails, although there is probably some vague awareness in many that it involves ‘creating programs’. For those people who have dabbled in it, programming is a clearer concept but unless you’ve immersed yourself in the activity for a considerable amount of time it is unlikely that a real grasp of the complexity and depth involved in creating software is apparent.

I think programming is an activity that means different things to different people. All I know is what it means to me. Programming is a lot like any other creative endeavour, whether that be painting, writing, composing, sculpting, building, modelling or any number of similar activities besides. Anybody who engages in such creative arts, whether they realise it or not, becomes the ultimate controller of the little world in which they operate.

An author has free and complete reign over the destinies of their characters, imbibing life, death, adventure or misfortune upon these subjects at the whim of a few words. A sculptor or painter has a similar power, at least within the constraints of the material with which they are working. The same can be applied to artists, musicians and so forth.

In a similar vein, a programmer has many choices: which language to use, the nature of the computer for which they are creating the program and the algorithms they employ to produce the desired outputs when their program is run. In my opinion, programming differs from some other creative activities in that it is as much a science as it is an art, being a heady mix of well-trodden known best practices intermingled with the creative freedom to innovate and influence the behaviour of the program in order to make it do things that other programs don’t do, or perhaps to find a better way of doing something that’s been done a certain way for ages.

Much as I suspect is the case with other crafts, some programmers consider their activities coldly, merely churning out code to adhere to a set of specifications created by other people. Others engage with passion in what they are doing, as they have complete freedom over the design and implementation of the task at hand.

Having spent a significant amount of time implementing my vision of a system that does something interesting, and in the back of my head, working towards a goal that would mean I could make a living working on exactly this, it’s interesting to me how I fluctuate between intense concentration and flow, and fragmented, piecemeal sessions where nothing of importance seems to get done.

The former involves working hours at a time through a myriad of challenges and ideas in order to push the product further forward, and not even realising that the time has passed. The latter is frustrating but at least it’s time that can be spent doing little tweaks and tidy-ups in order to smooth out rough edges or oversights in previously written code. Either way it is mentally exhausting, if immensely enjoyable.

Later this year it’ll be interesting to see what comes out of this process. There are some interesting developments afoot and the code is taking shape in ways that excite and encourage me. It’s sort of alive, in it’s own way even. Watch this space 🙂

 

Finally a decent studio again…

20160113-184521

I tidied up my studio … partly because the new Prophet 6 and Moog Mother-32 synths were deserving of better surroundings and partly because, as I said before in a recent post, I want to get some music done. To that end, I’m currently working on a nice groove which lends itself to a bit of synth demo-ing and a youtube video.

Stay tuned…

20160113-183152

A film I will be watching no matter what

For some years, I played a Massively Multi-player Online Role-playing Game called World of Warcraft. This was not the first MMORPG I ever played – previously I spent as long playing a game called Asheron’s Call which I still consider to be vastly superior in almost every way, and the like of which I have not seen since. That said, I racked up countless (well, over a thousand) hours in WoW over several years, made many friends and had many adventures in the virtual world it provided.

Sadly, they are not making a film about Asheron’s Call, much as I wish they would. The game ‘World of Warcraft’ was originally deep, rich and challenging, set in a huge world with a bigger backstory. In later expansions to the game they dumbed it down to the point I felt it was no longer worth my time, plus to be fair I had been playing it for some years. It was still an amazing experience.

Anyway, there is a film coming out based on World of Warcraft, and I will be very keen to see it. To see the areas, cities, flora and fauna, villages and scenery on the big screen will be epic for me, regardless of how the film pans out. It looks to be more geared towards the conflict between the Alliance (Humans, mainly) and the Horde (Orcs, if the trailer is anything to go by) but there is much more to the game which I hope will get a look-in. The goblins in Ratchet, the Horde settlement at Crossroads, and hopefully some dungeon action as well, such as the Wailing Caverns in the Barrens, which was a bit of a ‘rite of passage’ for all new players back in the day though I think this relatively unlikely.

I also wonder if there will be any little ‘in jokes or references to game lore that appear on screen. I hope so 🙂

I am so going to watch this!

FreeBSD for the win

For some time now I have been steadily working on a Very Cool(tm) programming project. I want to do some commercial things with it later, so I can’t really say what it is or what it does, but what I can say is that it works with network packets and it requires kernel-level adjustments to fulfill its potential.

Since starting it, I have been developing on Linux, specifically Ubuntu (though that’s not really important) because Linux is:

  • Easy to install
  • Comes with any number of graphical interfaces which can be selected with the click of a button
  • Has a massive amount of software support (editors, IDEs etc).

However, I recently determined that FreeBSD (an old love of mine) is required for my project, not due to technical reasons, but for licensing ones. If I was to modify the Linux kernel such that it served the purposes I need it to, then the GPL (GNU Public Licence) under which Linux is distributed would force me to release my software under GPL as well, and at this point in time I simply don’t want to do that.

I therefore recently took the plunge and spent a couple of days getting a nice 64-bit FreeBSD system set up. It took some tinkering and messing about with various configurations and drivers, but I now have KDE running at HD resolution, with Geany (my IDE of choice) and the various other packages I use, all running fine.

The final step was to tweak my code to compile cleanly under Clang (as opposed to GCC) and I couldn’t be happier with the result, so now I’m in FreeBSD heaven again (I always did love it) and working towards getting my project to the point where it can take on some commercial viability.