Esendex Last Minute Sprint

In a change to normal development activities, this afternoon saw us do a bit of last minute preparation for a triathlon that Esendex is the headline sponsor for. It will, I guess, be business as usual on Sunday too for the Esendex Last Minute Sprint at Southwell with both Adam and Julian leading the way forward in the overall times for the eight staff members who will be competing.

Today we had a visit from Richard Stannard which was very worthwhile. Chatting to a world class althete was not only inspiring but he was full of useful advice. It has made the whole prospect of swimming, cycling and running at Silly-o’Clock on Sunday morning less daunting. I say morning, I think I need to get there just after the milk does, so its more a.s. (Apres Sanity) than a.m.

There have been times at the gym these last few weeks that I did question my own sanity for attempting this but it has been a great goal to aim for.

The motley crew from Sales, Operations and Development are joining in with the semi-professionals and this will be my first triathlon. I think Julian has such a good swim time that he’s starting on Monday (I joke!). Despite gunning for the wooden spoon prize I am just looking to have fun and make it around in one piece. Oh, and I’m also trying to aim to not be overtaken by Adam or Julian 😉

Thanks to Ewan for his kind words of support. I’ll let you all know how I got on (if I have the energy to type!)

Ur clrd 2 lnd

In case you’ve not yet realised the business benefits of using SMS, then maybe this story from Ireland will help convince you.

The Irish Times wrote a story last Thursday about how an air traffic controller used SMS to guide a plane down safely.

He then lost audio telephone contact but the air traffic controller switched to texting and told the pilot that he had a primary radar signal on the aircraft and that Cork would allow them to land there. He then used texts to guide the 30-year-old plane in.

So maybe rethinking the usage of phones on planes needs revisiting? SMS might be small but it can be powerful. A bit like the Twitter story of the guy whose one word triggered a whole community response to his arrest in Egypt.

Powered by Elephants

Apparently this coffee is elephant powered. Well, made with Elephant Beans anyway.
Unlike that Kopi Luha (sp) whose beans have passed through the digestive system of a wild cat, I’m hoping these haven’t been fished out of some dung. I jest of course as it refers to the size of the beans.
It does make you start to question what your beverage has been through to get to your cup!

The Next Release

The Development Board - under loadNow that the development team at Esendex Towers is growing, so is the pace. Nicholas has just posted the next set of tasks on the board for our next release in a few weeks.

As you can probably see, there’s not much cork left in view! Saying that, I’ve just seen the inch-thick pile of cards that Nicholas has just removed from the current release. Whilst electronic methods of project tracking might offer lots of improvements, there’s something satisfying about hearing the riffle of all our hard work!

Log4View

I just wanted to personally recommend a log view utility I’ve had the luck of finding recently, actually thanks to Ian again. Around October time, Ian contacted the logging.apache.org group asking :

“Does anyone know of an application that is capable of loading a log file that has been written to using the RollingFileAppender?”

He was answered by Ulrich Proeller, author of Log4View, saying that at the time his application didn’t support that but would process XML Formatted log files.

We’re currently using a ConversionPattern with a Rolling File Appender in Log4Net to custom-format the output of the logs. I did try swapping to the XML format briefly on my development machine, but the output logs really are only machine readable after that.

I recently got in touch with Ulrich as I spotted he’d added Pattern support to Log4View along with XML for file based logs. (For those who prefer network logging, there’s also excellent support for UDP and TCP appenders as well.)

Today, he’s sent me a preview beta copy of Log4View with the pattern changes made and I’m pleased to report it is performing very well. He informs me there’s a new version on the cards very soon which will include the changes he sent me today, alongside some other improvements which sound exciting.

For someone who has spent countless hours trawling through the vast amount of logs that our services can produce while we’re testing them, Log4View offers a very slick, well thought out way of exploring live or archive logs. Being able to specify the Log Level you want for each Logger it finds in the log files, supported by smart Filtering rules really allow you to find what you need quickly.

My thanks go to Ulrich for continuing to actively support his application and for the quick turn-around he’s done after I made suggestions.
If you use Log4Net, you should seriously consider both trialling and supporting Ulrich for his efforts in producing a very useful view on your logged data.

Making a Mockery

Thanks to some example code by Ian I’ve completed my first Mockery. NMock allows you to instantiate mock objects based on interface declarations alone.
It’s already saved me a potential chicken and egg scenario where to get an instance of the normal object that’s inputting into the method I was testing I’d have had to include a project which relied on the one I was in the midst of building. Compilers tend to hate the chicken and egg question and usually go on strike.
So, NMock to the rescue and I must say it took no time at all to get up to speed with. Yes, it did require me to set all of the properties on the object that were being used, rather than relying on defaults created by Constructor methods. However, accurately controlling the data retrieved from the object is such a benefit. It will no doubt save the time spent where tests at the moment retrieve data from a database.

SLAP, my service’s up!

As part of the new raft of services in development here at Esendex Towers, Adam‘s been busy with his inventing hat on again. Fresh from the lab is SLAP: Service Location and Announcement Protocol. This post is inspired by just how useful basing your inter-service communications on SLAP can be when it comes to development, testing and future resilience.

SLAP is a helping hand to provide and consume network-based services.

  • For a service provider, SLAP will help it broadcast its location and status.
  • For a service consumer, SLAP will help it find a working instance of the service it needs to use.

Adam’s been introducing SLAP and the two basic UDP messages that make SLAP work: LOCATE and ANNOUNCE. We’ve included these two simple messages in a SLAP Node and built on top of this. The following descriptions illustrates how SLAP can be very useful when integrated into your services. These examples are based on how we’re using SLAP, and not fully reproducible from the basic SLAP examples on Adam’s blog. I’m sure there’ll be more sample code to come.

Continue reading SLAP, my service’s up!

Getting real with speech

As part of the continuous research into new ideas, I’ve been helping out research and evaluate RealSpeak Telecom from Nuance.

One thing that’s not instantly clear from the documentation is how to play back the ‘standard.pcm’ file that the standard demonstration application they provide generates. To be fair to them, they do tell you that the generated file is a PCM wave file which is 16-bit 8kHz. What they leave out of the documentation is any kind of suggestion of the software capable of playing this back easily.

Continue reading Getting real with speech

Blog It!

It’s been a busy time at Esendex Towers because behind the scenes we’ve created a whole new service for anyone whose wanting to blog on the move.

BlogIt is a free service where you can sign up to be able to blog by text message. There are a lot of fancy mobile phones out there which attempt to give you the Internet while you move. To save you having to navigate to a website to then struggle with a blog editor interface on a small device, we’ve taken the hassle out of the process allowing you to capture the moment and thoughts that drive you to want to blog on the move in the first place.

BlogIt provides a bridge to allow any mobile phone (as long as it can text!) to be able to write a blog and best of all, it’s free! (see note at bottom)

Continue reading Blog It!

Test Driven Documentation

Esendex fully embraces the idea of test-driven development (TDD), something I was introduced to during my time at Fujitsu-Siemens Computers.
Microsoft have just released a new MSDN site called the Tester Center Home. Whilst I’m sure its got some useful information on it, the matter-of-fact MSDN style doesn’t invite me to delve into it to find helpful hints and tips on TDD, personally speaking.
Continue reading Test Driven Documentation