||
|
 Monday, May 30, 2005
Ths Joys of Internet Kiosks
The stupid internet kiosk @ Dunk Island will not lewt me enter paths with URLS... so I ahve to create a link to my Outlook Webmail Here.... MEH!
It still didn't F'ing work... NOTE: If travelling to Dunk prepare to do without interweb :-(
1t|Monday, May 30, 2005 5:14:39 AM UTC||
|
 Sunday, May 22, 2005
Rory Doesn't Like Episode III.....
”
There’s a lot of “dialogue” between Anakin and Padme that goes like this:
Anakin: I think you’re so beautiful.
Padme: No – you are.
Anakin: No, seriously, baby. You’re hot.
Padme: Oh, Annie.
Anakin: I love you.
Padme: No, I love you.
Anakin: For reals, though, I think you’re so awesome.
Padme: You’re so nice.
Anakin: Obi-Wan is a dickhead.
Padme: Really?
Anakin: Totally.
Padme: No way!
Anakin: Way.
Padme: Wow. I love you.
Anakin: I totally love you more.
[lather, rinse, repeat]”
See more here...
Human Aggregation|Sunday, May 22, 2005 2:43:19 AM UTC||
|
How to stop your underwater camera housing from fogging
Grab some Silica gel sachets (the ones that come with pretty much every item shipped out of china these days). Dry them in the oven, store them in a ziplock back.
When you pack your housing, chuck one or two inside. Leave the housing for half an hour... Wammo- dry air in housing == no condensation.
Toy Box|Sunday, May 22, 2005 1:23:25 AM UTC||
|
 Friday, May 20, 2005
Broadband In Hotels
Rod Drury has blogged about broadband in hotels. It's true, the Asian hotels do screw you pretty hard for boradband access. Singapore is CHEAP compared to China 5* Hotels.
My hot tip for travelling to broadband equiped hotels as to take your own WiFi Router. At my hotel in Perth last week I had my own private WiFi network setup that covered not only my room but also the restaurant- I could surf the net over breakfast 
1t|Friday, May 20, 2005 1:05:08 AM UTC||
|
 Thursday, May 19, 2005
Tools You Can't Live Without - Red Gate SQL Compare
Every now and then you come across a tool that is just so fundamentally useful that you'd have to have rocks in your head if you didn't use it- Red Gate SQL Compare is one such tool.
Since starting Kognition I've become a firm believer in the concept that a well organised change management process is good for business (reduces support costs), good for the customer (reduces errors) and most importantly good for developer sanity.
We use a Dev->Staging->Production lifecycle. This is reasonably easy to manage for application code but databases are always the bugbear.
SQL Compare makes managing the migration of databases changes through the various lifecylce stages. Basically it allows you to compare and then merge the changes in SQL server databases. A simple concept but their execution is really good.
If you are an enterprise or an enterprise developer then you really should be using this bit of kit. If you are doing dev->staging->production migrations by hand then it will save you a huge amount of time. If you are not doing the migrations at all (and do all your work on production databases) then you are insane.
Oh... BTW: The person to thank for our impecable Change management is our CTO @ Kognition Mr Nick Head.... really smart process oriented cookie.
.NET|Thursday, May 19, 2005 10:45:49 PM UTC||
|
 Monday, May 16, 2005
Brendon from Provoke. World Famous In Dunedin
Brendon from Provoke was in our student rag this week- in the Bunch of 5s Question and Answer section
Obviously down here trying to pilfer some student talent....
Pity I was in Perth otherwise I might have had to drag him out for a Tech Ed Geek Festesque Boozup @ a student pub.
Rambles|Monday, May 16, 2005 11:37:18 PM UTC||
|
Getting Better Performance out of SQL Server Table Variables
OK... So I've got a stored proc that does some searching in the DB. Something like
DECLARE @ResultsOfFTSQuery TABLE (componentid int) IF (@FullTextSearch <> '') BEGIN INSERT @FTSResults SELECT ComponentID FROM Components WHERE CONTAINS (Rendering,@FullTextSearch) END
SELECT TOP 10000 * FROM TheTable WHERE (TheKeyID in (SELECT ComponentID FROM @FTSResults)) AND .....
And the performance gets REALLY bad as the results of the first query increases. Simply adding a PRIMARY KEY to the table variable increased performance from 40 secs down to sub 1 sec.
DECLARE @ResultsOfFTSQuery TABLE (componentid int PRIMARY KEY)
This article notes that you can't have 'real' indexes on table variables, but if you create a PRIMARY KEY or UNIQUE contstraint you get one for free.
I'm off to spend some time trying to find other procs I can optimise 
.NET|Monday, May 16, 2005 8:53:49 AM UTC||
|
Nathan Mercer has gone to DPE
Sean has blogged that Nathan Mercer has joined the DPE team.
This is really cool. Nathan is a really good bugger so that's just great. Sean has done a bloody good job- taken his almost empty team and stocked it with a whole load of really talented people.
[PERSONAL RANT] Sean says he doesn't like the term evangelist. I'm the opposite. I reckon it's a GREAT term. I'd love to have it on my business card someday.
Oh wait... I own the company... maybe I could put it on my business card.
.NET|Monday, May 16, 2005 7:11:59 AM UTC||
|
Integrating Subversion and Gemini. Inserting Gemini Issues from Application Code
At Kognition we make extensive use of Gemini for our issue tracking and as a lightweight project management tool. For source control we use Subversion. Half way through a project last year we had the bright idea of seeing if we could get the two working together. We developed two time-saving utilities for our internal use. We've had some interest from people wanting to achieve the same thing, so we're giving them out to the community.
Please note that these projects are basically just hacks we whipped up in a short amount of time - they are set up for us to use internally so will require some modification for your use, specifically you will need to use your own Gemini access code and WS URL. There may be other things as well...
The first was an extension to the MS Exception Management Application Block that handles all our unhandled exceptions in our smart client apps, presents the user with an option to report the error as a bug, and automatically creates the bug report in Gemini complete with stack traces. This was achieved by making use of the Gemini Web Service API.
The second was developed when we wanted to have a better audit trail of our bug fixes - especially when we discovered we had regressed old issues The tool is a C# command line app that we install in the post-commit hook directory of our SVN server. It gets invoked automatically by SVN when a dev commits any files. If the comment includes a specially formatted string representing a bug ID (#nnn), we invoke the SVN command line tool to query the comment and the changed files, and then we format them nicely and use the Gemini WS to append a comment to the issue.
Not really much to them at all, as all the hard stuff has already been done for us by the lovely folks working on Gemini and SVN 
Again, if anyone wants to clean these tools up and make them a bit more generic they are more then welcome to.
SvnGeminiCommenter.zip (15.87 KB)
ExceptionManagement.zip (81.93 KB)
Licenced as below.
Copyright (c) 2005, Kognition Consulting Limited All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the Kognition Consulting Limited nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.NET|Monday, May 16, 2005 12:27:23 AM UTC||
|
Integrating Subversion and Gemini - Some Introduction
*this is the BLAH BLAH. To download the goodies try this post*
I was over in Perth last week and a couple of things happened. One is I caught up with Nick Randolph and we had a chat about integrating Subversion and Gemini. The second is I came to the conclusion that I had kinda been neglecting the technical side of my blog- too much politicking for me. So I'm going to try and be a little more tech focused over the next few months.
But anyway. Onto the topic of the post. We have some stuff here @ Kognition that we have implemented to allow us to link our version controll system (Subversion) with our Issue Management system (Gemini). What it allows us to do is have the check in comments from version control entered against issues into our issue control system to close the development/debug loop. We also have some stuff to allow us to integrate issue reporting directly into our applications for exceptions that are thrown.
Here is some stuff from our CTO, Nick Head on how it all fits together. It was put together by Nick and Simon 'Skip' Gardiner... I'm just a lowly user of the system 
“its pretty easy to implement once you know the API's etc. We have two internal tools we have developed for integrating Gemini and SVN: an exception management framework for reporting bugs to Gemini, and an SVN post-commit hook so that comments and file modifications can be logged against the correct work item in Gemini.
The first one is a no-brainer - we just have a form that pops up whenever an unhandled exception ocurrs. All projects contain a project ID matching up with the Gemini project. We query the Gemini WS for the project's components, display them as a drop down, and let the user enter any additional repro details for the bug. Then when they hit submit, we get the full stack trace of the error, enabling us to fix the bug much faster than we would previously.
The next tool is a C# command line app that we install in the post-commit folder on our SVN server. This gets invoked on every commit. If the dev adds a bug ID in the comment in the format #nnn we know that its related to an issue in Gemini. We get the commit's revision number, query SVN for the comment and the changed files, then using the Gemini WS we add a comment to the issue.
I love that last little tool - means we have an effective way of tracking what files were modified for each issue.
We've thought about releasing these tools with an open source BSD license, but we just don't have the time at the moment to productify them (e.g clean up the code) and make them generic enough for use by other parties.
Actually, screw it - we will release the tools.”
So here you all are- our Gemini integration libraries. Released under the BSD license.
.NET|Monday, May 16, 2005 12:24:13 AM UTC||
|
 Thursday, May 12, 2005
New Red Shoes
Got a new pair of red shoes yesterday. THey are super sweet ltd edition Pumas. REd but with little mint green rubber space invaders on the back. Look out for them @ Tech Ed this year!

1t|Thursday, May 12, 2005 12:19:18 AM UTC||
|
In Perth
I'm in Perth at the moment. We're at a Surgical conference pitching our new piece of surgical audit software. It's a really clever bit of kit that runs on both Pocket PC and Desktop using broadly the same code base. The team at Kognition have building the midnight oil recently getting it together and it REALLY kicks some ass. We might blog a bit more detail on it further down the track.
I'm staying at the Emerald Hotel which, if you ever end up in Perth, is really rather good. It was just the cheapie that the travel agent suggested but it's close to the convention center and close to Kings path to go running. Oh, the broadband is cheap too and works happily with my WiFi router If you want to get back into your morning running routine then Western Aus is the place to do it. Your body, still on NZ time, wakes up at about 4am so you are more than ready to rock by 6am.
Kings park is a great place to go running. From the city yu want to run over the freeway overpass and up Mount Street. While going up Mount St oggle at all the nice apartments. THen I've been running east around the edge of the Mount admiring the sunset. Finally to finish there is a monstrosity called Jacobs Ladder which is really just a SUPER eivl set of stairs. Get to them off Mount St on the way home. One jog up these turns my legs to jelly.
Reason I've been slack at blogging recently has been my high travel schedule. Should calm down for a bit now. Added a new category called 'On THe Road'.... will try and blog more.
On The Road|Thursday, May 12, 2005 12:07:47 AM UTC||
|
 Friday, May 06, 2005
Tech Ed Rego Is Open.....
Sean McB's blogged about the early bird registrations being open.
It's @ Sky City again which is OK... I do like the 'maze like ness' of the Edge a bit more.... I do hope the speakers get to stay @ Sky City Grand.... they don't have in room broadband at the normal Sky City hotel... though Sean has promised that the WiFi for the event this year is gnna kick ass.
The pricing looks pretty sharp for Tech Ed (about the same as last year) and the content is going to be good. Hopefully y'all might see me there with my Red Shoes on....
.NET|Friday, May 06, 2005 8:33:18 AM UTC||
|
 Wednesday, May 04, 2005
ANZAC Day @ Kranji
My friend Sandy (in Singapore) has blogged about the ANZAC day service we attended there.
It was quite an amazing experience. I purchased a Poppy - my 3rd for the year having also purchased one in Shanghai @ the get together there, one at the Shell Station in Huntly (on the actual Friday before ANZAC in NZ).
As dawn broke I left my Poppy atop the headstone of 'An Unknown New Zealand Soldier'.
Rambles|Wednesday, May 04, 2005 1:35:25 AM UTC||
|
|
|