A Personal Stack Overflow Milestone

2

In the grand scheme of things, ’tis but a minor achievement, but I was quite chuffed with myself this evening when my Stack Overflow reputation finally reached the 10,000 mark:

My girls made me a special “10K” cake to celebrate :-)

Kudos to Jeff, Joel and the team for creating a site that I have found engaging, entertaining and very useful for the last 3 years and 4 months.

Most-Read Posts 2011

0

Courtesy of Google Analytics, here are my top 10 most-read blog posts from 2011:

Posts published in 2011 only:

  1. Entity Framework Week Part 2: Conventions and Fluent Mappings (8 March)
  2. Entity Framework Week Part 1: Introduction, Configuration and Initialization (7 March)
  3. Entity Framework Week Part 4: Features and Further Investigations (10 March)
  4. Entity Framework Week Part 5: Concluding Thoughts (11 March)
  5. Entity Framework Week Part 3: Runtime Issues Encountered (9 March)
  6. Google+ – By Jove, I Do Believe They’ve Got It (7 July)
  7. It’s A Small World (9 April)
  8. Password Management for Mortals (28 August)
  9. American Express Statement Download Functionality (19 September)
  10. Schoolboy Error of the Day (17 August)

All Posts:

  1. Team Foundation Server – Sharing Binaries and Class Libraries Across Multiple Projects (17 March 2007, Last Year #1)
  2. A Serializable KeyValuePair Class (17 September 2006, Last Year #2)
  3. Entity Framework Week Part 2: Conventions and Fluent Mappings (8 March 2011)
  4. Spot The Misleading Graph (19 February 2007, Last Year #3)
  5. Is My String Empty? Some C# Performance Metrics (30 July 2004, Last Year #4)
  6. Postcode Validation (23 May 2007, Last Year #5)
  7. TFS: Using Alternative Diff/Merge Tools (19 May 2009, Last Year #8)
  8. MSB3247 – Dependent Assembly Conflicts (4 December 2008, Last Year #6)
  9. WCF – NHibernate Unit of Work Behavior (9 April 2010, Last Year #9)
  10. An MVC Gotcha and the PRG Pattern (9 April 2010, Last Year #14)

What I’ve Been Listening To In 2011

0

Courtesy of Last.fm, here’s what I’ve been mostly listening to during the last year:

Artists:

1. Mogwai
2. Manic Street Preachers
3. R.E.M.
4. Arcade Fire
5. British Sea Power
6. Belle and Sebastian
7. Morrissey
7. The National
9. The Beautiful South
10. Gene

Albums:

1. Arcade Fire – The Suburbs
2. Belle & Sebastian – Write About Love
3. R.E.M. – Collapse Into Now
4. The National – High Violet
5. Mogwai – Hardcore Will Never Die, But You Will
6. The Twilight Sad – Forget The Night Ahead
7. The Decemberists – The King Is Dead
8. Manic Street Preachers – Lipstick Traces
9. Britiish Sea Power – Valhalla Dancehall
10. Manic Street Preachers – Send Away The Tigers

Tracks:

1. The National – Conversation 16
1. Belle & Sebastian – I Can See Your Future
3. Håkan Hellström - En vän med en bil
4. Elliott Smith – Angeles
4. The Shins – Turn On Me
4. The Temper Trap – Down River
7. Benoît Pétré - Trouble Maker
7. The National – Anyone’s Ghost
9. Stephen Malkmus – Jenny and the Ess-Dog
9. Jack – Lolita Elle
9. Maxïmo Park - Questing, Not Coasting
9. The Decemberists – June Hymn

Some observations:

  1. The three artists I listened to most during the last year were also three of my favourite artists when I left university, fourteen years ago.
  2. The two albums I listened to most during 2011 are identical to those I listened to most during 2010.
  3. Perhaps I should make better use of my Spotify subscription to discover shiny new music, rather than simply listening to the same old stuff I’ve been enjoying for decades.
  4. The shiny new music that I have stumbled upon during the year has generally reached my ears via personal recommendation on Spotify/Twitter/FaceBook (thanks @rgarner, @johnconners!) or by computerised recommendation algorithms (thanks Spotify, Last.fm!) rather than through traditional sources (sorry, radio!)
  5. I do like my melancholy songs, and/or those that tell a story.
  6. Mogwai have still got it. With every record, they get better at being Mogwai.

American Express Statement Download Functionality

2

I’ve just been trying to download all my old credit card statements from the American Express website. That’s the kind of exciting life I lead.

I had hoped that this would be a fairly straightforward task, but every step of the process seemed designed to frustrate and annoy me, leading me to pen this quick list of a number of suggestions for how the functionality could be improved.

Here’s what the “Download PDF Statement” page on the Amex website looks like. Click for a larger version:

The first thing that irks me is learning that only my last six months’ worth of statements are immediately available for download – the rest must be requested and will be available 24 hours after ordering, for 14 days. Bear in mind that these monthly PDFs weigh in at about 30 kilobytes apiece. Is online storage really such a scarce resource these days? If Google can make up to 7622 Mb available for anyone who wants a GMail account, surely a company the size of American Express could find a couple of megabytes for each paying customer?

OK, so I have to request the statements. How do I do that?

You can order any of the statements listed below. To order, please check the appropriate box and submit your order.

Well, I want them all. But there are no bulk-selection options. I have to check each checkbox individually. Would it have been so difficult to add a control which toggled the state of every checkbox? Or maybe a checkbox next to each year which toggled the state of each statement within that calendar year?

Having carefully selected each of 61 checkboxes, I click “Order Now” and am presented with the following dialog box:

Woah, who said there was a limit of twelve months?! There’s nothing about this in the explanatory blurb inviting me to order “any of the statements listed below”. If such a restriction existed, it would have been nice to know about it before I checked 61 checkboxes.

Even if I had been forewarned about this limit – the American Express developers clearly understand the capabilities of client-side JavaScript, so it would have been polite to have prevented me from selecting more than twelve checkboxes, by prompting me and/or disabling the unselected checkboxes after I selected my twelfth checkbox.

By this time I’m pretty frustrated at the whole experience. I have discovered (the hard way) that it isn’t possible to download all my old statements, just the last six months’ worth, plus any other twelve of my choice. That seems a very strange business rule. Oh well. Twelve it is. I reload the page, select the most recent twelve statements, and click “Order Now”. A familiar dialog box appears:

What the?! But I have limited my selection to twelve months. I recount – yep, definitely twelve checkboxes selected – before resorting to viewing source and searching for “please limit”, which reveals the following function:

Yowza, an off-by-one error on the website of a financial services provider. That’s reassuring.

I give another sigh, uncheck one of my twelve checkboxes, and submit a request for the most recent eleven statements. The following confirmation message appears:

Notice anything odd? I almost didn’t – I was just about to navigate elsewhere when I noticed the text on the button on the left:

Request Another Statement

But I thought I was limited to selecting only eleven or twelve statements? It seems not – and indeed, the website lets me go round the bend loop another five times, picking no more than 11 statements on each iteration until I’ve eventually ordered all the statements.

Let’s think about this for a moment. There is no business policy preventing the customer from requesting more than eleven historical statements, and there are certainly no web/HTTP issues with POSTing a form containing more than eleven selected fields. Presumably then, there is some technical limitation deeper within Amex’s offline systems restricting processing to batches of no more than eleven statements. Why expose that technical limitation to the customer and force them to mentally perform the batching? Why not allow the customer to simply click a few buttons requesting all of their statements, and have some server-side code batch this request into multiple commands to downstream systems, if that is what is required? Shouldn’t web front ends be all about façades and anti-corruption layers?

24 Hours Later…

If you thought that would have been the end of my little rant, then I’m sorry to disappoint. But the usability of this functionality didn’t improve much when I returned the following day to download the statements that I had ordered.

Sure enough, the page listed individual hyperlinks to each statement that had been ordered:

Requiring 61 clicks, and 61 downloads of individual PDF files. Why so hard? Again, I turn my attention to how the mighty GMail works – when I receive a message containing multiple attachments I have the option of opening/downloading them individually or downloading a single ZIP file containing all attachments. It is the little touches like this that make GMail so enjoyable to use, and serve to embarrass other sites which omit the same niceties.

But hey, I finally got all my statements downloaded:

…and now I just need to write a quick little script to rename the files into a more useful format, say YYYY-MM! I don’t know about you, but I’ve never seen a benefit in sorting alphabetically by the name of the month.

On the face of it, then, the American Express website has provided exactly the functionality that I wanted – to be able to download PDF copies of all my historical statements. But the functionality has been designed and developed in such an ill-conceived way as to be unpleasant and time-consuming to use at every step of the unnecessarily long process.

Phonics

0

Hmm, so I see with interest that English five and six-year-olds are going to face a new reading test next summer. They will be asked to “read” a list of twenty made-up words “to check whether children can use their knowledge of phonics to de-code or work out words.”

I wonder if the list of pseudo-words will include ghoti?

Wacom Bamboo

1

Almost everyone who has wandered past the various desks that I’ve occupied over the last year has passed comment on my Wacom Bamboo Pen Graphics Tablet:

Wacom Bamboo

So, let me say a few words about my experiences with that.

For the longest time, I had been perfectly content to use various Logitech VX / MX mouses as my secondary input device, occasionally using a Microsoft Arc Mouse (very convenient to carry around in my rucksack).

But in the Spring of 2010, I developed a nagging pain in my right forefinger. It sounds silly and trivial, but over the course of a couple of months it developed from a barely-susceptible twinge to something that was genuinely impacting my life – I struggled to open Coke bottles or turn the key in our garage door’s stiff lock.

I turned for advice to Joe Steele, my personal guru of alternative input devices, and someone who I knew had previously suffered with RSI. Dr Steele confirmed that my symptoms mirrored those that he had experienced some years previously, and prescribed a course of two tablets – one for home use and one for client sites.

The Wacom Bamboo is an excellent piece of kit, and reasonably priced compared to other tablets and decent mouses. But it does take quite some getting used to. There is a knack to moving the pen around just above the surface of the tablet – a gap small enough that the movement is perceived by the tablet (and the mouse cursor moves), but without actually touching the tablet (which leads to dragging-and-dropping). This is particularly problematic if you venture anywhere near Visual Studio’s Solution Explorer – it was quite embarrassing how many times I checked strange folder/file moves into source control in the early days of my Bamboo usage. This acted as a good lesson to steer clear of Solution Explorer and get into the habit of navigating using ReSharper instead!

Overall, it took me a good few months before I was as fast and accurate using the Bamboo as I was using a traditional mouse. This could be quite frustrating when I just wanted to get something done, and on a number of occasions The Wife snuck into my office and caught me of an evening, guiltily risking my health with an old VX Revolution. As with many things, perseverance is the key – having Bamboos at both home and work certainly helped. Over time the pain in my finger subsided and has now disappeared altogether.

Two specific tips if you’re thinking of giving the Wacom Bamboo a try for day-to-day computing use:

Firstly, be sure to configure the device to use “Mouse Mode” rather than the default “Pen Mode”. Mouse mode “moves the screen cursor with a ‘pick up and slide’ motion similar to using a traditional mouse”, whilst Pen mode “sets the cursor so that its movement corresponds with the position of your Bamboo pen on the tablet – wherever you place your pen on the tablet, the cursor will jump to a corresponding point on the screen.” In my experience, Pen mode led to the cursor jumping wildly around the screen unless I gave consideration to where on the tablet I was placing the pen – a very unnatural experience after many years of using a “traditional” mouse.

Secondly, I suggest mapping the lower button on the barrel of the pen to the “double-click” action, as trying to emulate a double-click by tapping the pen nib on the tablet twice in quick succession is awkward – a problem which compounds if you need to perform many double-clicks, such as navigating around a file hierarchy in Windows Explorer.

I mentioned a few years ago that a keyboard makes a hell of a difference – well, it turns out that selection of secondary input devices can also make a huge difference to the long-term viability of a career, if you can invest the time to become proficient in their use.

Ben’s First Day At School

1

My little pumpkin started school today.

I couldn’t be more proud.

Isla, Rabbit, Daddy and Ben

Ben, Isla, Rabbit

Ben and Mummy

More photos are available via this Flickr Guest Pass. Feel free to add me as a Flickr contact to see thousands more.

Someone Send swiftcover.com’s Marketing Team a Calendar

0

So yesterday was the last Bank Holiday before Christmas, the kids go back to school in the next few days, and across the nation you can hear the sound of central heating systems creaking back into life. It’s all a bit depressing – unless you happen to be working for the slightly delusional Autumn-deniers in swiftcover.com’s marketing department:

swiftcover

Password Management for Mortals

3

This is a quick post aimed at my non-technical friends and family which I’ve been meaning to publish for some time. I am reminded of my intentions every time I hear someone lament that they have too many passwords to remember, or reveal that they use the same handful of passwords for all sites that they frequent (usually incorporating the names and birthdates of their nearest and dearest).

Do I need to recap why password reuse is a very bad thing?

xkcd792

(and it’s not just the black-hats you have to worry about, it’s the incompetent service providers too, as the recent well-publicised hacks of Gawker and the PlayStation Network have shown).

So, what is my suggested solution to this problem of the modern age?

I have long since given up trying to memorise passwords, or indeed racking my brain devising suitably strong passwords for each site I visit. There are many fine password management applications out there which excel at both these tasks – I use and endorse KeePass Password Safe, a free and open-source application which is available for many platforms, including Windows, Linux and Mac OS.

keepass

By saving my KeePass password file to my DropBox, I have all my credentials easily available from all the machines I use at home and on client sites. Both DropBox and KeePass have apps available on Android (and iPhone), so my credential management solution neatly extends into my mobile life (and means I always have a copy of my passwords to hand – useful for when evil clients choose to block DropBox).

Yes, I still need to memorise at least one password (to protect the actual KeePass file) – this is a lengthy pass phrase chosen using techniques similar to those described in this XKCD comic.

If you’re still relying on your grey matter to retain an ever-expanding list of passwords, I strongly recommend you consider offloading the burden to some dedicated software such as KeePass. Then take the time to visit all the sites you frequent and change your weak, oft-used passwords for unique high-entropy ones.

Amazon Recommendation Of The Day

1

I’m not saying that I wouldn’t enjoy watching Birdy the Mighty: Decode 2, you understand; it’s just that I’m uncertain how Amazon came to this conclusion based solely on my choice of secondary input device.

Of course, now that I’ve clicked on the DVD out of curiosity, Amazon’s homepage has me pegged as a veritable manga fiend…

See also – Amazon’s Uncannilly Accurate Recommendation Algorithm

Page 1 of 8612345»102030...Last »