End of year review 2014

This year has been one of disruption on the home front, but in a positive way. We decided to replace the main bathroom in the first half of the year but that was really just a taster for the main project of building an extension onto the back of the house. Where we had a small kitchen and a dining room that we didn't really use very much, now we have a large kitchen diner family room that we spend the majority of our time in. It was the first time I'd tried to do a project of this scale and for the most part it was remarkably smooth. Though we were so glad when, in November after three months of work, we finally got rid of the building team. But having just done our first Christmas in the new room, we really couldn't be happier with the changes. 

The new room after 4 months of work

The new room after 4 months of work

It did mean that there wasn't as much time for other things as I would have liked. I realised a couple of weeks ago that I only took two weeks off work for the year, this is not enough, and will be resolved in 2015!

That being said, I worked far more from home than previously so I got to spend much more time with the family. I'm really incredibly lucky to be able to wander downstairs from work at 5:30 and spend a couple of hours with the toddler before she goes to bed of an evening. Unbelievably she is already 2.5 years old. 

On the work front 2014 has seen significant change. Domino work has become much more limited in its scope and volume. But it's given us the opportunity to do something that we've been wittering about for a long time. Earlier in the year we (that is Ben, Mark, Julian and myself) started coding a new tool that has become LDC Via. This involved learning new technology stacks in the form of node.js and MongoDB. It's been a long time since I learned so much in such a short period of time but we've finally reached the point where we have a product that we're happy to share with our beta program members. You'll hear a lot more about our offering over the next few months. 

I still do Domino work when the opportunity arises but I think at this point I'd consider myself a node.js / MongoDB developer. It's something that was always going to happen, it just happened a little sooner than I had anticipated. 

So 2015 is going to be an exciting one: we have some big changes coming on the home front in a couple of months and at the same time I need to be rolling out a new product and continuing to develop it.



Haven't we been busy

Over the last few months you may have seen less of me and the rest of the LDC team than usual. But there is good reason, we have been busy little bees creating a new product that hopefully you'll be interested in if you work in the Domino world.

Over the next few weeks we're going to cover the Why, What and How of LDC Via, and Why is first.

What we’re seeing now is that Notes and Domino are viewed (whether correctly or not—that’s a separate discussion!) as being somewhat old-fangled, uncool and—that horrible word—“legacy”. The upshot is that some organisations are reducing, or even stopping, investment in this platform. For email they may well be migrating, or have migrated, to Microsoft or Google. Those that are staying with IBM may be considering moving to IBM SmartCloud for email. So, for many, the on-premises Domino servers have become a liability, a problem, and an unwanted overhead. But—and it’s a big but—there are important business records and data locked away on those servers.

Head on over to our blog to

We're also looking for people to get involved with our beta program. If you or your company is interested then please contact us and we can let you know more detail.

Call for abstracts for ICONUK

Are you registered for ICONUK 2014 yet? Tim Clark is running the event this year, but we still need speakers. It's that time of year again when we ask you to throw your hat into the ring if you want to speak at ICONUK. I'm running the Dev track, and I just thought it would be useful to run through the process of how we choose the sessions.

Firstly I move all of the session titles and abstracts into a spreadsheet and remove any names from the list to try and avoid falling into the trap of automatically selecting "the old dependables". Just to give an idea, last year we had nearly three times as many abstracts as we had sessions, so this next bit of the process is very hard. We go through the abstracts and we rate each one so that there is a league table. 

Next we add in the speaker names. We try our best to get as many speakers in as possible, so if someone has played a blinder and submitted multiple abstracts which we like, we'll either pick the best one and remove the others, or contact them to see if maybe they could speak with someone else, ideally someone new to the speaking circuit.

After much arguing and horse trading with the other tracks (sometimes we can stretch the definition of Infrastructure or Dev or Management!) we end up with a list and we'll send out the notification emails.

And that's where the real fun starts for you!

So please do have a think about whether you want to try out presenting in a smaller, less terrifying setting than Florida. The Call For Abstracts closes on Monday 30th June and we'll aim to let people know as soon after that as possible.

CSC Event 2

We’re very pleased to announce our 2nd CSC Event taking place this time in the evening of July 16th.  It will still be at the fantastic Soho Hotel in London which everyone thought so successful last time but this time we’re trying something a little different.

The event begins at 6pm and will run until 9pm with only two sessions followed by drinks and possibly further drinks afterwards.

Last time our biggest feedback was that it was shame to choose between sessions and that it would be good to see both Technical and Work & Life so we will be running two sessions one after the other.  A Technical Session in the Screening Room and then we’ll all move to the Crimson Bar for a Work & Life session and since we’re in the bar, we’ll finish up with some drinks.

As always we hope for audience participation and we’d ask you to register and invite friends and colleagues – this is far outside the IBM world and our discussions are very broad.

Registration is here

Technical Session:  This will consist of 3 x 10 min presentations followed by an 30 min open floor discussion
“Exciting Technologies”
Where is the next surge in technical innovation coming from and how do we position ourselves for that?  Wearables?  Cloud Storage?  Collaborative Working? Searching and Finding Content?  Every day we discover or hear about new technologies and technology areas that sound promising.  Which ones are exciting and how do you decide between standing back, monitoring, beta testing or positioning yourself for adoption?

Work and Life Session:  This will be an open floor moderated discussion. All voices welcome!
“When People Are The Problem”
People collaborating together can do amazing things, but there is always the potential for personality clashes, misunderstandings and friction, particularly when change and issues of ownership are involved. In this session we will discuss how these issues can arise and what techniques we all use to finesse them or whether, when reality crashes in, collaborative working can work at all.

Oh yes, we'll need a database

I suppose this is the biggie. Since 1996 my database of choice has been the venerable NSF http://en.wikipedia.org/wiki/Notes_Storage_Facility#Database which is a Document Oriented Database. Coincidentally the rest of the world has now caught up and there are some more modern options available to achieve the same things now. The real flavour of the moment is MongoDB http://www.mongodb.org, like the NSF it’s document based and can be replicated between multiple locations. Unlike the NSF it is much more scalable and the old limitations that we were constrained by have largely been mitigated. Of course there is no such thing as a silver bullet, but really there is no comparison between the NSF and modern document oriented databases. You have no idea how sad that makes me, but it is true.

Anyway, back to the real world. Every application needs a database, and my choice in this case is MongoDB. As ever, this is not a tutorial, the MongoDB website provides quite reasonable documentation to get you going: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Now, you could just go with Mongo directly, but in various tutorials I had read about MongooseJS as well. MongoDB is just a database, it doesn’t force you to implement schemas, validation, or really any structure to your data. It may well be the case that you don’t want any of that, in which case go for your life. The syntax for talking to MongoDB is very simple REST calls. But with the addition of MongooseJS we get another layer of abstraction and assistance.

The primary boon for me has been the creation of simple schema’s. Each of the document types in my application has a schema defined; I know what fields will be created, I can create default values for optional fields and I can also create server side validation rules in a nice structured way. It’s also really useful to have a standard way of running code every time a document is saved back to the database.

And at this point we have our first venture into the cloud. It’s very easy to get everything we’re talking about running on your local machine, but what about when you want to show it off to the rest of the world? In my case I’m working with Bruce so for him to test we need an environment. There are hundreds of options available to you, but as with all of these posts I’ll describe what I’m doing.

Heroku Console

First we have the node.js hosting, where we’re using Heroku. It’s nice and simple to create a development instance that runs on a single dyno and then add plugins for things like console management, monitoring and so on. But we also need somewhere to host the database itself. For this we’re currently using MongoLab which again is very easy to set up a development database instance. The key thing about both of these development environments is that they are free. So I can do a Git push from my repo, and add configuration to the application to point to Mongolab for data storage and suddenly my application is running in the cloud.

MongoLab console

This is all worryingly simple isn’t it?