TTD is dead…

I’m a developer. I hate TDD.

There, I’ve said it, and it might jeopardise my future should I find myself looking for new developer positions, but it just sucks IMHO.

I see loads of developer posts being advertised, most with TDD as an essential requirement. I disagree – it’s one way to achieve good code, but has always seemed to me to be a big, fat waste of time. I guess it might be relevant for developers coming to a project cold, who don’t understand the data or the processes. My development (and I might have been extremely lucky here) has always been in a team where I’ve been able to visualise the product, the data, the use and the user (e.g. eBird, Bird Atlas 2007-11, BirdTrack).

I don’t think I’m alone in this view either:

  • What seems to be cited most often: TDD is dead. Long live testing.
  • A good closing statement: TTD or not to TTD – “If you have been writing tests and code in a language for a long time, it’s possible that you can start skipping TDD’s baby steps, and start trying to code the final solution from the start. Be aware! Sometimes to advance, we have to return to the basics!”

Of course, TTD is NOT DEAD, but I just choose to not implement it…

URL > Android app deep linkage test

Test links for deep links to/from eBird

Basic link:
http://spawny.org.uk/dilbert/

Scheme deep link:
ebird://loginscreen?id=test

HTTP host links:
http://ebird.org/ebirdmobilelogin?id=liveAccount
[Secure] https://ebird.org/ebirdmobilelogin?id=liveAccount

TEST HTTP host links:
http://test.ebird.org/ebirdmobilelogin?id=testAccount
[Secure] https://test.ebird.org/ebirdmobilelogin?id=testAccount

Pedders Way Ultra (January 2016)

Thought I’d post a memory here – my first Ultra distance run – Pedders Way Ultra (48 miles), excellently organised by Positive Steps. I felt so crap after 30 miles that I really thought I’d have to pack it in. Walk breaks and fab support by @juliayelloly kept me going though – 35 ex 130 runners, not too shabby for my first ultra, in 8:49:27! Good support from @Stevedred too, although he should have been effin’ running the damn thing as it was his idea for all of us to enter originally…

Fellow Tri-Anglian Vince Butler (@ironcockney) did stupendous, pushing through to 21st place in 8:24:40 for his first Ultra too, despite being a REALLY grumpy bastard at half-way…

New App – Bird Atlas Mapstore

I’ve long wanted to have the Bird Atlas 2007-11 maps available on my phone, when out in the field – and now I can (thanks to the BTO for letting me develop and deploy this through their channels, published 18/01/2016). It’s all offline, optimised to 100Mb space and contains maps not published in the book too. See details here

It uses an ExpandableListView and ListAdapter to open up available maps for each species, which then leads to an ExtendedViewPager and TouchImageView combination from Mike Ortiz, which makes the maps pinch zoomable with sensible constraints and actions. The ViewPager loads up to the max four maps at a time per species.

The user can also switch between BOU and Alphabetic species orders, and between the maps published in the book or all available species.

Sniffing HTTP requests from Android Apps

I’ve recently had a requirement to rebuild a clunky and inefficient Android App with only partial access to the codebase (layouts and assets, but no Java/Android code). One of the issues was the App was talking to an online database via HTTP POST and GET. I had details of the HTTP root URLs used, but not the specifics on the parameters or how it was formatted.

So after a bit of digging, I found Drony (Google Play link), a kind of log watcher that can show you the exact nature of the HTTP requests, and from this tool I was able to see the exact format of the keys and values for the parameters to upload and download the right information. Great tool, really saved me a lot of effort (and stopped me having to chase original developers etc.)!