Contract ending, a fun month beginning

The contract I’ve been working on for the last two years is ending on Friday, the project I’ve been working on is live now so it seemed like the perfect opportunity to move on. Two years is about the right time in a single company I find.

So, on Saturday morning, I’m heading over to New York for a few days holiday. Then it’s back to the England for a week before heading of to Dublin for ILUG. It’s looking like a ton of work but I’m really looking forward to catching up with everyone and hopefully a really good conference.

The plan when I get back is to continue without a contract for as long as possible, with a few projects for different companies and also really spend some quality time on IdeaJam and LinkJam development.

In the short term, there are a few of us meeting up tomorrow evening in the City for some pre-ILUG beers, then there’ll no doubt be a few leaving drinks night for my current contract. All round it’s going to be a fun month or so.

Pre ILUG Drinks in London

I thought it would be a good idea to have a pre ILUG drinks night in London during May.

So my totally unilateral decision for night, time and venue are:

The Date: Tuesday 13th May
The Time: 17:30 onwards
The Place: The Old Tea Warehouse

Hope to see you there.

ILUG Agenda

Well it’s been a long time in the works with so much content to squeeze in to the three days, but the draft ILUG Agenda has been published. If you haven’t yet signed up then hopefully this will persuade you to come along, but be quick, there are only a very few places left.

New Name Picker

It’s funny how certain pages on a site become orders of magnitude more popular than all of the others. Well for me, the most visited page on this site is, without doubt, my simple little name picker which I knocked up in a couple of days back in August 2005. Since then I’ve had a steady stream of email from people asking questions or just being nice about it and thanking me. And it’s that which really makes blogging fun.

Today, to make things even nicer, I got an email from Scott Jenkins who has not only been using the name picker, but has added to it and improved it enourmously. So I heartily recommend heading over to Scott’s site and checking it out. And I’d like to be first to offer thanks to Scott, hopefully he’ll see the same sort of feedback that I got all those years ago.

Weddings and Marathons

Well it’s been an absolutely brilliant long weekend.

On Friday I went along with a load of old friends to our friends Alan and Ruth’s wedding at Leez Priory in Essex. The venue was absolutely stunning, the company was excellent and the wedding itself was really lovely. Of course there was the inevitable sore head yesterday morning but the drive home was OK. And the laziness continued as I just caught up on some reading and much needed relxation.

I did get up early this morning as I had a ton of work to catch up with. It’s always good when the unread email reaches well over a hundred and the unread RSS feeds are over a thousand :-o. The other thing happening today is the London Marathon which runs past my flat at about the 7 mile mark. So I went down to cheer along the runners for a while. All very inspiring stuff with hundreds of people watching along the side of the road.
IMG_0064.JPG

Java Lesson for the Day

I am not sure how this bug got through our first round of testing but I have some code which looks like this…

String source = “The BNL”;
String pattern = “If I had $1000000”;
System.out.println(source.replaceAll(source, pattern));

I was getting an error of “java.lang.IndexOutOfBoundsException: No group 1”. The astute amongst you will notice that this will never work as $ is a heavily used regex character. So what to do, either I could manually escape the pattern string, but that gets us into a whole hellish world of backslashes. So instead enter a static method that I hadn’t tried before… Matcher.quoteReplacement().

What it does is escape the pattern string for me before then being used in the replaceAll process. So my fixed code looks like this:

String source = “The BNL”;
String pattern = “If I had $1000000”;
System.out.println(source.replaceAll(source, Matcher.quoteReplacement(pattern)));

Not a big thing but it had me scratching my head for a while this afternoon, so thought I’d write it down for future reference.

HTTP Server Crash and some .ini settings

One of the apps I am working on at the moment has been causing the 7.0.2 server on which it runs to crash. The problem we were having was that there was no consistency to how the server crashed, it was always nHTTP with a PANIC: Insufficient memory, but it was never the same piece of code that was running when it happened. So we went through all of the usual debugging processes for several days but just couldn’t find anything wrong (even though there blatantly is, this is a developer owning up here you admins!).

Well I haven’t dealt with IBM support for quite a while, but we were running out of ideas and decided to open a PMR more out of desperation than anything. In the past I would have expected them to come back and say that we are running non standard settings (which we are) please reset everything and come back to us then. To my great surprise I had an email from them this morning saying that they’e analysed my NSD files and here are three different things we can try to prevent the error from happening again. So far they are looking good. So for future reference, it’s definitely worth checking out the following .ini settings.

MEM_EnablePreAlloc=1 (see TN 1267928 for details)
HTTPUseNotesMemory=0
INotesUseNotesMemory=0

Update: I had a couple of people ask for the Fatal thread, so here you go…

############################################################
### FATAL THREAD 61/64 [ nhttp: 1ac8: 0ba4]
### FP=0x5290fe40, PC=0x60177011, SP=0x5290f6cc
### stkbase=52910000, total stksize=262144, used stksize=2356
### EAX=0x01cf0648, EBX=0x6018a8c0, ECX=0x016b0000, EDX=0x016b0000
### ESI=0x5290fcd4, EDI=0x00000000, CS=0x0000001b, SS=0x00000023
### DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010206
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x60177011 nnotes._Panic@4+417 (60ae0917)
@[ 2] 0x6017708c nnotes._Halt@4+28 (107)
@[ 3] 0x601022f5 nnotes._AccessAllProtected@0+85 ()
@[ 4] 0x6004541e nnotes._AccessAll@8+46 (1,1)
@[ 5] 0x60046473 nnotes._ProcessGlobalEvent@4+19 (1be2790)
@[ 6] 0x60046387 nnotes._OSProcessShouldQuit@0+39 ()
[ 7] 0x77e64829 KERNEL32 ()
Invalid stack frame detected: Invalid frame pointer (BP): 0

Sunday morning walk in the snow

IMG_0041.JPG

If I have time on a Sunday then I like to go for a long walk somewhere in London to relax, think about what’s going on in life and just stretch out from my otherwise sedentary lifestyle.

It was snowing and settling which is pretty rare in London, especially in April so I headed over to the West End with the aim of getting to Green Park. I hadn’t really thought about the Olympic torch procession going through the city today. When I got to Marble Arch there were lots of police around. I mean huge numbers for a crawd of probably five or six hundred people, there must have been a policeman for every five people. So congratulations China on taking what’s meant to be a good sporting event and turning it into a political nightmare for all concerned. In my photo you can just see the flame on the top of the bus that has the cordon of police around it! Really bringing the world together there 😉

Anyway it was a good walk, nice and quiet because of the rubbish weather, but lots of interesting things to look at. Now back to work!

11TMR is 6 already!

Well I managed to miss yet another birthday. Over the weekend my little corner of the internet reached it’s sixth anniversary.

It’s incredible to me how good maintaining a blog has been for me. It has helped me professionally in finding work and got in contact with some very interesting people, but most importantly I have made a lot of really good friends through it. So here’s to another six years, I wonder what we’ll all be doing in 2014?

IdeaJam site updated

It’s been a fun weekend of developing and testing culminating in the upgrade of the public IdeaJam site to run the version of IdeaJam which our customers are using. Even upgrading the design of the public site which was a mish-mash of versions from around Lotusphere time, the database upgrades went incredibly smoothly. The main new features which are visible to you now are the header stats, new statistics page, preview of comments as you type, and most cool, the integration of NCT Remember Me which means that you don’t have to keep logging in to the site every time you want to vote.

As ever we have an enourmous task list of changes still to make, but if you have an idea then follow our mantra of “use the system to build the system” and post an idea. If people like if then we’ll add it to the to do list.