Monday, 17 October 2011

TFD hits the nail on the head. Again.

First off, Drew read my mind regarding the entitled attitude of the 21st Century:


Secondly, holy shit, was 1981 really 30 years ago?

Thursday, 13 October 2011

A Sad Day Indeed

Last Saturday when we were all looking the other way, one of the Titans of computer science left us. If there's anybody I would aspire to emulate, it's Dennis Ritchie. The man gave us C and Unix, and really, the entire idea of portability sprang from his lab. Every aspect of modern computing - save networking - is a descendant of his work in some way.

Bon Voyage Dennis, you were one of the great ones, and you'll always be my hero.

Friday, 7 October 2011

Sometimes the latest and greatest just isn't

Is it just me?

Thunderbird updated the other day, breaking yet another one of my plugins. I think they're all kaput now. Thanks, Mozilla. iOS 5 is coming out soon, which means we have to tear around and make all of our apps "compliant" or they'll get pulled from the AppStore. Thanks, Apple. We're mostly moved onto Blogger, and that's fine, but now my RSS feeds are all hosed (TBird thinks all the imported entries have the same date), and there's no option to have more than 25 items in the feed. Thanks, Google.

Everybody's in a hurry to update their software, but nobody gives a shit about what people already have in place. I'm all for progress to a point as long as it doesn't involve discarding everything I have right now. Everybody beat up Microsoft for years for doing this, yet for some reason we've all decided now that it's a perfectly acceptable practice.

Screw that. Stop breaking your software. You're not going to inspire much loyalty to your brand if moving to another system is just as easy as upgrading yours. And increasingly it is.

Wednesday, 5 October 2011

Friday, 30 September 2011

Just so you know

I injured my right ankle some (~30) years ago, and it hasn't been right since. I must have twisted it in my sleep or something the other night, because I've been gimping around on it all week, and it's getting tedious.

If I ever hear anybody use the phrase, "It's just a sprain", or even worse, "It's just a bad sprain", I will pin them down and give them "Just a sprain".

Thursday, 22 September 2011

My Old Nemesis

xkcd reference

I'm not really writing any Python, but I've been having a similar feeling lately about an old nemesis: Java.

There's been some Android talk around the office lately, and while I did do an Android port of one of our games, it wasn't the best experience. That's not Java's fault, it's the fault of the original programmers, who apparently thought that C++ was the only language they - and everybody else here - would ever need. People who aren't well-versed in all the languages that you might use in-house shouldn't write libraries, or at least they shouldn't design them. But I digress.

As I mentioned, there has been talk. We have partners (who can't be named) that are interested in publishing on Android, so I've been doing some light R&D. No porting, no real direction, just checking the lie of the land. I have to say, I'm rather enjoying it. I still have plenty of legitimate concerns - they're legitimate in my head at least - but I'd forgotten how many wonderful high-level constructs are pretty much built right into the language.

Need threads? Have your class extend Thread. Most concurrency issues can be addressed with synchronized blocks, no need for mutexes. Ah, you say, but I don't want to have to create a whole bunch of threads all the time, that's expensive. That's ok, Java has ThreadPoolExecutor. You want fries with those worker threads?

We use a lot of JSON round here - XML is so last decade - and it turns out there's a parser built in. Tick that box. Oh, and we use http as a transport for that, and of course that's been present for years, thanks to Apache. Redirects are handled automatically, and all the compression/encryption functions are also in there, and they "just work". If you just need to show the user a web page, they've got a webkit and you can just slap a browser window right there on your view.

All the usual hardware geegaws are exposed for you - USB, BlueTooth, Wifi, accelerometer, audio. And you're not left just sitting there having to figure those out, there's high-level classes to assist you - gestures, audio fx, sip, telephony, the list goes on.

I've also discovered all sorts of nifty things that have been in Java practically from the start, but was too green (or too stubborn) to use. Container classes out the ying-yang. Object serialization. Reflection - are you kidding me? I still struggle with the I/O stream hierarchy pretty much every session (what do I need here? a BufferedArrayInputSequenceFileStreamReader? what does that even mean?), but the docs are almost always helpful, and eventually I figure out the right thing.

I guess the bottom line is that the honeymoon period for me and programming is over, and I'm finding myself seduced by the higher level concepts that come with Java, and not with C. It might be all the PHP I've been writing for the last year and a half, but the appeal of the low level isn't what it used to be.