Self Serving Blog Twaddle

Trying my hand at podcasting

The closing stages of úll earlier this year featured two podcast recordings, live with the Unprofessional and The Talk Show guys. We were all in the audience, in the events room at Odessa, which happened to have a bar, and, well, we were all delighted, tired and emotional after a while, and in that fertile ground for promises and good ideas, the thought was thought - we should do this!

And, surprisingly, it happened, and you can subscribe to the first Verbose podcast. There's a twitter account @VerbosePodcast and an app.net account @VerbosePodcast for further firehosery.

The podcast itself is a rambling country garden of stuff, mostly themed around iOS and iOS development, but we pick up on other things too, like Google I/O and some of the nuisances of making software.

Yes, we will do better on the sound next time around! Sorry!

Hobbit IMAX

The Hobbit, in IMAX, was fantastic. Drain all bladders before taking your seat: there is something like 166 minutes of film, preceded by 30 minutes or more of trailer, ads, and the usually turgid mush about the mind-splittingly good technology that is going to make your experience unparalleled. 

Before we get into a brief description of the thing, I'd like to note that the Hobbit probably represents the only new estate in big budget blockbusters - all the trailers here were for reboots: Superman (again), Wizard of Oz (a sequel), Star Trek (OMFG again). 

This Hobbit screening was not only IMAX, it was 3D, which is generally of gimmicky quality. This, however, was very good - I couldn't suppress a flinch at an incoming spear during the Star Trek trailer, and there were times when it appeared you were looking through a hole in the wall of the cinema rather than at a screen. No doubt, the 48fps had something to do with this. Pan shots were very smooth and there definitely was a parallax-scrolling effect going on during the wide travel shots.

Top tips: Do not sit near the front. You will be too close to the screen and you won't be able to see the edges. Do not move your head around, the 3D effect appears to be delicate and even a moderate tilt will blur out parts of the picture. Do not bring excessively small humans, they have tiny internal waste storage spaces and may cause you to miss chunks of the movie when they need emptying. Do not bring a picky perfect recall of the book, loads of original material has been packed in to make a solid movie from what is really a short book constructed for the appreciation of young readers.

About twenty minutes from the end, the sound and picture streams de-synched at our showing, but by giving us free IMAX tickets for another show, the management of the cinema forestalled the impending torches and pitchforks mob. 

Take the top tips above and go see it.

Dear @monkchips

Dear @monkchips

Thank you for a exemplary conference experience at Monki Gras during a chilly and bright London January. You went deep on the craft theme and I think that resonated strongly with everyone there, because those people who were there loved and cared so much about what they do. That was the first thing that set it apart from ‘regular’ conferences.

Also there was beer, but not a surreptitious beer, not a beer that was pale and fizzy and gullished without pleasure by braying middle managers with grotesquely tumescent bellies and swollen man-boobs. This was a first-class beer that was knitted into the fabric of the conference and reflected the craft theme, that an attendee could openly savour in company in the noonday without fear of a judgement of functional alcoholism (to borrow a phrase from @jasonh). This was another welcome distancing from the mainstream, albeit I thought I had been mugged after checking my wallet post the Craft Beer Co. experience - though is the welcome price we pay for quality.

At this moment, in an echo of the event itself, I am writing this letter, drinking a craft pale ale in a craft beer pub that has newly opened across the road from my office, a whole 45 metres away from my desk. I feel that these echoes will continue to reverberate, perhaps to the detriment of my deadlines.

Let us return to the conference.

The food, made fresh in front of our eyes, the specially roasted coffee, the baskets of fucking fruit, all spoke to a care of consumption that really is usually ignored in favour of cost in our modern lives. Care and attention, @monkchips, care and attention to the smallest detail makes the picture whole and perfect.

In your carefully crafted environment, who could not be in a positive frame of mind, content and happy to be open and honest with their neighbor, even though they may be a temporary stranger? This brought the best out in the already well-qualified and excellent speakers, brought out the humour, brought out the honest expression normally present among a group of friends rather than between a conference speaker and conference attendees. I cannot speak for others - but forty minutes into the first day I was in the front row wishing I was up there giving a talk. What a crowd!

And your conference was filled with wonders - the .gov.uk affair was heart-stopping in its implications and amazing in the fact that it actually happened; - the data pretties entranced us and were in a second breath laid bare as shams if presented without context; - kittehs masqueraded, unchecked, as chikins; - the bombshell that companies get the UX they deserve was dropped; - machines with software that killed people were wheeled out; - the dysfunctions of technology executives were outed without ceremony; - the list could go on, if it weren’t for the line drawn under it by that 9.5 ABV beer, the name of which escapes me entirely.

This letter has just about reached its limit. Let me finish by mentioning that most important aspect of conference-going - personal relevance. I’m a technical co-founder, and my work life is trisected equally into states of euphoria, all-consuming flow and cold panic. At your conference, listening to the experiences and the judgements of those who have treaded this route before, I experienced an enormous feeling of validation - that I haven’t chosen the wrong technology stack; - that I’m not totally crazy for attempting to do what I am doing; - that these people have tried and succeeded and are not that different to me after all: and for that, especially that, I thank you and your team.

all the best Oisin

p.s also - phone is teh awesome :)

CoderDojo Dublin

There’s been some buzz about CoderDojo in the news recently. The CoderDojo was founded by James Whelton in 2011 to introduce kids to coding at an age when they are still in school, in an environment that supports learning. With support from Bill Liao, CoderDojos have sprung up in nine locations around Ireland.

This is relevant to my interests, and I wanted to see what the whole thing was about. To get in, you need a kid, so I brought the ten year old rugby fanatic that hangs around my house and eats the food. He chose the Programming Games with Python session - no doubt wanting to fulfill his dream of getting a decent rugby game on his iPod touch at some point.

Let me digress briefly on the subject of teaching kids how to manipulate computers with software code. We use physical tools to supplement our physical selves - pushing a nail into a piece of timber with your thumb is rarely successful. We need to use computational tools to supplement our own mental computing capabilities and allow us to enhance our reasoning processes. We are already equipped to pick up a hammer, see a nail and get a fair idea what to do next, but pick up an iPod Touch and put a rugby game on it? It’s not obvious how to get there, so instruction is required. And instruction needs to be imparted early, not because we want to make more developers, not because we want kids choosing a career in coding, but because we want to give them the tools they need in the 21st century to allow them to take advantage of every opportunity that comes their way.

Back to the dojo. Our host Eugene had his work cut out for him: 25 or more young humans, with vastly different capabilities in the area, short attention spans and different laptops all around. I decided take Mr. Rugby ahead with a copy of a simple Python text game involving choosing a cave and hoping the dragon therein doesn’t eat you, taken from the syllabus book.

The programming journey went like this - at each stage we thought of a goal and massaged the existing code and added new code to get to it. The kid did all the typing, saving, running, copying, pasting. I just pointed out now and then similar chunks of code that he could reuse and got him through any blocks.

  • I say - let’s extend the game from a choice between two caves, to a choice between three.
  • Kid says - let’s print out which cave was which at the end of the game, so you can see which was the right one.
  • We discover that strings and integers were different :)
  • We discover that when one chooses three random numbers in the range 1..3, there’s a good chance two will be the same, and it doesn’t make sense to have a bad dragon and a good dragon in the one cave - they are territorial.
  • Kid surprises me by coming up with a simple but effective way to make sure that the numbers wouldn’t clash, and we implement it - without using the modulo operator
Then we were done with where we wanted to go. Eugene was taking the kids along, helping each individually if he need to do so, and going down the same path initially, making an extra cave in the game.

But our local journey hadn’t finished after all. The kid had decided that now it was time to do some visuals and had sketched out a picture with three caves with numbers over them. Here’s where having a software savvy dad and the internet is a win: we grabbed a free pixel art program, muddled out how to use it, and while he drew the screen, I frantically researched free Python game libraries.

Aside - before we got onto the visuals, I spotted a few areas in the code to put in a couple of for loops, and suggested we ‘tidy up’ the code a bit so that I could show these and explain them. Why? was the response, the thing worked didn’t it? The important thing at this point is to shrug and agree - the lad is not a professional coder, he doesn’t need to refactor, he just needs results. In fact the whole thing needs to be results-driven. This is why you use a tool - not because it’s lovely or elegant or makes you feel special, but because you have a job to sort out. Then you put the tool down. It’s only when you get trained in how tools work can you start making your own tools. cf. lightsabre etc

Eventually I stumbled over pygame, which turned out to be just the tool we needed. We made a plan to write a small programme to try it out, and there was palpable excitement when our extremely amateurish drawing of caves popped up, surmounted by a hand-scrawled Danger!! sign.

Screenshot of game

On the way home on the train, we designed an rugby-themed 8-bit scroller for the iPod Touch and set up the kid’s github account. When we arrived home the kid insisted, with uncharacteristic determination, that we finish the Dragon game - adding keyboard control, putting in dragon graphics, conveying the result visually. Next challenge: the rugby game. Yikes!

Very little of this article has been on the details of the CoderDojo, but you may have already realized how the CoderDojo was instrumental in making this tiny but important success work. It provided us (and I write ‘us’ deliberately) a place in which learning was the norm; it provided a place where myself and himself were on the same team working towards an external goal; it provided a place that wasn’t dominated by adults. And that last one is the key one I think.

Many thanks to Eugene and the team behind CoderDojo Dublin for their commitment and patience in putting the series together, they are providing an really valuable service, on their own time.

ESB Spark O' Genius

I don't write much about the Company, what with me being a self-effacing developer type with a disinclination to hyperbole. But we have an interesting week ahead of us. There are a couple of things happening -- the first is about learning: the first module of the iGAP3 Program, subject matter being Strategy. There's even homework! Due today! And it's not done yet! I'm writing a blog entry instead -- classic displacement activity. Provided I don't have to wear the cone of shame, I'm looking forward to the session. The second thing is about exposure: we've entered Vigill in a number of these startup competitions, one of which was the ESB Ireland Spark of Genius, which is inextricably connected to the upcoming and massively hyped Dublin Web Summit.

As an aside, if you bump into me, don't ask me how and when and what we did -- if it's not a story on Trello or a ticket at Assembla or a strange MongoDB query or trying to do capacity analysis for cloud service pricing, it's difficult to get my attention these days. I'm merely the development angle here. Barry spins the visions and Helen hunts down and corrals the customers. Myself, more than ably assisted by Steve, has to make sure that the services don't break and that we can make good on our promises and that there's some kind of costing and schedule that makes sense.

[caption id="attachment_519" align="alignright" width="300" caption="The Brownies of Reward"]The Brownies of Reward[/caption]

Back to the competition. Last Friday we went out to a big lawyery place on St. Stephen's Green with nine other companies to pitch to the judges in the semi-final stage of the Spark of Genius. Sitting in the Green Room there was a noticeable lack of G+Ts, but plenty of coffee, which was no doubt fuelling the nervous tittering of the individuals that were there to show off in front of the panel in the boardroom.

The panel turned out to be a dozen people -- I still don't know who half of them were -- but we did our pitch, our multiply-practised 5 minute pitch, and then we toddled off, intercepted briefly by a posh lawyerly standup lunch and a bit of a hobnob with the great and the good.

Long story short, we just recently found out we had progressed to the final and there's a short article in the Irish Times with an overview of all finalists. I remember being told that one of the important goals when running a company is to keep the organization off the front page, but the technology section is good, apparently. Myself and Barry have lined the meeting room with whiteboards and are bursting our brains to try to come up with a good presentation for the final which is on Thursday 27th at 1515 on the main stage of the Dublin Web Summit. Follow the @_vigill tweetstream for more information as it comes in.

Office Move!

J McNeill Pub and Music Shop

The good news today is that it looks like we’ve settled on an office in Capel St. as the place to grow the startup. You would think that getting space in Dublin would be easy - and yes, there is a load of office space available. You would think that you would pay a keen and competitive rate for it too, considering the depressed market, but on that point you would be very, very wrong.

We visited buildings that have lain vacant for two years and the lettors would refuse to lower their prices. This makes a sense in the most perverse way - the financial way, I mean - in that lowering the rental will automatically take value from the ‘apparent’ investment worth of the building itself. These guys are heavily delusional - and they are hurting startup businesses. A letter to Enterprise Ireland has been delivered by the usual suspects.





Back to the venue itself - we’re delighted that we are sub-letting a space from another technology company that are scaling up. I plan to pick those guys’ brains on all topics relating to making startups go.

Capel St is a fantastic street. There’s a mixed-use pub and music shop. There’s pet shops, pubs, camping stores, martial arts shops, adult naughty fun stores, Asian markets, Polish markets, Sari Sari stores, more pubs, chippers, more music shops, Asian restaurants and the highest concentration of Korean Barbecues I have ever had the privilege to see in one place.

The Boars Head Pub

Right around the corner is a large cinema, a gym, many second-hand book shops, an early-morning fruit market and 3fe, one of the best coffee shops in Dublin city.

If you go check it out on Google Maps, you will see the street as it was about three years ago, it’s changed a bit even in that short time. More restaurants, less headshops.

At this moment in time we are searching the skips and dumpsters of Dublin looking for furniture to put into this ex-Art Gallery space. Or maybe we are going to just visit Ikea, not sure yet. Once the furniture is in, I’ll be looking for developers to keep the seats warm :)

-0 for +1

Google has come up with some kind of a like-a-like called +1. For those who may have not been part of an open source development community, ever, you need to know that this convention has been in place since the internet was a child, and Google’s arse was the size of a button. The full remit of of the taxonomy goes thusly

  • +1 - I agree, and thanks for saving me the typing
  • +0 - I don't really care, to be honest, but slight preference on it happening rather than not, i.e. I'm emotionally content to be part of the majority here.
  • -0 - I've no argument one way or the other, but I dislike change, and if there's an issue I'll veto this bastard.
  • -1 - THIS IS THE DUMBEST IDEA I HAVE EVER HEARD. I CANNOT BELIEVE THAT YOU HAVE THE BALLS TO BRING THIS UP WHEN YOU KNOW THAT EVERYONE THINKS IT IS STUPID. Divers alarums, lying down in the road and Godwin's Law ensue (exeunt omnes)

Missing in Action from EclipseCon 2011

EclipseCon 2011 started today, with an awesome program of events going on over the week. I’ve attended the previous four instances of the conference, and had the signal honour to have been the Program Chair for EclipseCon 2010. Now, alas, I’ve lapsed. Instead of getting a nice easy job after my release from Progress last year, I’ve foolishly decided to startup a software business with a couple of guys. I hope this adequately explains my somatic non-presence at this years showcase of what’s wonderful in the Eclipse world. For example - if I was in California today, I would not have been able to load the mobile part of our product on the phone of a friend-of-a-friend who just happens to be attending a concert with the CEO of a division of a large cellphone company, with instructions to show it to this CEO and get a meeting for us. But if I was in California today, I would be enjoying beers with lots of people that are much smarter and much more dedicated than me.

It’s always a tradeoff.


Now that I have a brand new ‘user’ perspective, and am on the outside looking in, there are a few items within the Eclipse Ecosystem that are particularly interesting.

  • EGit - I’m using git exclusively now for source code control, and having good support is very important. I think that the real decision-maker on using git all the time are hosting services like Heroku and Nodester adopting git push workflows for application deployment.
  • DSL-based mobile device project scaffolding - projects like Applause and Applitude, both based on Xtext and mobl, based on Spoofax, can give you a chunk of starting point code to get your mobile application up and running on the cheap. I haven’t taken as much time to study these as I want to - a future blog entry I think.
  • Orion - when I first saw the Bespin project, which then merged with Ace and is now the development-as-a-service Cloud9 IDE, it failed to stir me. However, when I started doing some node.js project experiments, then the option of being able to edit your JS code through the browser suddenly had more appeal, precisely because now you can edit server code. It will be worth a blog entry in its own right at some point (aside - Mr. Orion, @bokowski, just linked to another one, Akshell, a minute ago)


I just realized the other day that the last piece of Java/Eclipse a programming I did was in July 2010. Since then I’ve been in this dual world of the mobile app developer - programming native code on iOS devices, programming Rails 3 and node.js on the server end of things, pushing data into PostGIS and Redis. I didn’t think I would end up here, but it’s been fun so far :) As to the future, I’ve refused to plan anything beyond world domination for the moment. But maybe I can get an Orion talk accepted for EclipseCon Europe

Twitter Shuts It Down - but they ain't got me yet.

From Twitter’s new close-down terms of service for their API:

5. (e) You may not use Twitter Content or other data collected from end users of your Client to create or maintain a separate status update or social network database or service

which I interpret as - you can’t write a twitter client and then post anything through that client to any other service. What I think this means is that when you make a twitter client, all it can do is read/write twitter and read from other data sources. This effectively shuts down the development of any differentiated application. I’m not sure that the sweeping ownership statement of ‘other data’ is any way enforceable, but it doesn’t have to be - Twitter runs this here town.

Update: - Yoink! Twitter has yet to shut down my badly-programmed and disrespectful web client that translates your tweets (badly) to a Scottish accent - http://tweiter2.heroku.com/.

Sparrow - a new Mac Mail Application

I really try to steer clear of blogging about individual pieces of non-developer-oriented software, but I'm making an exception for Sparrow, a new Mac-based frontend application for Gmail. Screenshot with privacy-enhancing blurs below.

Sparrow Screenshot

I guess the first question is, why don't I just use the browser of my choice to read email? Well, it's because I don't like using the browser to read email, thanks. And since I have a number of Gmail accounts, Sparrow makes it much easier to switch, with its Tweetie-like interface.

It's very early days for this client, so there are some glitches and sometimes the UI feels a little slow during sync. I can forgive that for a work in progress. It's now up to the developers not to screw it by adding in piles of unnecessary features. Watch the Sparrow blog for details.

Oisín's Precepts Version 1.0.qualifier

I'm making a set of precepts that I'm going to try and stick to from a professional engagements perspective. These have been very much influenced by Uncle Bob - especially his keynote for EclipseCon 2010, which provided the inspiration to put these together in this form - and of course by the many mistakes I've made in the past, which is what we call experience. So, in no particular order:

Don't be in so deep you can't see reality.

If you haven't communicated with a user of your software in over a month, you could have departed the Earth for Epsilon Eridani and you wouldn't know.

Seek to destroy hope, the project-killer.

When you hear yourself saying well, I hope we'll be done by the end of the week, then you are officially on the way to that state known as doomed. If you are invoking hope, trouble is not far away. So, endeavour to destroy hope at every turn. You do this with data. Know where you are - use an agile style of process to collect data points. Iterate in fine swerves that give you early notice of rocks in the development stream.

When the meeting is boring, leave.

Be constructive about it, however. You should know what you want to get out of the meeting. If it's moving away from what you are expecting, contribute to getting it back on track. It won't always go totally your way. If you can't retrieve it, then make your excuse and leave.

Don't accept dumb restrictions on your development process.

Pick your own example here. Note that restrictions can also take the form of a big shouty man roaring the effing developers don't have effing time to write effing tests! (true story that).

There must be a Plan and you must Believe It Will Work.

This is pretty simple on the face of it. One theory on human motivation includes three demands - autonomy, mastery, purpose - that all need to be satisfied to a certain degree before one is effectively motivated (see Dan Pink's TED lecture). If there is no plan, or the plan stinks like a week-old haddock, then the purpose element of your motivation is going to be missing. Would like to earn lots of money, work with fantastic technologies and yet have your work burnt in front of your eyes at the end of the month? I wouldn't.

Discussions can involve shouting. That's ok, but only now and then.

Without extensive practice, humans find it difficult to separate their emotions from discussions, especially when there is something potentially big at stake. Just look at the level of fear-mongering that politicians come out with to influence voters. There will be some shouting - expect it - but it's not right if shouting is a regular occurrence.

Refuse to commit to miracles.

How many times have I done this already over the last eighteen years? Ugh.

Do not harm the software, or allow it to come to harm through inaction.

No making a mess - your Mom taught you that. Stick with your disciplines. Don't let any one else beat up on the software either. It's your software too, and hence your problem if it is abused.

Neither perpetrate intellectual violence, nor allow it to be perpetrated upon you.

Intellectual violence is a project management antipattern, whereby someone who understands a theory, or a buzzword, or a technology uses this knowledge to intimidate others that do not know it. Basically, it's used to shut people up during a meeting, preying on their reluctance to show ignorance in a particular area (this reluctance can be very strong in techie folks). Check out number nineteen in Things to Say When You're Losing a Technical Argument. Stand up to this kind of treatment. Ask for the perpetrator to explain his concern to everyone in the room.

Learn how you learn.

I know that if I am learning new technologies, I can do it best provided I have time to sleep and time to exercise. I also know that my learning graph is a little like a step function, with exponential-style curves leading to plateaus. I know when I am working through problems and my brain suddenly tells me to go and get another coffee, or switch to some other task, or go and chat to someone, it means I am very close to hitting a new understanding plateau. So I have to sit there and not give in :) I also know that I need to play with tiny solutions to help me too.

You have limits on overtime, know them.

This should be easy for you - if you are tired, you are broken. Don't be broken and work on your code. Go somewhere and rest. Insist on it.

Needless to say at some point in the future this post will come back to haunt me I am sure. But I'm hoping that if I produce a little laminated card with these precepts on it, keep it in my wallet, then I'll at least not lose track by accident.

Advice for Industry from Colm Tóibín

The Guardian online edition recently published a two-part article called “Ten Rules for Writing Fiction”, which polled a number of well-known writers for their ten, or three, or one, rules that they apply while plying their trade. Colm Tóibín’s ten I particularly liked, and they apply well to personal industry in general:

  1. Finish everything you start.
  2. Get on with it.
  3. Stay in your mental pyjamas all day.
  4. Stop feeling sorry for yourself.
  5. No alcohol, sex or drugs while you are working.
  6. Work in the morning, a short break for lunch, work in the afternoon and then watch the six o’clock news and then go back to work until bed-time. Before bed, listen to Schubert, preferably some songs.
  7. If you have to read, to cheer yourself up read biographies of writers who went insane.
  8. On Saturdays, you can watch an old Bergman film, preferably Persona or Autumn Sonata.
  9. No going to London.
  10. No going anywhere else either.

Of course, rules are not for everyone. For some, a simple dictum is all that is necessary to provide guidance. I think Helen Simpson summarizes it best with

The nearest I have to a rule is a Post-it on the wall in front of my desk saying “Faire et se taire” (Flaubert), which I translate for myself as “Shut up and get on with it.”
To which it might be useful to add, for balance, one from A. L. Kennedy
Defend your work. Organisations, institutions and individuals will often think they know best about your work – especially if they are paying you. When you genuinely believe their decisions would damage your work – walk away. Run away. The money doesn’t matter that much.

Blog Administrivia for 2010

New year, new blog theme, new content. This year I’m going to add more non-career-related material to the blog, primarily to keep me interested in doing more writing. You might like it too.

Intermittent Bug in Eclipse Community

This bug has been cropping up on and off since Eclipse 3.2. The usual pattern is that it becomes visible early in the year to the Planning Council, who immediately attempt to triage it and limit the potential solution space so that resolution can be made as cheaply as possible. Because Eclipse is an open organization, and is populated by humans, who are in the main scurrilous gossipers and rumour-mongers, awareness of the bug expands in the community as a whole. A Bugzilla is usually created to give the community the opportunity to cosmologically inflate the solution space through the time-honoured approach of getting your oar in.

Eventually, broad interest wanes, and the determination comes back the Planning Council again, who, disappointed that no really clear solution has come out of the community involvement, many eyes == many opinions it appears, just sigh and put a workaround in. Next year the same sequence of events occur.

This year, it’s bug 271054, but the problem is the same.

What do we call the next roll-up release after Galileo?

Comments about bike sheds will be modded up appropriately.

Blog move...

This blog is moving to http://oisinh.wordpress.com and will resume with a slightly different focus. See you there!