perjantai 27. kesäkuuta 2014

"Old" and "young" programmers

I started programming more than 20 years ago now, maybe 25. I don't really count the early meddling with Sinclair Spectrum's basic, or later with GW Basic programming since although I was learning something I didn't really have any grasp on topics so I don't think that really counts. It was only later when I "outgrew" those and moved onto Pascal (Turbo Pascal more specifically) I started really developing as developer.
What originally pulled me in programming was games (surprise! yeah, not really). I just wanted to create something like Ultima V (first game I really finished, albeit with some external help since my English was pretty bad at the time). Back then I was just struggling with very basics of GW Basic so anything serious was way out of my reach, but anyway, I dived in with enthusiasm, never really planning ahead, just starting to write code with nothing more than vague, not-really-fully-formed idea what I wanted to do. And that was fun!

Granted, ofter I ran in unexpected problems, like after I wrote a full game engine but kinda missed writing in the actual game. But it looked good (and still does, even today, even if it's just 320x200).

Then came the professional era. Apparently some people have energy to work with their hobby projects after day of work, but I've found out that I'm not one of them. After full day of coding (and I was full-time coder for a long time) I just didn't have any energy for side projects.

Fast forward to this day. Occasionally there are times there's no need to even think about the code at work so after day or two of that I find myself interested of working on my own projects again. There are few ideas (games) I've been toying with, in my head, for a long time so now that I could do hobby programming again I started with them.

But now there's something fundamentally different.

I just can't dive in anymore like in those days long gone. I need a plan.

That's the difference. The young me could just dive in, start writing code, then rework (I don't want to use work "refactor" here, that concept is too sophisticated for situation being described) until it did what was needed - and typically nothing more.

The old me just can't do that. Here is problem at hand - the game is in 3D world with objects, both static and moving - and right here my mind immediately starts breaking this in smaller parts. World itself, models moving in it, how to make it efficient, and everything related...The depth of the problem is opening in front of my mind eyes, and seeing everything that needs to be done appears to be a very strong demotivator. So much that needs to be done before there is anything... And this is ignoring all the cool stuff shaders can do that I'm not even aware yet.

I didn't really realize this when doing work stuff. Most likely because the change has been gradual. But since I took a very long break with hobby projects the change there is quite glaring, which made me to come to this (most likely overly simplified) realization:

Young coders will dive straight in with enthusiasm. You give them a problem and they go for it, producing a lot of code in short time. Lots of code, lots of check-ins, lots of hours worked and low pay. As a company you'll love these young guys!

Old coders plan. You give them a problem and few moments later they come back to ask questions. Questions you didn't really want to hear, like operating constraints. Details that should be irrelevant by business standards. If they are really experienced they want them in writing, as official specifications. Damn these annoying geezers, why can't they just do what they're told...

Do I regret becoming "old"? Hell no. Life's too short to (re)write same poorly thought out code half a dozen times.

Albeit sometimes I do miss the simpler times.

sunnuntai 22. kesäkuuta 2014

Paperclip to the rescue!


Somewhat offtopic, but ain't I feeling like regular MacGyver now.

I just took a vacation. With small children this means lots of props, including the stroller (or cart, whichever term you prefer). Strollers, of course, are large, heavy, unwieldy and in general a PITA when flying.

Just when I stepped outside the terminal at the destination with my luggage on other hand and stroller on other the strap of the stroller bag broke. So here I am, in 28 degree Centigrade heat, in middle of thousands of other busy people, just in front of terminal doors, with now even more PITA-ish stroller on ground. Damn.

One thing I never travel without is some sturdy string (I'll get to some other necessities a bit later). I was almost opening my luggage to dig for it when I noted a large-ish paperclip on the ground, in exact same position the stroller broke on. At least some luck!

So, just few bends and moments later the bag was almost good as new.


This wasn't the first time traveling with that stroller, so it had taken some beating already. When packing stroller for return trip I noticed that zipper was broken too - the metal part that moves (no idea what that is called) was completely gone. No idea when that had happened, but it was useless. So moving on to necessity number two when traveling : duck tape (or duct tape, again whichever term you prefer, personally I call it "jesari" ("jesus tape"). End result was not pretty but at least it kept stroller and all its parts (wheels primarily) together during return flight.


While duck tape may seem like something you almost never need, it's this kind of situations where it's priceless to have. Just like that string, Leatherman, small flashlight, some spare large plastic bags and now my newest addition to traveling list: paperclips (or some metal wire, but I think I prefer paperclips). (my complete luggage checklist has grown over the years and is now almost 50 items long. Lot of that is stuff that is only needed in some regions and it has also includes passports, tickets, money, clothing, toiletries and so on, so mostly to remind me when packing)

Even more off topic, but it's too bad I didn't take photo of my luggage case some years ago after returning from Berlin - it was so completely destroyed that I was amazed. I still have no idea how they even managed to beat it that badly, it looked like someone had hit it with a large hammer. Repeatedly. Finnair replaced it, (almost) no questions asked, but like with insurance, doing paperwork, dealing with customer service, getting replacements and so on - it all is always such a  hassle.

Oh, and one more thing: No matter where you travel, always - always - have your hotel's business card with you. This I learned in Cambodia when trying to communicate address to toothless, cossack-looking taxi driver late at night. In the end I had to give him directions (with hand gestures) through Phnom Penh (luckily the route was easy), but at least I didn't have to walk.


tiistai 10. kesäkuuta 2014

SLRs and protectors

I love SLR cameras. Whenever I have to use a camera that doesn't give me full "artistic" control, I always - always - end up disappointed ("artistic control" in this control means that I prefer M/Tv/Av modes (as Canon names them) - full manual, manual exposure time or manual aperture). Granted, I have tendency to "tweak" parameters when it not necessarily even needed, but when lighting is difficult those controls are absolutely vital (see recent attempts on LED matrix - granted, it's difficult even with SLR, but completely impossible with usual "point-and-shoot"s).

Some years ago I splurged and bought Canon's EF-S 17-85mm lens with image stabilizer to replace the standard kit lens (18-55mm I think, without stabilizer, I think newer kits come with essentially same lens but stabilizer included but I didn't have one) - the price was about 700-800€. Since then that has become lens I use most of the time.Granted, it's kinda big and heavy, so sometimes it's just easier to use small "point-and-click" type camera -- or even phone.

Since the lens is quite expensive I added "protector" filter on it. If you are not familiar with SLRs let me explain this a bit (I haven't been keeping up with recent progress so it might be that this has come to lower end cameras as well). Lenses typically have threads in front and you can screw in a filter. It can be polarizer (before you ask, no, this really can't be done in post), colorizing filter (this you can do in post so these aren't too popular today), some gradient (say, darkening bright sky, usually quite difficult in post) or whatever. Protectors are kind of filters that are basically just glass - no effect, only very minor loss of light. Most of the the time they are there, doing nothing, but every now and then they will save your day. Say you are receiving end of baseball throw gone awry. Normally ball would shatter your lens and possibly your eye (read: you'll get black eye when camera body hits your face). Protector will take the hit and most likely save your expensive lens, while being destroyed in process. Yay! (you'll still get that black eye from camera body but at least lens is saved!).

They also protect your camera from other unexpected threats. Like toddlers.


This was some time ago when small one was learning to walk. I stupidly had left my camera on (smallish) table and of course he pulled it down. It landed on floor lens-first. Ouch.

The protector took the hit. Glass shattered and metal frame was slightly bent at the point of contact - just enough that I couldn't just screw it off (random scratches you see on that are from pliers, trust me, I tried) but eventually I had to dremel (cut) it off. Very very carefully, of course.

So this is why you want use a lens protector. That 20€ piece of metal and glass took the hit so my 700€ lens could live on. I of course had to get new protector which is screwed on that lens even now, waiting for it's time to shine. I just hope that moment never comes, but you just never know.