I recently got back from my first holiday in several months, it felt really good! I spent a week in Cape Town and half a week in George. I've put some photos up on my Flickr photostream. More to follow.
Communication. The only real reason humanity wasn't wiped out millennia ago by some catastrophic event (like a flock of doves flying overhead) is because we have a guardian angel. Communication. If it were not for not for someone shouting "Watch out!" our forefathers could have easily walked off a cliff and plummeted to their untimely (and wholly unnecessary) demise. Thanks to those handy road sign things, I may never have to find out what it's like to unsuspectingly drive into incoming traffic. Communication is like the hardhat of mankind. Fact Fiction Fact.
Human communication, like electronic communication, has a bandwidth, some forms have significantly more bandwidth available for use and some less so. To draw a comparison, communicating via email is rather a lot like trying to get a spade down your throat: pointless and painful. Communicating via telephone is a step up from email but is still like a midget giving birth to a dinosaur. These things are just hard to do, it's hard to communicate even a vague idea of your meaning in words. It's not that you just need to think a little bit harder or put some more effort in, no, these are hard things to do. Some people spend years getting university degrees in communication just so that they can really convey what they mean over low-bandwidth mediums; you know, things like "So what do you want changed?" "Can you make the text purple instead of black?" I mean, I'm certainly no expert on this and there are probably a thousand things wrong with those sentences. So what now? Are we doomed to never communicate at our full potential? No, there is a divine solution. Meetings.
Meetings are great, the face to face kind, they're high-bandwidth crackdens Edens. You can do all sorts of fancy high-bandwidth things that you just can't do over email or the phone, things like waving your hands or tapping your pen on the desk. These things are important because they really communicate your motives, they're like the Plaster of Paris for language. The next time you really screw up your sentence, try waving your hands a bit, raising your eyebrows or winking; suddenly, and I like to call it magic, those looks of absolute confusion will turn into looks of zen-like understanding. Meetings practically obsolete email and telephone conversations, just think: a waste of time activity probably thousands of years old is obsoleting modern day technology! Rather phenomenal stuff!
All in all, nothing says "I'm a bonehead businessman" like a meeting (almost) half a state away.
So, about 2 months ago my Logitech MX518's right mouse button died, it just stopped working one day. I'm a fairly avid FPS player and play online quite frequently, having a dead right mouse button (which is my jump button, incidentally) helps me nothing at all. What all this means is that the mouse is effectively useless to me without a working right mouse button, a mouse less than a year old, a fairly high end mouse; a bit pathetic, if you ask me.
After changing back to my MX300, as a temporary solution, I realised that going down the DPI ladder was much harder than going up it and now I've decided to give the Razer Deathadder a go. One of the hardest things about the Deathadder is actually procuring the damn thing, I've been waiting about 4 weeks now and nobody appears to have stock of the mouse. DEAR SUPPLIERS, I AM NOT A BUSINESSMAN BUT ACCORDING TO MY RESEARCH I THINK YOU WANT TO GET SOME STOCK TO SELL SO THAT YOU CAN FEED YOUR FAMILIES. LOVE JONATHAN.
Up until recent months, I'd been using FeedReader to keep track of my RSS feeds. While not completely terrible, it had enough annoyances for me to start looking at other readers. Enter Google Reader, which has so far been a relatively (searching/filter posts would be a very welcome feature) pleasant experience. Something that FeedReader used to do was a toaster pop-up with information about new or unread items, which is a reasonably useful feature as I'm not able to look at my feeds as often as I'd like to, so I wrote my own notifier.
I am aware that others exist, but they are either crap or a Firefox extension. As I don't always leave my browser open, I decided to make it a notification icon and I decided to code it in IronPython, as a little exercise and because it was the easiest. Simple enough to use, make sure you have (at least) IronPython 1.0 installed, run it with ipyw.exe grnotify.py (to avoid leaving a console window behind), set up the options and you're done. You can "install" it to your startup folder by running it with ipy.exe grnotify.py -install. The source is available in my darcs repo at http://slipgate.za.net/~korpse/darcs/grn.
Once upon a time I wrote about a piece of software of mine, a stack-oriented file renaming tool. I thought this was rather nifty as I have only ever seen the regular-expression-hell approach to renaming files where you have a regular expression that can actually cause grievous bodily harm, you use this to (hopefully) match the parts of the filename that you want to keep (or alter) and then construct your new filename from these components; all in all, a bit like drying yourself off with a vacuum cleaner.
Often you actually want to perform relatively complex tasks on some of these filename components, like "proper" casing a title or looking up a TV episode name from the season number, show name and episode number. In these situations, a stack-oriented approach gives you better flexibility because you can program the behaviour (assuming a reasonable set of basic functions) with something a little more sturdy than regular expressions
After working on my original code a bit more, I found I could leverage these strengths to do a lot of really repetitive work for me, such as renaming TV episodes and so rn was born. You can run an rn script over a given set of filenames and have it work its magic, which is obviously where you can save yourself a lot of time and effort. My pride and joy is my TV episode renaming script, it's process is as follows:
- Split a filename into it's useful parts (series name, season number, episode number) according to a set of regular expressions that match the most common naming conventions.
- Query tvrage.com's "raw data" service with the information we have.
- Rename the file according to the data we get back.
My cellphone plays an important role in my job, it allows people to wake me up at early hours of the morning and to interrupt me during work or play. Without these two crucial things I might actually be able to get more done, needless to say, this is unacceptable. So what happens when my old service provider, who thinks that microcell coverage is overrated, and my old Nokia 6230i, who thinks that battery life is overrated, team up on me? I run off into the night screaming, randomly murdering homeless people, as well as getting a new phone and a new service provider.
Enter the Nokia E65. While my old phone was just slightly thicker (and narrower) than the E65, it was enough (when combined with the other stuff in my pocket) to make everyone think I was happy to see them. The 6230i was also excruciatingly slow at doing the most common tasks. Series 60 is a reasonably impressive OS and not too chunky, although it does a good few things that I have no intention of ever using. I'm pleased by the fact that I don't have enough tasks to saturate all the special keys and shortcuts, so I can pretty much get to anything I want in fewer than 3 key presses. Visually, the E65 has a pleasantly simple appearance (mostly due to the fact that it's a slide phone) and attractive two-tone colour scheme.
I'm not usually one for gimmicks but the conference call features are rather cool. The most interesting use of this is when you are dealing with multiple calls. For example, I call Joe to find out if he wants to go kill homeless people with me and then (while I'm still busy with my call to Joe) Patrick Bateman phones me, I press the conference call button, the two calls are merged into one and we all discuss in a 3-way conversation how to get the most fun out of our evening.
I'm grateful to Nokia for leaving stupid things out, like front-facing cameras, and all in all I'm happy with it so far. Only time will tell whether I stay happy with it or not.
You again?
So, after 2 (or more?) attempts at running my own blog I'm just going to give up and use an online service. As you may (or may not) have noticed, my other blog has been down for a number of months, it died a horrible horrible death and this is how it happened. My previous blog was written in Python and used the Django web framework and requires a web server to host it, I opted for Apache and FastCGI (like the website suggests doing.) By some series of fortunate events this daisy chain of retardation actually worked! That it is to say, it worked until someone exploited FastCGI and broke everything. Needless to say, Colin and Tristan were troubled by this event and so they banished FastCGI to the fiery depths of the Netherealm, never to be heard from again.
So why use a service?
Well, I recently realised that as far as blogs go, I'm really just more interested in having one that works and I'm not prepared to run third-party blogging software (like anything involving PHP and MySQL) and set it up and so forth. While designing the thing was fun, writing the thing with Django was less so. I looked around at other blog services, and really didn't feel like I needed to spend any money to spread my lies around the Internet, so here I am.