Thursday, 27 November 2008

Guilty Pleasures

Dustin Marx has an excellent blog entry about Software Developers' Guilty Pleasures . It's a good read but I think he missed one :

Automating Chores That You Don't Need To
The old case of having a boring chore that will take anywhere from 30 minutes to 2 hours and spending four times that writing a piece of code or a script to do it for you.
Of course, if you ever need to do it again you'll be ready - if you can find the code, if the use case is close enough. if the data is alike enough, etc, etc......

Face it - coding was fun , the chore wasn't

Wednesday, 26 November 2008

XBox Update

Well, the old broken XBox didn't work and so far has resisted all my repair attempts. It was not as described on eBay ("3 red rings, never been opened") - it had marks around the latches indicating prior openings and the cpu heatsink clamps had rust on them (!) . Fortunately the sale of my Wii bought enough money to purchase a new Xbox and I can use what I have for spare parts, perhaps even a nice funky case respray and I've contented myself with a very bad ebay feedback for the con-merchant.

So what do I think of my 360 so far ? Well, in terms of pros and cons :

  • PRO You can use a USB keyboard for text entry ! I absolute hate using joypads and navigating around text entry controls so this really impresed me.
  • CON XBox live seems very picky about signing in - and I know my internet connection is sound. Speaking of connectivity ....
  • HUGE CON £60 for a wireless usb card ? Are you frakking kidding me ? Wireless USB doesn't cost that much you moneygrabbing little scrooges......
  • PRO Graphics are lovely - I suppose this comes of have TV scale resolution. I suspect my PC could blow this thing away on 640x480 resolution with all details at max.
  • PRO usb slots - 3 of them and works with standard USB hubs (and keyboards see above)- none of this special socket rubbish meaning you pay 300% for their own make of something. I'm really impressed by this.
All good so far although I'm really only playing rock band. At some point I'll play a Halo or a Gears of War game and try a mouse and keyboard for control. I've been told that will work - if it does then that will big a big win for the xbox in my book.

Friday, 14 November 2008

Turning Heretic

I want an Xbox. There , I've said it and it's out in the open. My friends already know, but its good to publicly declare it. I'm not going to turn into a MS fanboy - I still think their software sucks, but their hardware is surpising nice (especially the intellimice).

So , did I buy the arcade, the premium, or the elite ? No, I bought old banger that needed fixing. (Seriously, born 10 or 15 years earlier I would have spent my life as a garage mechanic fixing up old Ford Capris).

I picked up one for £30 on ebay that needed a 3 red light fix applied to it with the intent of fixing it and saving a few quid. These are harsh times after all, and the fact that buying one for a snap will give me some geek cred is of no importance to me at all.

Currently I'm waiting for it to arrive. I've got the fixing kit, a 20gb drive to go on it ( a steal itself, especially if I self upgrade that). I've even splashed out on a special tool to open it (£5, as opposed to £100 for a rockband instrument set , which is a necessity). Heck, I've even got a punch down tool to fix my home network wiring (because £50 for a USB wifi card is just too expensive).

All the bits are here except the box itself. I'll post back when it's arrived with my verdict on the fix.

Tuesday, 7 October 2008

Post Deleted

I've just read this article/blog entry (blogicle?) and it prompted me to write a few paragraphs about job satisfaction and knowing what you wanted to do in life.

I said one or two things that I probably shouldn't have but the large majority of it was general and unspecific. Unfortunately twelve people all thought I was talking directly about them and got offended. Either I know twelve clones or I'm not that good a blogger .

Sorry for any offense. Go read the link, it's really good and apologies to anybody I offended. It was unintentional.

Update
Actually Google's horoscope for today has a line says what I wanted to say in a far more succinct way.

The longer you can hold on to your dream, the better your chances are for realizing it.





Tuesday, 23 September 2008

Poor Mr. Yegge

Is there one skill that all professional programmers share ? Yep, its the ability to touch type.

This post on Steve Yegge's Blog argues that you can spot those who can't. He says
If you are a programmer, or an IT professional working with computers in any capacity, you need to learn to type

but frankly I've never come across anyone in the industry that can't touch type. Support, QA, trainers, heck even the newbie graduate in the little startup (the one who does all the work) can touch type on his first day.

The problem with Mr. Yegge's argument here is that non touch typers quickly become touch typers. I'd argue that
If you are a programmer, or an IT professional working with computers in any capacity, you will learn to type. You cant avoid it.

I spent a year on a ZX81 when I was 11 , then 6 years on ZX Spectrums after that. I could touch type on the ZX81's keyboard within 6 months - not fast mind you but I could type without looking at the keyboard (yes I'm being generous calling it a keyboard). You should have seen the speed of me (and my contemporaries) on the Spectrums old rubber keyboard. And today anybody using a computer for more than six months can touch type - even my parents can do it. The point is there is no way to use a keyboard day in and day out without becoming good at it.

Mr. Yegge then goes on to talk about programmers who cannot read. He's met or worked with programmers who couldn't read ? Sorry Mr. Yegge but no you haven't . You've met or worked with people who were hired as programmers but weren't - frauds in other words. No way, no how can you program a computer or any device without being able to read . (The only exception I know of is programming a Big-Trak and possibly the Lego Mindstorms brick with some child centric GUI). These people are bad hires, probably with CVs cooked up by agencies from the dirtier end of the agency curve ( and that's not a clean curve to start with).

You can see it in his post - Mr Yegge has had to work with ( and take up the slack for ) for someone who can't type, can't read and thus cannot code. Compensating for someone elses bad decisions.

Poor Mr. Yegge .

Monday, 15 September 2008

Management Patterns

You've heard of Design Patterns ? Common solutions to common problems. With the buyout of my employer nearly a year ago I've been seeing lots of new policies and practices come into play, many that echo Dilbert and this got me thinking: Could you classify some comming management techiniques or procedures into Management Patterns ?

I came up with a few examples :

Powerpoint Zombie Pattern
Used by upper level branch management or corperate management to disseminate information to lower level employees. Primary characteristic of this pattern is that the audience of the presentation find less than 10% of the information relevant and less than 1% of it usefull or new.
The powerpoint zombie pattern tends to occur in companies with 100+ employees or smaller companies that have been bought out.

HipNTrendy Company Pattern
Most often found in small startups. The primary focus is this pattern is energy - do something new , get it to market fast. Be the next Google ! We don't use the old tired ways that other companies do things - they lack our imagination.
Recoginisable characteristics of this pattern include casual or no dresscodes, open door policies, lower "start-up" level wages and promises of big payouts when the company eventually gets sold. Frequently develops into the Growth Spurt pattern.


Growth Spurt
You've started out with the HipNTrendy pattern and got a product out that the customers love (you've probably also adopted the Bend Over pattern for at least one customer). You see demand increasing and decided to add more staff to support it .
Primary characteristics include : New staff turning up every pay cycle, new customers getting signed up every week, boundless optimism, sunny skies and world peace.

Bend Over Pattern
There's this customer that has the CEO's ear and their word is law. DB code failing and app losing financial data ? Too bad, ImportantCo needs their 100% critical icon justification fixed first. If there is one company (or several) for which your company will given in and fold faster than Superman on laundry day for then your management is implementing the Bend Over pattern.

Titanic Pattern
You've been taken over or merged ! Despite management proclaimations of a brave new era of opportunity you see people leaving left right and center. The coming together of the two companies has been like the coming together of the Titanic and the Iceberg (and you're not on the iceberg).
Primary characteristics include : New mouse mats, pens, policies and more meetings. Departmental calendars suddenly contain a lot of single day holidays and you see a lot more people leaving the room to take calls on their mobile. Less work gets done and more people leave until the whole thing gets outsourced. The iceberg drifts on....

Frankenstein Pattern
Keep peddling a product that should have been put down years ago. Instead of listening to developer pleas to start again or to recode bits that are old and decaying you have to coble new features, even merging totally incompatible products and features into your product. Whatever happens, do not kill the cash cow.
Primary characteristics include : Your software has inconsistant icons and even spelling across multiple screens or windows. Developers spend more time fixing bugs than creating new features. Unit test coverage is allowed to slip and the roadmap changes so fast it's not on a wiki but on a whiteboard.

Thursday, 4 September 2008

Chrome Dome

Apparently every techno blogger worth any amount of salt is blogging about Google Chrome, so let me establish my condiment creditentials with a few words.

Pros


Cons


There is more I could write but frankly I'd just be repeating what others have said. I think I'll use chrome as my javadoc browser for now and keep firefox as my main browsers.

Wednesday, 20 August 2008

Singletons are misunderstood

This post seems to echo a meme thats been floating around the developer communit for the last year : Singletons are bad. ( If you don't know what a single is, check the wikipedia definition ) .

Now I disagree with this sentiment - singletons are not pathalogical liars, they're just misunderstood. Or, more accurately, they're frequently misused or misapplied. Often you see singletons used when a developer just wants to be lazy and do something in one line. Take the example from Mr Hevery's blog :

testCreditCardCharge() {
  Database.init();
  OfflineQueue.init();
  CreditCardProcessor.init();
  CreditCard c = new CreditCard(
    "1234 5678 9012 3456", 5, 2008);
  c.charge(100);
}


Database, OfflineQueue and CreditCardProcessor are both singletons that shouldn't be . In the example of Database you'll run into trouble with that mechanism extremely quickly if you ever need more than one database connection at a time.

However take this piece of code.

testScreenCapture() throws InterruptedException {
  ScreenCaptureRobot.setInterval(1000);
  ScreenCaptureRobot.start();
  Thread.sleep(1500);
  assertTrue( ScreenCaptureRobot.isRunning() );
  BufferedImage image = ScreenCaptureRobot.getLastScreen();
  assertNotNull( image );
  ScreenCaptureRobot.stop();
}


ScreenCaptureRobot is a utility class for taking screenshots at timed intervals. It should be a singleton - you wouldn't want multiple instances of this running (it would rapidly hog resources, on windows at least). It should also be coded with the following guidelines :


  1. You must comment and do so correctly.
  2. If you must call an init() method before calling a method then say so in that methods documentation.
  3. If a method is called when it's inappropriate to do so then it should return informative errors, not ambiguous general java exceptions.


In conclusion I don't think Singletons are pathological liars, they're just misunderstood. It's true they are too easy to misuse, and extremely easy to shoot yourself in the foot with, or at least other members of your team.

Friday, 15 August 2008

Ming the Applet

Can the Applet take on Flash and even kill it? Or will it become like Ming the Merciless, forever trying and failing ?

I must say I like the way things are going for the applet people. I became convinced this morning when I saw this posting in Joshua Marinacci's Blog about replacing the applet loading screen. It seems applets may soon be the John Travolta of the browser world, especially with java 6 update 10 coming real soon now.

When you add JavaFX to all this then applets are well and truly going up against flash in the browser space. But I have to ask the question : what is flash being used for that we want applets to do ?

1. Show annoying adverts with mosquito noises that turn users away from the page before they've read anything
2. Make the next StrongBad
3. Produce web games that help you not work on a Friday afternoon

I think the indie gamers will take care of number 3 and we're bound to see applet games making a comeback. I don't think we're going to see applet cartoons anytime soon, and I hope most java developers would rather gouge out their eyes than work on an irritating applet add that asked you to punch a gorilla or something.

I think (and hope) we see something new - desktop like apps within a browser. And, if I may be so bold, I'd like to coin a new term here and call them WebTop applications. Something richer than html/css/javascript stack, more consistant than flash and stabler than.... well applets as they used to be.

Go applets go !




On a side note, I think I should fess up and publicly recant my doubts about JavaFX that I've expressed to friends and colleagues . I keep seeing new posts, new articles and the buzz is building. It think JavaFX is going to make it and Sun isn't going to abandon it next Java One. I even saw a "Whats wrong this JavaFX feature" article yesterday, a sure sign of critical mass in developer mindshare.

Friday, 8 August 2008

What am I ?

I've got a blog ! Why ? Because I there are thoughts, musing and ideas I have that I can't cajore or force other people to listen to.

So I've just done the new user thing and edited by profile. All the usual stuff (gender, age, color of pants, etc) and, of course, "Occupation". Now I write computer software for a living. This used to be called Computer Programmer, plain and simple. But these days it's called Software Engineer, Application Developer or even [langauge of your choice] Guru by agencies or employers trying to appear more hip and down with da kidz than they really are. I liked Computer Programmer - it was descriptive, simple and dignified. I don't really consider myself an engineer and I think developer sounds a bit like a building company.

So what did I choose ? Elite Coder . I think that does it nicely.