Friday, July 27, 2012

I finally figured out what the point of Twitter is

I've had email and usenet access for a long time..., and I had CIX and CompuServe accounts before that (but I can't find any of those posts...)

I had an early gmail account (so I got to pick a sensible username).

I've always been in the innovator or early majority, so why not Twitter?

I simply didn't get it... why do I care that you burnt your toast this morning? why do I care that the train was late etc.

I won't pretend I was the Champion Skeptic, but I simply didn't get it.

I finally figured it out... I don't have to care about if you burnt your toast this morning... if that's what you tell me I'll unfollow you, but if your interests overlap with mine then you're helping me to filter the signal from the noise on the Internet, and downstream I can repay the favour.

Oh and the 140 character limit stops you writing war and peace, it stops the information overload.

I'm converted... I love Twitter.

Monday, July 09, 2012

The Happiness Door

This made me laugh out loud...

The idea of collecting all those things that really bug you, taking them outside and building a big bonfire of them :)

Not sure what I’d have as my kindling!

Having met Jurgen I can imagine him doing it... funny and irreverent as a speaker – if you get the chance, go see him.

Thursday, June 28, 2012

Balancing Agility and Technical Debt

Balancing Agility and Technical Debt or at least that was the title of the event I went to last night courtesy of the folks at CAST Software. What did we actually talk about? Lots of things:

  • If you’re going to do agile, do it, don't half do it and expect it to work
  • Call out the places where people are calling a project "agile" without following the Agile practices; when the project fails it be because it was "agile"
  • If you can only have the product owner one day a week, you can only develop one day a week
  • Jenga as an analogy for technical debt – each iteration you push another piece out of the tower; either you rebuild your tower as you go, or know that down the line you’ll have a massive rebuilding exercise
  • Engagement with the business is paramount – if you’re not engaging every day, you’re not agile

One really interesting thing everyone should read – System Error: Fixing the flaws of Government IT. I’ll pull out just one line:

We recommend that government adopts a much more agile approach to IT for one simple reason: it works.

I won the evening’s prize... A little light bedtime reading?

Friday, May 25, 2012

Navigating JAXB

Oh what a lot of time we've wasted on this...

We ran into the <... minOccurs="0" nillable="true"> minefield this week... We've a Java CXF client talking to a (by way of what's effectively a proxy) some services delivered from a third party. The WSDL exposed by the server we were talking to had minOccurs="0" nillable="true", the downstream service was insistent that we not send a tag if it was nil (using the XML serialisation), only of course by saying minOccurs="0" nillable="true" the server we were talking to allowed two representations and CXF/JAXB picked the wrong one.

So we fixed the WSDL (and then got all confused because no one had changed the embedded version...) and then started discovering all sorts of things we didn't know before!

Number one – if you've a JAXB binding file and are using generateElementProperty, it looks like it's Boolean, but actually it's tri-state... confused the ... out of us for a while – more details here.

Number two – if you've got an element you want to be nil, don't even initialise the member... if you're running with generateElementProperty absent or false, you'll get empty tags generated even where minOccurs="0", not initialising the member at all will omit the tag.

Thursday, May 24, 2012

CloudForce London 2012

Spent Tuesday at CloudForce... what a buzz about the place – like a show from the heyday of the 16 bit home computer era.

The big story of the show was Chatter, connect it to everything, build communities in it, see your timeline, you name it, it's in Chatter; the possibilities are endless. An ESB is the obvious integration technology – subscribe to some interesting business feed, have it call out to the Chatter RESTful API and start pushing real time business object chatter into a group.

Social was everything – Rypple for a social approach to objective management looked so much more engaging than anything I've ever seen before.

Heroku is a Salesforce acquisition, still hosted on Amazon (no really...) with an interesting deployment model ("git push heroku master"). Looks really interesting, still not sure about their Java deployment model – we seem to expend way too much effort understanding dependency problems, how you'd debug that when your deployment platform is compiling for you, I'm not clear; maybe we're doing something wrong...

Interesting tidbit – Salesforce have an internal Intranet... it sounds like it's like every Intranet you've ever see, static and out-of-date – Chatter and other real time feeds are what folk are using as their landing page; Burberry have switched – Chatter is their Intranet.

Oh and I defy you to get this track out of your head if you were there...!

Thursday, July 07, 2011

How hard is migrating SVN to GIT... a zillion posts all of which half work. Here's mine... the heavy lifting is done by these scripts (I'm assuming a static users.txt - I'm pulling from a corporate AD to build mine):

(cd /tmp && git clone
git svn clone --no-metadata --prefix=svn/ --stdlayout --authors-file=users.txt https://svn/project project.git-svn
cd project.git-svn/
PATH=/tmp/git-svn-abandon:$PATH git svn-abandon-fix-refs
PATH=/tmp/git-svn-abandon:$PATH git svn-abandon-cleanup
git config --remove-section svn
git config --remove-section svn-remote.svn
ls -RC .git/svn .git/{logs/,}refs/remotes/svn/
rm -rf .git/svn .git/{logs/,}refs/remotes/svn/
git remote add origin ssh:// 
git push --all
git push --tags