Alec the Geek

or “My big fat geek’s blogging”

Wake up before Apple just replaces M$?

Apple Climbs Into Third Place In U.S. PC Market

Now that there is an AppStore with applications in iTunes, why wouldn’t Apple move next to distribute all applications through iTunes

A very cogent comment from ionix5891 on /. warning us no to sleep walk into the arms of another monopoly power. As I said before, Steve Jobs can be a very scary guy!

Personally, now that Ubuntu 8.04 (or Spiny Norman as I call it) is so polished I’m not feeling such an urgent need to rush back into the arms of Cupertino. Mr Shuttleworth may have made life a lot less exciting, but now it all ‘just works’. Well, except for some proprietary media formats still.

Having said that, the family is still happy plugging away on the iMac (except when my son wants to run games)

18 July 2008 Posted by Alec | Business, Linux, Mac | | 2 Comments

Handy Hack: Enter the office lottery syndicate with Perl

If you are asked to chose numbers for a lottery here is a rather inelegant hack to create some entries. Assume you need x numbers from a range of a to b inclusive then run this program as

./lottery.pl  a b x.

#! /usr/bin/perl
#

our %dup;

our $lower = $ARGV[0];
our $upper = $ARGV[1];
our $needed = $ARGV[2];

for (1..$needed) {
    my $x = int(rand($upper-1)+$lower);
    if ($dup{$x}) { redo }
    print  "$x \n";
    $dup{$x}++;
}

16 July 2008 Posted by Alec | Perl, ego | | 1 Comment

Top Tip: Long flights across the Pacific

Here in Australia it takes us over 14 hours to fly to America and there are a few little wrinkles and things you can do to help make the trip a bit easier. There are of course many, many, other sites on the intertubes with further suggestions:

  • Invest in some decent carry on luggage so you don’t need to wait at the luggage carousel. It can be a long wait and if you do an internal flight as well that’s twice you need to wait for your luggage. I carry a laptop rucksack and a small suitcase — I can live for weeks from that. If you are travelling to West Coast US on business then you never need a suite or tie anyway.
  • Copy the details of your passport, flight number (or use your boarding pass), return dates and hotel address into a sheet of paper so that you can fill in your US immigration and customs documentation. Also have a pen handy
  • Ask the cabin crew if you can get your US forms as quickly as possible during the flight. It’s easier to fill when you are fresh and less tired. NB This usually doesn’t work — they have a process and you can’t upset it!
  • Don’t eat too much before flying. It can make for an more uncomfortable flight and takes longer to recover from jet lag.
  • Take a plastic carrier bag with you and put your shoes in it, then place in overhead luggage bin. They are out of the way for the rest of the flight, easy to find at the end and you don’t upset other passengers rubbing your dirty shoes on their luggage
  • Collect as many of the travel amenity kits as possible whenever you travel and carry one or two in your hand luggage. This is useful for two reasons:
    • You can change out of your shoes and into flight socks before settling down
    • Far fewer flights now offer these kits anyway
  • Try and sleep if possible (I never can)
  • I always find it hard to work in economy so make sure you don’t have expectations of getting lots done
  • Use a lip salve and skin moisturiser if needed

11 July 2008 Posted by Alec | Work Practices | | 1 Comment

Top Tip: Cygwin Perl has problems running with UNC path names

When running Cygwin Perl using libraries that live on UNC paths (e.g. when running prove with the -l option) Perl will croak because it is unable to load the library. An example error message will look something like:

t/00.load.............Can't open perl script ""-I//server/sharename/work/mymodule/lib"": No such file or directory

The fix is to map the UNC path to a drive letter and use the Cygwin mount point (e.g. ‘/cygdrive/z/work/mymodule’) as the path instead.

The command is

net use z: '\\server\sharename'

10 July 2008 Posted by Alec | Perl | | No Comments

Handy Hack: Force cpan utiltiy re-run the configure questions

When you first the cpan command line utility it asks you a rather tedious list of questions about your setup. Occasionally you need to go through it all again. Use the command ‘o conf init‘ at the cpan prompt to force this behaviour.

9 July 2008 Posted by Alec | Perl | | 1 Comment

An easy way to document process

What is a “Lightweight Ticket Process” ? « Alec the Geek

Document the process in some fashion. A process that is not documented can be very hard to talk about, agree and improve.

Following on from a brief twitter conversation with Kate this morning here is a simplistic example of how I currently document processes. The motivation for this approach is:

  • Simple to edit and and maintain
  • I hope simple to read and understand (even if you are not technical)
  • Can be used as the basis for detailed work instructions

8 July 2008 Posted by Alec | Application Lifecycle Management, Software Configuration Management, Software Development, Work Practices | | 1 Comment

Why don’t people take notes?

Keeping a log book « Alec the Geek

[record] All work and development related telephone calls, conversations and meetings

I am often disappointed how often people fail to takes notes during conversations and meetings. This seems to be such an elementary part of working with people, remembering the information they provide and decisions jointly made. However for many it’s just not part of their working culture and it often seems to lead to sloppy thinking (something you can’t afford in the details based world of software development). I’ve already mentioned in a previous post what should be maintained in a log book, but just to satisfy me, I’m going to outline how to record information during a meeting (NB This is not the same as taking meeting minutes):

  • Record the date, purpose and attendees. If the meeting is off site (away from your normal place of work) then it’s often a useful memory jogger to note location as well.
  • Briefly note:
    • the topics being discussed;
    • any issues or problems;
    • facts;
    • further information (e.g. explanations, follow up references);
    • Next Actions for you (i.e. anything you need to follow up)
    • Any decisions made

Use any note taking techniques that works for you (e.g. a mindmap). These are private notes

24 June 2008 Posted by Alec | Work Practices | | 3 Comments

Having fun with robots on the Intertubes

The British rail system has deployed a web based interactive robot, called Lisa, to help people with rail travel enquiries. Much innocent fun can be had if you are not busy. For example…

You asked: Are you a train spotter?
Lisa says: I’m not a Train Spotter. But I do have some guidelines for railway enthusiasts, if you’d like to take a look?

You asked: Does it include how to avoid dressing in an anorak?

Lisa says: I’m afraid my specialty is travelling by train and I cannot answer questions about clothing.

You asked: But I need to meet girls and want help on how to dress

Lisa says: If you let the Train Operating Company know you’ll need assistance in advance (ideally, 24 hours before), they can usually arrange for staff to meet you at your departure station, accompany you to the train and see you safely on board.

24 June 2008 Posted by Alec | Web | | No Comments

How not to live by your own rules (or are you *really* listening Steve Ballmer?)

Bill Gates’ 4 golden rules at Microsoft - Jun. 20, 2008

Gates’ 4 golden rules

Fortune Magazine reports on Bill Gate’s supposed four core beliefs that Microsoft lives by, you can read them at the above link. However, as an outsider, I think there may be a little self delusion going on.

  1. Think of software as a utopian tool” — unfortunately it’s very hard to understand what this rule means in terms of the companies behaviour and sounds a lot like hand waving. Are MS telling themselves they need to keep looking for new markets? How does an employee use this rule to guide what they do?
  2. Let the engineers rule” — given some of the  buggy software has been shipped all too frequently by the Redmond giant  it often feels to me that it’s the accountants and product managers who actually make the decisions with little regard to the reality the engineers are facing. If that is not the case then the suggestion would be that the engineers more  focused on the value of their share options they should be, hence software going out the door before it’s ready.
  3. Institutionalize paranoia” — Given the pressure that MS has faced over the last few years from legislators, the Internet, Apple and Open Source software then this has to be a clarion call for survival, as it should be in any commercial organisation. File this under “Motherhood and Apple Pie”
  4. Invest for the long term” — makes good sense for any organsation that can afford it, but Sharepoint is still a piece of crap even after all that long term investment. Being cash rich helps of course, but the investment needs to be nimble; long term; and contantly reviewed. Does Microsoft meet those objectives?

Elsewhere Fortune reports that MS will ’soon’ be starting a campaign to fight against the highly successful Apple Mac ads. However the Apple ads have been running for two years now — this is hardly the ‘agile’ business response of an alert, “paranoid’, organisation. Thirty years ago I suggested the fall of IBM and the idea was considered risible; well I believe, and have for some time, that the same thing is happening again. Just wait a little…

[Updated July 2008 after internal Oracle articles implied this was a less than professional piece. Many thanks]

23 June 2008 Posted by Alec | Business, Personal Opinion, Windows | | No Comments

Take 2:What I add to Windows that helps make it better

Essentials to make Windows almost bareable « sinewalker

a list of what free software to install on top of Windows, and what adjustments to make, so that at least I don’t feel like I’m wearing a straight jacket

Some excellent ideas and suggestions from Sinewalker here. I posted my own list of Windows essentials back in 2002 and I’ve been thinking for some it’s time to tidy the list up a bit since the world has moved on so here goes:

Software development related:

Desktop and Misc

Security

All of these tools are free of charge and many are Free software, which helps with the budget. However please consider a donation if it’s asked for and you can afford it.

In addition I change the default XP theme and use Windows 2000 as it takes up less screen space (or least it feels like it does) but use the ‘modern’ start menu.

19 June 2008 Posted by Alec | Personal Opinion, Software Development, Windows, Work Practices | | No Comments

Don’t create slides when you should be writing documents

Presentation Zen: “Slideuments” and the catch-22 for conference speakers

insisting that presenters submit their “PowerPoint slides” for inclusion in a future conference booklet or future download from the conference website, conference organizers force their speakers into a catch-22 situation. The presenter must say to herself: “Do I design visuals that clearly support my live talk or do I create slides that more resemble a document to be read later?”

I think Garr is being rather charitible. At work I am increasingly being given slides deques when I should be getting documents and it seems to be for the following reasons:

  • If I write a document then that will require the generation of substantive content. However people don’t expect many words on a presentation slide
  • Slide deques aren’t proper documents so I won’t have to place them under document management
  • I know I’ll need to stand up and present this stuff sometime so I’ll write the material once (see above)

So how do you fix this?

  1. Plan and structure your document (if PowerPoint works for you here fine)
  2. Write the document using the appropriate text or word-processing tools
  3. Create the presentation from the structure and content of the full paper

Thanks to Claudine for sending me to the original article

18 June 2008 Posted by Alec | Personal Opinion, Work Practices | | 1 Comment

Alec’s “stream of consciousness” posting set-up

A long with a lot of other sad people, I have been throwing my random thoughts onto the intertubes in the belief that they are of interest to people. In order to maximise the spread of mental drivel and minimise the effort involved I have spent far more time than I should investigating and setting up (playing with) various services and feeds to spread my ‘goddness’ far and wide. Here is how it works

  1. I have conversations on Jaiku
  2. I use twitter to hit as many people as possible
  3. Friendfeed allows me to see information from many more people than Jaiku
  4. ping.fm allows me to post to Jaiku, Twitter and facebook
  5. ping.fm also posts pownce, tumblre, plurk, Identi.ca and myspace but that’s probably a waste of time although I do have a limited number of followers there
  6. I do not post to LinkedIn as sometimes my comments are not that professional :-)
  7. Both Jaiku and Friendfeed also receive feeds from my WordPress blog, my Flikr photos, del.ico.us book marks and my dugg stories

So I monitor friendfeed for the ‘big picture’, post to ping.fm and watch jaiku for interesting conversations.

17 June 2008 Posted by Alec | Web, ego | | No Comments

Bloody hell! Yet more marking drivel trying to sound like meaningful English

Rebel Virals

Remember: a strong seeding strategy will not only ensure upfront buzz, but will phase activity to sustain momentum over time.

Don’t these people learn to use English properly in between making videos at art college during their multi-media marketing ‘degree’?

Death is too good for them!

12 June 2008 Posted by Alec | Personal Opinion | | 2 Comments

Another lesson from Gordon Ramsay

Software development the Gordon Ramsay way

I often enjoy watching Gordon Ramsay’s Kitchen Nightmares and I’ve wondered if his approach could be used to illustrate common problems with software development.

  • It doesn’t matter how good a consultant you are or the advice you give — the customer is always free to ignore you

11 June 2008 Posted by Alec | Business | | No Comments

Handy Hack: Display WordPress post title correctly in Jaiku

When displaying your WordPress blog RSS feed (e.g. http://alecthegeek.wordpress.com/feed/, as given by the RSS button on the lower right of this page) in another tool or website, it may be that each entry has the name of your blog where you would expect to see the post title. In that case change the feed URL to http://alecthegeek.wordpress.com/?feed=rss (…?feed=atom also works).

Tested using Jaiku, but I’m guessing this applies in other tools that consume feeds

6 June 2008 Posted by Alec | Jaiku, Web, Wordpress | | 2 Comments

How to recruit technical staff

In my previous post I derided the value of using personality testing in the recruitment process, so what’s the alternative?

The problem is people:

  1. People want to recruit people they like and they tend to like people like themselves
  2. They lie
  3. Too much of the decision is based on non-factual body language communication

So what’s the solution?

  • Have the candidate interviewed by a range of staff — both senior and junior, from a variety of backgrounds; not just technical. This can also be a great way to help develop juniors.
  • Allocate sufficient time to probe in detail the candidates experience and claims. Never accept the first answer but follow up and seek more and more detail (I will often repeat this 5-6 times on a single initial question) until it’s clear what the truth is
  • Have some tough technical questions that are hard to answer correctly and discuss the question with the candidate — the objective is to discover their ability to think logically rather than arrive at the correct answer
  • Have some simple questions in the candidates supposed field of expertise and see how many they can answer. No discussion is required unless it might be useful to discover why the candidate gave a response that was different to the anticipated answer
  • Never provide questions that can be answered ‘yes’ or ‘no’ and always follow up on simplistic answerers
  • Be open and honest with the job requirements and ask the candidate how they think can fulfil them. Follow up on these statements: ask for examples in previous jobs; seek justification for statements etc
  • When investigating ’soft’ skills such as people communication skills or project management discuss examples from the candidates past and their feelings about the experience. Again, keep probing.
  • Discuss real world work scenarios and the various options they present. This demonstrates thinking as well as communication skills

2 June 2008 Posted by Alec | Work Practices | | 1 Comment

The role of psychological testing in recruitment

I was catching up with an school friend over Skype last night and discussed her work on the psychology of workplace recruitment and how effective personality tests are in the recruitment process. I’ve never been happy with such tests for a variety of reasons:

  1. The state of the art is not sufficiently advanced to understand the complexities of the human personality
  2. The testing I am familiar with attempts to reduce what complexity it can measure to a few simple axis for comprehension by an untrained recruiter (i.e. people like me)
  3. There seems to be no published consensus on the quality of testing
  4. The tests I have seen are culturally biased as they demand a good understating of the nuance of English language. In the last set of interviews I did I interviewed over 15 candidates, only two of whom had English as a first language
  5. The tests are expensive to purchase and administer

So in my next post I’ll look at what I do instead of personality testing to try and create some rigour in my recruitment process.

2 June 2008 Posted by Alec | Business, Personal Opinion, Work Practices | | 1 Comment

Customer service in Australia

Aide-mémoire: Musings on Customer Service

After reading this I was chatting with my pal Peter over lunch and we agreed that Australian customer service is generally pretty poor. There are only two organisations here that would inspire me to recommend them: Cliftons and Entity Solutions.

Peter and I have both used Cliftons over a number of years in multiple locations with staff in diverse roles and levels of experience. Every time we have found them helpful, very committed to solving problems, empowered to get to the solution and a pleasure to work with. The service is not cheap, but is worth every penny. To create such a team means that you must recruit the right people, train them to be empowered and provide affective processes and support to help them do their do the job. What is impressive is that Cliftons have done it consistently over several years in diverse locations — I’d love to know their secret sauce. I suspect it’s just plain hard work on the part of the senior management team to continually improve, review and manage.

Perhaps they could run a training course on how to do it.

(BTW the point of this post is not to provide puff for Cliftons but to get people started thinking how to create and maintain great teams as judged by your customers)

31 May 2008 Posted by Alec | Work Practices | | No Comments

Handy Hack: How to configure the cpan utility to use Windows proxies

When using cpan.bat the following may be helpful. Please note that this is for a Windows corporate network infrastructure and was tested using both Strawberry and Cygwin Perl in the current network environment where I work. YMMV!

BEWARE THAT THIS APPROACH STORES YOUR LAN PASSWORD ON YOU LOCAL HARD DISK. THIS IS INSECURE!

Step 1: Information Gathering

  1. Discover the address of your proxy: If using a PAC file (look in IE Tools->Internet Options-> Connections -> LAN Settings and identify the setting ‘Use automatic configuration script’) then download the PAC file and open in a text editor. The default proxy address (e.g. proxy.corp) and port (e.g. 80) will probably be at the bottom of the PAC script. If you are not using a PAC script then the proxy address will be in the LAN Settings dialog.
  2. Know your domain name (e.g. corpdom) and lan ID (e.g. lanname)
  3. You will also need your lan password (e.g. secret)

Step 2: Configure CPAN

  1. From the command line ensure that you running the correct version of perl (perl –version)
  2. run the command cpan
  3. You may be asked some configuration questions — answer as best you can and take defaults if not sure
  4. At the CPAN Prompt type the following commands:
    1. o conf proxy_user corpdom\\lanname (NB Double slash required)
    2. o conf proxy_pass secret
    3. o conf ftp_proxy http://proxy.corp:80 (NB No trailling slash on URL)
    4. o conf http_proxy http://proxy.corp:80 (NB No trailling slash on URL)
  5. Now try and install something (e.g. i Bundle::Perl::Critic)

[Update: July 2008 -- tested on Strawberry and Cygwin Perl. See also]

29 May 2008 Posted by Alec | Perl | | No Comments

Handy Hack: Can’t run perldoc on Cygwin

When running perldoc on certain Windows systems using Perl under Cygwin it is possible to get an error message

Error in tempfile() using ./XXXXXXXXXX: Parent directory (./) is not writable

This is more likely to happen if your system has been ‘hardned’ by a corporate IT department. The fix is as follows:

  1. Make sure $TMPDIR is defined and points to somewhere sensible (e.g. $TMP)
  2. Make sure you have read/write permissions (chmod 777 $TMPDIR)

28 May 2008 Posted by Alec | Perl, Windows | | No Comments