06 Jul, 2006
Eclipse Callisto and BIRT
Eclipse have just released 3.2 and Callisto which is designed to help you fetch all the plugins .
This is a really good idea but it has a couple of glitches.
- Run the find new features to install twice, first time it misses some components that are really useful (e.g. the help for BIRT)
- For BIRT you have to manually install prototype.js - see http://www.eclipse.org/birt/phoenix/build/ . For some odd reason this only affects the Callisto version of BIRT and not the stand alone versions. Without this installed BIRT just hangs when you try and set report parameters.
- With all the plugins installed is often runs out of memory - edit the eclipse.ini and change -Xmx256m to -Xmx512m.
07 Jun, 2006
White/Black box testing and shades of gray
A great debate arose at work about what White and Black box testing, what they were for etc.
For starters here is my simple definition of testing in general
- Testing: Checking that the solution meets the requirements of system users.
From this we then split testing into two groups
- Blackbox: Testing that is not aware of how it works. Just that it works. (e.g. user testing)
- Whitebox: Testing that uses knowledge of how it works to help testing (e.g. looking in the database to see if the data really saved).
This sounds quite a simple distinction.The debate at work was about whether unit testing can be (or should be) black box. I would argue it can and at least a good chunk of it should.
Unit testing is about testing the public interface of an object. You are testing to see if the object meets its contract (i.e. its requirements). When you write your unit tests (obviously first!) you should ideally check it meets the contract. I would argue that this sort of test is black box testing - as the user (the calling class) is checking without any necessary knowledge of the class, it meets the requirements.
We do tend to enter shades of grey when it comes to really testing a system as running a black box test can often make testing hard. The main problems tend to be
- Getting suitable mock objects (or real objects) to test the interface
- The database (what state is it in).
- The API of the object may allow us to do everything it is meant to do. However it may not allow us to test is has done them. e.g. a void doIt() function.
- Speed (normally related to the previous two items).
So we then muddle our clean black box test to fix these issues. Normally this involves a combination of
- Calling/adding protected methods
- Stubbing database implementations
This is where we tend to get a grey test. The tests value however can only be preseved if you keep in mind your focus is to test it meets the contract.
Finally there are valid situations where we do want to white box unit test - however I would argue these are a minority. An example would be a complex logic to generate a random string suitable for use as a username or password. This should not be exposed via a public interface (getUserName() getPassword() would be appropiate), but to prove it is working you would need to test the implementation.
In conclusion I think you need to be clear about what you test is testing and you tests should be categorised into
- Black Box (with shades of grey): testing the contract of the interface
- White Box: testing the implementation.
16 May, 2006
Google Notebook
I have just got a google notebook at http://www.google.com/notebook/user/04814795451745143598
This seems to be quite a cool service. Once you install the browser extension you can grab bits of web pages and keep them.
14 May, 2006
Review of Issue/Bug Tracking Systems
I am just starting a rolling review of a few bug tracking systems. Rather than put it directly on this Blog I decided to put it on Google pages - mainly to see what they could do.
See the main review of issue trackers is at http://bgidley.googlepages.com/issuetrackers
13 Apr, 2006
Gidley.eu
For reasons that don't really make much sense you can now access this site via http://gidley.eu as well as via http://www.gidley.co.uk. Very european of me!
28 Feb, 2006
Cat + Kitten
Helen and I have just got a cat and kitten!
They are Parsnip
and Sprout
(More)25 Feb, 2006
Eclipse and its plugins
Eclipse is coming along extremely well as an IDE - but a lot of people are not finding the plugins that make it even better.
So as I was reinstalling Eclipse I thought I would note what is worth getting.
For a start
- Get Eclipse 3.1.2 as a download from www.eclipse.org
Then the rest we can add via the update manager.
In Eclipse choose
Help
> Software Updates
> Find and Install...
> Search for new features to install
> Add Update Site...
In the Update Manager add the Web Tools Project update site http://download.eclipse.org/webtools/updates/ . This once installed adds both BIRT (reporting), Visual Editor and TPTP (testing and profiling) to your update site list.
Add the new Web Tools features to get
- A nice XML editor
- A XML Schema view a bit like XML Spy's or OxygenXml's
- Web server start/stop plugins
- Database editor/viewer
Then once installed and restarted go back into the update manager and search for more featues. You can now install BIRT, TPPT and Visual Editor.
The TPPT (see http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html
for an tutorial). Allows you to
- Profile Code
BIRT is a reporting suite - I keep looking at it as an alternative to Jasper Reports. The report building GUI certainly seems better than anything Jasper Offer.
The Visual Editor is a Swing/SWT GUI builder - nice if you want a thick client application.
12 Feb, 2006
My del.icio.us tags
12 Feb, 2006
Web 2.0
There appears to be a lot of hype about web 2.0 flying about at the moment. As every much of it doesn't live up to expectations but some of it does.
I have taken to using http://del.icio.us/bgidley for my bookmarks and from there have found a range other web 2.0 sites.
The key things that web 2.0 appears to be is a slick GUI (usually using AJAX). This in itself seems like a good thing.
From a technology perspective I find the web 2.0 frames works all a bit worrying. Moving to the web from thick clients programmers lives got so much simpler - they didn't have to worry in the main about GUI events and instead just put the page back.
Web 2.0 is going to result in some really awful application bugs of the sort when you can fill in A then B then C but if you go back to A and edit it you will 'break' the page. This sort of thing was a common problem in the Visual Basic GUI's of a few years ago.
Hopefully component frameworks like Tapestry can keep all the Web2.0 coolness locked away and thus reduce the screw up likelyhood.
The other thing that worries me is the security aspect - unchecked input and cross site scripting are the most common sorts of security bugs and with Web 2.0 the opportunity for mistakes is going to be increased.
28 Dec, 2005
Strong Space
I have recently started using Strongspaceto backup all my files. This is a really good service that provides 4Gb of space for $5 a month! The great thing about this is all our digital photo's can be kept safely. It is one of the major downsides of digital photography if your PC breaks you could lose the lot.
The only obvious downside is they use SFTP or RSYNC to upload which will make it quite hard for non techy users to use. Fortunately there is a blog with details.
The one feature of Rsync that I wanted that this does not explain and the rsync manual does explain but not very clearly is how to do excludes and includes.
In my example I wanted to back up the My Pictures and Secure folder under My Documents but not the rest. The simplest way to do this is to use a filter file.
To do this create a file (I called my exlc but you can call it what you like) with lines like the following in
+ /My Documents/
+ /My Documents/Secure/
+ /My Documents/My Pictures/
- /My Documents/*
This will cause rsync to (in order)
- Ignore Everything
- Look in My Documents
- Look in My Documents/Secure
- Look in My Documents/My Pictures
- Ignore everything else in My Documents
Then run rsync as per the tutorial with the --exclude-from option pointing at your file - e.g.
rsync -avz --delete --exclude-from=excl "/cygdrive/d/My Documents" username@username.strongspace.com:mydocs
19 Nov, 2005
UFO over High Wycombe
There appears to be a UFO over high wycombe at the moment. Look at webcam!!
28 Sep, 2005
A Tale of 2 Customer Service Teams
The Good
Buyacar.co.uk are an online car shop whom I bought my new Smart ForFour from. They are cheap, efficent and their web site works really well.
The site allowed me to choose what I wanted and then I got to discus (via email) with one of their staff over the details and what was in stock etc. Once ordered they delivered when they said they would. There was one slight glitch - the car came without a luggage cover (as Smart added them to the range mid year). They (without an argument) ordered one and arranged for it to be delivered somewhere convient. This is what I want from a company!
The Bad
We ordered a kitchen in April 2005 and as I write (end of September 2005) we still don't have one. There are a long list of reasons for the delay but they simply boil down to MFI don't care if they deliver or not.
They have had all sorts of supply problems and just seem to be unable to deliver the bits they need. They fitter has fitted most of the kitchen but some bits (a drawer, a plinth and a shelf) were missing. It has taken months to get these items and we still haven't got the right drawer (we have 4 of the wrong one).
The general attitude of MFI is the most annoying part - they make it all our problem and don't try and fix it.
27 Sep, 2005
For Four....
I have replaced my roadster - After a short and pointless search I have come to the conclusion the obvious vehicle to replace the roadster is a Smart ForFour.
It is nice Blue and Silver Colour. The only annoyance so far is I can't find an iPod kit for it yet...
While picking this car I had the pleasure of test driving a wide range of cars in the extended text bits are random thoughts on them!
Note all opinions below are my random prejudices based on test drives therefore they could be (and probably are) completely wrong.
Toyota Prius
I test drove this first. It is shockingly quiety at low speeds and oddly noisy as it accelerates. The engine really rev's. It is very smooth (a bit too smooth for my taste). It is quick for a car in general and the inside is great. The exterior looks a bit funny.
The main thing that put me off was the combination of the exterior and the price. It is quite a bit more than normal car and the fuel economy - especially on Motorways is not that good. Most diesels are in the same ball park.
Toyota Corella Diesel
Nice outside, noisy engine, horrible interior.
Mazda 3 D
Nice outside, quiet engine, nice interier. Little weak road holding - felt amost too comforable going round corners too quick.
Citroen C4 1.6 (110) D
Nice outside and in. Quiet engine. I though slightly better than the Mazda 3 but I had quite a short and limited test drive. Full of hi-tech toys!
Mini Cooper
Boooooooooooooooooooring.
Sorry - slight chip on my shoulder. Ever since I have had a Smart Roadster people compare it to the Mini. So I thought I would give it a try. Interior is great. Exterior great (but common as muck around here). Equipment options etc great. But the drive - it's just not fun. I was a little jaded after having had an extremely good test drive in a brabus the day before - but the mini just was missing the fun stuff.
It cornered ok, acceleration was ok - but not great, it struggled on a hill with 3 of us in it.
07 Aug, 2005
Another How To Video
Recently my Granny wanted to create cards in publisher so I made this
Wink video to show her how to.
14 May, 2005
How to copy files Video
It is quite easy - so maybe I will make some more.