Main

April 11, 2006

OziGeocacheUK

I've been tinkering around for a while wrapping the API to OziExplorer in Java, as chronicled both here and on my work blog. I've finally knocked together an application that uses it. OziGeocacheUK integrates information from GeocacheUK.com and Geocaching.com into OziExplorer. OziExplorer is a GPS mapping application and GeocacheUK is a database of geocaches in the UK. Hopefully this post will help google steer anyone who is looking for such a thing towards it ;-)

July 10, 2005

Smörgåsbord: Building Win32 JNI code using NetBeans and MinGW

I use a GPS mapping application called OziExplorer, and just for laughs I started fiddling around with encapsulating the API for the application so that I could use it from Java. Access to the API is via a DLL, which meant delving into the scary world of both JNI and building DLLs on Win32. Whenever I've tried to do this in the past, it always seemed to require loading vast amounts of unwanted crap on my machine so that I got a compiler that worked, arcane spells involving mapfiles, sacrifical slaughter of various wildlife and so much pain in general that I'd always given up in disgust. However, I'm a glutton for punishment so I thought I'd have another crack at it. I couldn't find anything on the web that told you everything you needed to know all in one place, so I thought I'd document it since I'd got it all working.

Entry updated on 08/04/2006
I've made some minor edits to the Ant scripts to make directories etc. configurable. I've also removed the section which talks about copying all your DLLs to a standard location as it isn't needed - the System.loadLibrary() function will look in the same directory as it's JAR file for any native libraries, so it wasn't actually needed.

Continue reading "Smörgåsbord: Building Win32 JNI code using NetBeans and MinGW" »

June 21, 2005

OpenCola V1.0

I noticed this post on Peter Parson's blog about Open Sourcing products such as ketchup and caffeinated, caramel-enhanced, carbonated beverages and Solaris, which prompted me to grab my OpenCola 1.0 can off the shelf in my office and post a scan of it to just to prove that truth is always stranger than fiction. I picked the can up at one of the OSCON conferences - from the © on the can it must have been the 2000 one. They were produced as a fundraiser for the FSF, and I picked one up because it had some perl on the can ;-) Mine is unopened, but as the expiration date on the bottom of the can is January 2002 I think it will probably remain unopened! I just checked out the website URL on the can (opencola.com) which now appears to be a site flogging cheap bedding - either the FSF has branched out into a whole new area of endeavour or someone somewhere needs to do some DNS cleanup.

June 11, 2005

PMD: mostly good

Tor Norbye has done a writeup on PMD, a tool that looks for common coding errors in your Java source, for example switch statements without default labels or use of the broken double checked locking pattern. It looked interesting, so I installed the plugin into NetBeans and ran it against the source of my Mobile Bollocks MIDlet. As Tor points out, the default set of selected rules is a bit naff in areas, so I followed his recommendation and enabled them all, then started removing the ones I didn't agree with - about 30 in total. PMD is probably the best tool of its type that I have used, however that's not to say it doesn't have a few quirks:

  • It barfs on perfectly OK code. For example it reports the following error:
    com.bleaklow.bollocks.ui.About [1]: Error while processing com.bleaklow.bollocks.ui.About;
    net.sourceforge.pmd.ast.ASTAllocationExpression
    
    This is triggered by code of the form:
        public class Foo {
            public Foo() {
                new Runnable() { public void run() { Foo.this.back(); } };
            }
            public void back() {
            }
        }
    
    The trigger seems to be Foo.this.back(), I've logged the problem - see this SourceForge bug.

  • Some of the rules which claim to catch a particular error don't just catch the error that they claim to, they report errors against perfectly OK code. For example the SimplifyBooleanExpressions rule claims it is for problems like this:
    public class Bar {
        // can be simplified to
        // bar = isFoo();
        private boolean bar = (isFoo() == true);
        public isFoo() { return false;}
    }
    
    which I agree is a bad practice, the problem is that it also flags things like this as being errors:
        if (isFoo() == false) {
            doSomething();
        }
    
    which I actually think is clearer than the alternative:
        if (! isFoo()) {
            doSomething();
        }
    
    That ! is easy to miss, so I think the explicit comparison against false is actually clearer.

  • Some of the rules are just plain stupid - for example insisting that a method contains only a single return statement or prohibiting single-character variable names for things like array indexes.

  • Some of the rules are well-intentioned but the implementation is wrong. For example the AvoidInstansiatingObjectsInLoops rule is trying to warn you about the potential performance problems that can occur if you continually re-instansiate objects inside a loop, for example:
        for (i = 0; i < someArray.length; i++) {
            String s = "some string";
            doStuff(someArray[i], s);
        }
    
    the problem is that it complains about common idioms such as this, which are perfectly fine:
        for (int i = 0; i < someArray.length; i++) {
            if (matchesCondition(someArray[i]) {
                matchedThing = new SomeObject(someArray[i]);
                break;
        }
    
    I guess what it should really be looking for is the instantiation of an object inside a loop that isn't predicated by a conditional statement.

The other problems I have with PMD are more related to missing functionality, and the degree of integration of PMD into NetBeans:

  • Although the developer documentation implies the rules can have priorities, they don't appear to be used, at least not in NetBeans. This means that it's difficult to spot rules that have caught real coding errors in amongst a sea of stylistic warnings.

  • There is no way to suppress rules once you have manually checked that the code is actually OK. Ideally you would be able to disable rules on both a file and method basis, but you don't seem to be able to do this.

  • You also need to be able to have different rulesets for different projects. For example I got gazillions of errors related to the use of Vector instead of one of the Collection classes - this would be a fair warning under normal circumstances, but J2ME doesn't actually provide anything other than Vector, so it would be useful to disable those rules for J2ME projects.

However, even with these provisos it is a great tool and it did find a couple of genuine bugs in my code which my code reviewer cough Gary cough missed ;-)

May 27, 2005

Getting accurate height datums

My Garmin eTrex Summit has a built-in altimeter, and although it can auto-calibrate from the GPS fix, it isn't that accurate and it takes a while to do. The Ordnance Survey have been gradually removing the spot height and benchmark information from the 1:25,000 maps as mostly they aren't used for surveying any more. Both trig points and benchmarks need 'maintaining' by being resurveyed at intervals as they are subject to ground movement, so it is understandable that the OS isn't bothering if they don't use them any more. However they are still good enough for calibrating an altimeter which isn't accurate to less than a metre anyway, the problem is actually finding the information! I was browsing around the web looking for something else entirely and I found that The Planning Inspectorate provides a map facility that allows you to drill down on th the OS MasterMap maps which still have the height information on them. Go here and click on the "Select a Point" or "Select an Area" icons and keep drilling down to you see the individual property boundaries on the map. From that point on you will be able to see all the spot height and benchmark data, to the nearest centimetre, and there are a lot of them, so you should be able to find a convenient one to use for calibrating.

All you ever wanted to know about geodesy

If you've ever wondered what the difference between a coordinate system and a datum is, or what the difference between OSGB36 and WGS84 is, or what is the relationship between the ellipsoid and the geoid, or even what is the difference between a TRS and a TRF, then I recommend the excellent Ordnance Survey paper A guide to coordinate systems in Great Britain. It's an extremely well written explanation from first principles of the underpinnings of GPS - the coordinate and reference systems which are used to locate a point on the planet. Although the title suggests it is UK-centric, much of it is in fact globally applicable.

May 26, 2005

Yet another eTrex Summit

As I documented at length earlier here, here and here I bought a Garmin eTrex Summit in October of last year, and had no end of problems with it powering itself off for no apparent reason. Garmin replaced it (twice) and the third unit was OK-ish but still tended to turn itself off occasionally. After an email exchange with Garmin I said I'd try to track down exactly what the problem was. I persevered, and the clincher was when I turned on the inbuilt magnetic compass and the unit immediately turned off - a fresh set of batteries, no low battery warning, it just turned off. Once this had happened a couple of times I felt I had enough information to send a detailed report to Garmin. I'd expected to be told it was a fimware issue and that I'd have to wait for a fix, but I was pleasantly surprised to be told that they were just releasing a new version of the Summit and that they would send me one. I was even more surprised when it turned up a day later! It appears that I've been sent a pre-release unit, as it has features that aren't mentioned yet on the Garmin product page for the Summit. It turns out that Garmin have made a whole bunch of improvements:

  • The biggest change is the addition of support for WAAS (USA) / EGNOS (Europe). This is a satellite-based differential GPS system - basically a network of accurately surveyed ground stations watch the GPS signals, calculate the difference from where the signals says they are and where they really are, send the correction back up to some other satellites which then rebroadcast it so that WAAS/EGNOS-enabled GPS units can use the correction to improve their accuracy. At the moment the European system isn't fully deployed, but when it is it should give a 10x improvement in accuracy - indications are that the accuracy will be around 1 metre.
  • New 'Trip Computer' page which allows you to select 5 fields from a list of 31 to display. The list is very comprehensive - just about every parameter I can think of is covered.
  • When navigating to a waypoint the map page can display a line from where you are now to the destination (as per the older model) or a line from your starting point to the destination. This is the way the GPS12XL works, and it's much more useful as it allows you to easily see if you are wandering left or right from your course.
  • The compass can be turned off as well as on by holding down the PAGE button - on the older model you could only turn it on.
  • The track log can be turned off, and the point collection mode can be set to one of three modes:
    • 'Auto' which has 5 different resolution settings.
    • 'Distance' which allows you to specify the distance between sucessive points.
    • 'Time' which allows you to specify the time between sucessive points.
  • More internal memory, which means the following changes:
    • Waypoints per route up from 50 to 125.
    • Track log points up from 3,000 to 10,000.
    • Points on saved tracks up from 500 per track to 750.
  • The fairly useless Hunt/Fish page found on some of the other eTrex models is now available.
There are a few other minor changes - you can view pressure in hPascals, and they've modified the 'Units' setup screen so that if you select 'British Grid' as the position format you can only have 'Ord Survy GB' as the datum - a common mistake that people make is to set the position format but not select the correct datum, which causes all grid references to be several hundred metres out. The one thing they haven't fixed is that you still can't move an existing waypoint to your current position - this was a very useful feature on the GPS12XL - when EGNOS is deployed I expect to find that many of my waypoints will be inaccurate, and there is no easy way to correct them other than reentering them.

Overall Garmin have made an already impressive and useful GPS even better, and despite my best efforts I haven't managed to get the new one to power itself off, so it looks like they've fixed that problem too. Yay Garmin!

May 25, 2005

Spooky game

The old game of 20 Questions, also known as "Animal, Vegetable or Mineral" was always a favorite way of passing long car journeys when I was a kid, and my kids in turn play it, although rather than being in the car it's usually whilst waiting for food to arrive in a pub or restaurant. Josh Simons points to an online version where the computer guesses and you provide the answers, and it's pretty spooky. Sometimes you can see the chain of questions zeroing in on the answer, but quite often it asks a series of seemingly random questions before startling you with the correct guess. Needless to say there is a neural net behind it which learns from previous sessions. Seemingly the online version has been around since 1995, so I'm not quite sure how I missed it. Kevin Kelly provides a history of the program, and what is really neat is you can buy a tennis-ball sized version for less than a tenner - I'm sorely tempted!

April 22, 2005

Mobile Bollocks

A while back, inspired by Veghead's original version of /dev/bollocks for Linux, I wrote a version for Solaris (source code coming shortly!). In turn I used that to drive the TechnoBabble and MissionStatement generators that I blogged about a while ago. As I said in an earlier post, since being made redundant by Sun I've been hacking on Java using NetBeans, and very good it is too. I also stumbled across the NetBeans Mobility Pack wich allows you to develop J2ME applications, i.e Java applications that run on mobile phones. I was casting around for ideas of something to write, and a mobile phone version of /dev/bollocks sprung to mind. I'm therefore proud to present Mobile Bollocks for your delight and delectation. It should work on any Java-enabled phone - if your phone has any Java games on it, it should work. The webpage allows you to download it directly onto the phone if you have working net access on your phone, if not you can still install it if you have the appropriate PC software for your phone. There's also a phone emulator, so you can see what it looks like in your browser. As Veghead so succinctly put it, "Happy strategic planning"!

I wonder if I can get James Gosling to put a copy on his phone ;-)

March 20, 2005

Benchmark your phone

I stumbled across a rather interesting website that provides benchmarks and test results of the Java implementations on a wide range of phones. Being an ex-benchmark engineer, this rather appealed to me ;-) The results can be found here. You are supposed to be able to download the MIDlet by browsing the WAP page at http://wap.club-java.com/en, but I had problems reading that page. The direct URL of the MIDlet is http://www.club-java.com/TastePhone/TastePhone.jad, and that worked fine for me.

March 18, 2005

Improving the look of fonts under Swing

As I said in my last post, I've spent quite a bit of time over the last few days fiddling with Java, and one of the things that bugged me is that the fonts look pretty crappy because they aren't antialiased. The only way to do this in JVM 1.4 and before is to subclass every widget and/or install your own PLAF (Pluggable Look And Feel) - there are a couple of projects which have done this, for example wraplf and smoothmetal. However, as of JRE 1.5, there's a way to do this globally for your application:

    System.setProperty("swing.aatext", "true");

Unfortunately this doesn't work inside an applet as writing to a system property is forbidden and you'll get a security exception. You can achieve the same effect by adding -Dswing.aatext=true to the command line. If you want to set this for all applets you load, open up the Java Plugin Manager, go to the Java tab and click on the View button under Java Applet Runtime Settings. In the table, click on the Java Runtime Parameters field for the 1.5 JRE and enter -Dswing.aatext=true as the value, then save and exit. Voila, all your applets will use antialiased fonts.

Two birds with one stone

Since my employer Sun Microsystems informed me that I was being made redundant last month I've been on so-called "gardening leave", and for the first time in a very long time I've had time to do stuff just for the hell of it. I decided I'd take a look at NetBeans, a IDE for Java that I'd heard good things about.

After grabbing the latest JDK, at Gary's suggestion I downloaded a copy of the Open Source NetBeans IDE to have a play. I've never been a particular fan of IDEs, but NetBeans is actually very good. As well as the editor and debugger there's also GUI designer and a load of other bits, and it all works together very well. I particularly like the 'as you go' syntax checking which highlights errors in your code in much the same way as the auto spellchecker works in a word processor - the erroneous code is underlined in red, and if you move the cursor over the line you get a diagnostic message. The editor also support folding, something I first saw years ago in the Occam editor.

The next job was to think of something small but useful to write. Although I've already deployed some anti-blogspam measures on this site, I'm beginning to notice a gradual increase in attacks - inevitably the spammers are getting wise to the more common tricks used to put them off. Some countermeasures such as the "answer this maths question" approach used by blogs.sun.com are trivially circumventable. The most popular and sucessful countermeasure at the moment seems to be to use a captcha, but personally I don't like them as I feel they are intrusive, and despite the hype about them the implementations often have flaws that still leave them open to attack. The problem is that HTTP is a stateless protocol, so each page has to contain enough context to enable the server to verify that the response to the captcha is correct, whether that be a hidden form field, a cookie or whatever. Because of that, any such scheme is vunerable to capture/replay attacks. Even using HTTPS to encrypt the communication channel doesn't protect against the attacker viewing the page and/or cookie source and figuring out the protection mechanism.

I therefore decided that obfustication of the communication between the webserver and browser was probably a reasonable approach, and one way of doing this was to implement comment submission using a Java applet. However MovableType uses HTML forms and HTTP POSTs requests to submit comments, and as I didn't want to rewrite the back-end I had to figure out how to get a Java applet to behave as if it were a HTML form.

Continue reading "Two birds with one stone" »

February 10, 2005

IRC on the Nokia 6820

Whilst the SSH clients I found for my phone were an interesting gimmick, to be honest they weren't actually much use because of the small screen on the phone - a simple 'ls' fills up screen after screen, even on the tiniest (i.e. unreadable) font setting. I thought IRC might just be doable, and in fact there are several Java IRC clients available for phones. I tried WLIrc and jmIrc. jmIrc was originally a fork of WLItrc, and the shared heritage is evident. I couldn't load either of the clients over WAP onto the phone, but they both installed fine after I downloaded them and squirted them into the phone via the IR link. Once on the phone, both clients were configured as detailed in step 5 of my SSH client post.

WLIrc proved to be less than useable as it kept dying with a Java null pointer exception. jmIrc however seems to work fine, with just one minor quirk that I've been able to find so far - If you modify a connection profile and then quit rather than saving the entry it loses the entry, and the next time you start it it dies with an array bounds exception, the only fix is to reinstall.

Once you have started up the client you can set up profiles to connect to your favorite IRC servers, specifying which channels you want to join, your nick etc. When you connect to a server each channel is indicated by a small coloured square on the screen. Backgrounded channels that have had traffic since you last viewed them are highlighted by changing the colour of the indicator square for that channel. You can switch channels with left and right with the joystick, and you can scroll up and down with the joystick as well. The number keys can be used to page up/down a screen at a time, home/end etc. When entering text with the fold-out keyboard closed you can use the phone's predictive text feature to compose your messages in the same way that you would if you were composing an SMS message. All in all it's an impressive illustration how careful interface design can yield a truly useful application even when the platform it is running on is limited. If I had any boring meetings to sit through I'd certainly be using it to chat to people I'd rather be communicating with, but one of the benefits of being a remote employee is that I very rarely have to sit through any such meetings :-)

February 06, 2005

SSH on the Nokia 6820

I was reading a review of the Nokia 6820 over at The Register and I was intrigued to see that Idokorro had written a Java app for it that would give you SSH and telnet access. A bit more digging revealed that there was a free alternative in the form of MidpSSH. The idea of being able to log in to my server from my phone appealed to the inner geek, so I downloaded both to have a play. There are several variants available for the MidpSSH client, for the Nokia 6820 you need the "SSH2 Lite Build (SSH1, SSH2, reduced functionality)" for MIDP 1.0 - the phone only supports MIDP 1.0, and it won't accept applications bigger than 64K. The first problem I had was getting either of them to connect over GPRS - they both just hung when trying to connect. An email conversation with Idokorro tech support ensued, and that helped me get thinking along the right lines to solve the connection problem. The default GPRS profile that's supplied by Vodafone for the phone ("Vodafone GPRS") is set up for WAP access - it uses the wap.vodafone.net GPRS access point (APN) and uses a proxy between you and the outside. I figured that this was probably the problem, either the APN and/or the proxy wasn't passing the SSH traffic on port 22 through. I set up an alternate GPRS profile and everything started working. Here's what you need to do - note that these instructions will only work for Vodafone, you'll need to google for the correct settings if you use another service provider.

1. Go to Menu -> Services -> Settings -> Connection settings -> Active service settings and pick an empty service settings slot.

2. Choose "Edit active service settings" then edit as follows:
Setting's Name: I called mine "Vodafone GPRS Direct"
Homepage: I set mine to http://www.google.com/wml which gets you the Google WML search page, specially designed for phone use.
Proxies: Disable
Data bearer: GPRS

3. Choose "Bearer settings, then configure as follows:
GPRS access point: Internet
Authentication type: Normal
Login type: Automatic
User name: leave blank
Password: leave blank
Note: Some websites recommend you use "web" as the username/password, but it doesn't seem to be needed.

4. Now exit the configuration screens, select "Services -> Home" and the phone should create a GPRS connection and display the Google homepage. Press cancel until you get to the default phone screen.

5. Menu -> Applications -> Collection -> Select Application
and select the SSH application you wish to configure, then "Options" and configure as follows:
Web access: Allowed
Connect via -> Internet
then select "Vodafone GPRS Direct" or whatever you called your new connection profile in step 2 above.

6. Press "Back" until you get to the "Collection" selection screen, fire it up and you should be able to open a SSH connection to the machine of your choice.

Both clients are hampered somewhat by the small screen size on the phone, but the Idokorro one seems to cope with the limitations of the platform best - inputting text in MidpSSH was kinda clunky, but then for $45 (which seems a little steep) I'd expect the Idokorro client to be better. I don't have an immediate need for SSH access from my phone, but it was kinda cool to see it working all the same.

There's one other major advantage of setting up your own direct GPRS profile that I haven't mentioned yet - it apparently bypasses the abysmal Vodafone proxy and content management mess - Vodafone have decided it's their job to reformat and censor the internet, but unfortunately they've done an appaling job of it. Pictures that the phone can display just fine are removed, it's as slow as hell and it decided at one point that Ikea are providers of porn rather than of furniture. It even decided that this site contained adult content at one point, which offended me greatly - I've been accused of many things, but being an adult isn't one of them.

February 05, 2005

Nokia 6820

Nokia 6820My old Motorola Timeport finally gave up the ghost recently. To be honest it was always less than excellent anyway - I only got it because it was the only tri-band phone available at the time. The user interface was at best idiosyncratic, at worst unusable - certainly for sending SMS messages it was a joke - I used to challenge people in pubs to send a SMS in less than five minutes. I had a scan through the list of phones we can choose from, and quite liked the look of the Nokia 6820 as it has a really cute flip-out QWERTY keyboard - I figured that even I could sent a SMS using it! I paired it up with a Jabra BT250 bluetooth headset so I'm car-legal as well.

I'm really happy with the phone so far, and yes, even I can send text messages with it! The fold-out keyboard is quite useable, I can type quite comfortably with my thumbs on it. When you open the phone up to use the keyboard the display rotates around to match the orientation of the keyboard which is kinda cool. The phone has lots of toys, it supports GPRS, SMS, MMS, WAP, yada, yada, yada. It also has a simple inbuilt PIM so I can keep my diary and to-do notes on it. I used to use a Psion 5mx, but to be honest I couldn't be bothered carrying it around with me all the time. I've already started using the phone as my main diary, and it has got the balance between simplicity and usefulness just about right. I've also had endless fun downloading stupid ringtones onto it, however I have noticed that if you set up ringtone groups it doesn't always pick the correct one, which is a little annoying. It also has a 352x288 camera, but quite frankly it's useless - it's not only that it's low resolution but it produces pictures that look like they have been drawn by a three year old in wax crayon - and then left on a radiator for a week.

The phone also comes with some PC software that allows you to manage the address book and upload/download files to the phone. The phone shipped with version 5.8, but I subsequently noticed that version 6.41 was available from the Nokia website. I duly removed 5.8 and installed 6.41, and that's where my problems started. 6.41 couldn't see the address book entries I'd created with the earlier version, even after I'd de/reinstalled 6.41. And to cap it all, the 6.41 version was distinctly inferior to 5.8 - for example the address book editor wouldn't let you assign contacts to caller groups, and wouldn't allow you to assign email addresses to contacts either. I tried rolling back to 5.8, but that also didn't work any longer. In the end I had to uninstall the software and manually delete all files and directories it had created, and then go and manually delete all the registry keys that had 'Nokia' in them - eek! However, on reinstalling 5.8 everything started behaving. I contacted Nokia tech support and they gave me a strong hint that 6.41 was to be avoided in favour of 5.8, so 3 out of 10 for the software, Nokia!

The phone has a web browser which is OK in a 'WAP is pretty crap' way - I used it to check the reviews for the rather good Gurkha restaurant we ate at in Fleet when we were down there on Monday, and I suspect it might also be useful for cheating at pub quizzes ;-) The other thing that intrigued me was that the phone has an email client that includes IMAP support. My service provider (Vodafone) supplies it's customers with a free email account - if you register and upgrade your voicemail account you can manage your voicemail from the web, and if people email your vodafone.net email address you can get the emails read out to your phone by an electronic lady, which is kinda spooky. The website gives instructions for how to set up Microsoft Outlook to work with the email system and from that I figured out how to do the same for the email client on the phone. I thought I'd document it here as it will probably work for any similar Nokia phone. The first step is to register to upgrade your voicemail account, then configure the phone as follows:

1. Menu -> Messages -> Voice messages ->Voice mailbox number
and set your voicemail number to 242 instead of 121.

2 . Menu -> Messages -> Message settings -> E-mail messages -> Edit active e-mail settings
and configure as follows:

Mailbox name: vodafone.net
E-mail address: yourname@vodafone.net
My name: Your Name
Outgoing (SMTP) server: smtp.vodafone.net
Incoming server type: IMAP4
Incoming (IMAP4) server: imap.vodafone.net
IMAP4 user name: yourname
IMAP4 password: yourpassword

Then go into the "Other settings" submenu and configure as follows:

Use SMTP authorisation: Yes
SMTP user name: yourname
SMTP password: yourpassword

Then go into the "SMTP connection settings" submenu and configure as follows:

Proxies: Disable
Data bearer: GPRS

Then go into the "Bearer settings submenu" and configure as follows:

GPRS access point: Internet
Authentication type: Normal
Login type: Automatic
Username: leave blank
Password: leave blank

Then select "back" twice and go into the "IMAP4 connections settings" submenu and configure exactly the same as the "SMTP connection settings".

If you now fire up the email client you should be able to both send and receive emails via your vodafone.net account. One thing to note: the phone email client doesn't delete messages on the server even if you delete them from the phone, so you'll occasionally have to log on via the web interface to delete them. You can use the web browser in the phone do do this - the web-based email system is linked to from the Vodafone mobile homepage.

January 19, 2005

lastminute.com were here...

It looks like someone at lastminute.com found my technobabble generator to use in their "The boss is watching - look busy" page - all the words in those phrases are in my seed file, and like the generator they have 10 entries in the list.

Interesting...

January 12, 2005

A walk and a new desktop background

I was supposed to be helping with the helicopter lift of heather brash onto Bleaklow again today, but because of high winds it was scrubbed. As I'd already booked the day off from work, I decided I'd go for a walk anyway. I walked up to Glossop Low, up to Wain Stones then off via the top of Dowstone Clough to Ferny Hole then down Shelf Benches. I was coming down Shelf Benches just before 4:00pm as the sun was beginning to set, and snapped this image - I particularly like the clouds. Apart from running a filter over it to remove the JPEG noise introduced by the camera, I've not manipulated it at all. I toyed with making the foreground a little less dark and increasing the saturation, but I quite like it as it is - it perfectly sums up the mood of approaching dusk on a blustery Peak District winters day. I've set it as my desktop background, the limited number of colours and bold contrasts work rather well.

July 11, 2004

Website registration and avoiding spam

I occasionally want to visit a website (e.g. The New York Times that requires registration, and I object to having to give out my personal details and email address - I already get quite enough spam. I've come across the following services that can help out:
  • bugmenot provides a pool of pre-registered usernames and passwords to commonly accessed websites. If you are feeling altruistic you can add your own for others to use.
  • spamgourmet provides disposable email addresses - the first 3 emails sent to the disposable address are forwarded to your real email address, subsequent ones are discarded.
  • mailinator provides another source of disposable email addresses, but with this site you don't even have to register first, you just make up an address and then go to the website to view the mails.

June 12, 2004

Perl 5.8.4 lands in Solaris 10

*********  This mail is automatically generated  *******

Your putback for the following fix(es) is complete:

    5040539 Perl 5.8.4 should be integrated into S10
    4915255 perl tries to force -xc99=%none on embed clients
    5059815 Perl should have perlgcc out-of-the-box

These fixes will be in release:

        s10_62

The gatekeeper will mark these bugids "fixed" and "integrated" in bugtraq
as soon as the gate has been delivered to the WOS.  However, you can mark
them "fixed" (but not "integrated") now if you wish.

        Your Friendly Gatekeepers

-------------------------------------------------------------

As part of the day job I look after the version of perl which is included in Solaris, and as perl 5.8.4 came out fairly recently I thought I'd better do an update - the text above is from an email sent by the automated system that monitors integrations into the Solaris source repository or 'gate' . Several hundred people have checked in changes to Solaris 10 so far ('putback' in SolarisSpeak), so the Linux model where everthing funnels throught Linus just wouldn't work for us. Also, contrary to common misperceptions we don't 'port' Solaris to x86 after doing the sparc version, both are developed in parallel and there is one common source tree, so we have to develop, debug and test on both platforms before integration. In fact my workstation at home is a sparc box, and the one at work is an opteron, so like all Solaris developers I have a foot firmly in both camps.

Putting pack changes into Solaris can be quite a daunting experience, as everyone who works on Solaris receives a copy of the putback notification, and if your changes don't stick, a copy of the followup notification as they are backed out of the gate. The source repository or 'gate' machines (one sparc, one x86) run last night's build of the OS, so if you screw up and break the gate machines it means that all those people also know about it, and nobody can integrate until it is fixed - which concentrates the mind wonderfully when you come to integrate your stuff ;-) Every 2 weeks we glue together all the bits we ship - Solaris, X11, Gnome, CDE, Java and so on into the WOS ('Wad Of Stuff') and put it all through a series of test suites, then we do the whole thing over again two weeks later. It's one of these fortnightly builds that is periodically released as the Software Express for Solaris builds, or 'SX' for short, and we run them internally on lots of systems - for example Solaris developers run them on their desktops, and the main 2000+ user NFS server that holds the engineers home directories runs the numbered builds as well.

As far as the perl 5.8.4 integration goes, I'd like to thank Nick Clark and Rafael Garcia-Suarez for their help (they are the people currently coordinating the perl 5.8.x release series). We spent a morning on IRC discussing which additional patches to perl would be advisable over and above stock 5.8.4 - Rafael is the Mandrake perl maintainer to boot, so the Solaris and Mandrake patch lists are remarkably similar ;-) I found a couple of minor perl warts on the way through and they have made it back into the perl perforce repository for 5.8.5.

In addition, I've integrated a version of PerlGcc into Solaris 10. This allows you to use gcc to build modules from CPAN, the perl module archive. As perl is built as part of Solaris, it uses the same compilers as the OS, the Forte ones. Because perl stores the details of the compiler it was built with for use when building modules, you normally need to build any add-on modules with the same compiler as you used to build perl in the first place. PerlGcc provides a drop-in replacement for the appropriate config files, configured to used gcc instead of the Forte compilers. (You can grab a prebuilt copy of gcc from here). For those of you who still on Solaris 8 and 9, you can get a version of PerlGcc from here on CPAN. Unfortunately there is one slight wrinkle, if you've updated ExtUtils::MakeMaker it probably won't work. I had to make some changes to MakeMaker to get PerlGcc to work, and these are specific to the version of MakeMaker that was shipped in Solaris. I have come up with a generic way of doing this, and although the necessary changes have been submitted and will be in the next version of MakeMaker to be released, they aren't available yet. I'm hoping to release an update to the PerlGcc on CPAN over the next couple of weeks or so to work around this - check back here for announcements.

June 01, 2004

Dead man walking

I've been following with interest the various conversations on the meanings of 'open' and 'free' as applied to software, following on from a posting on Groklaw, and spilling over onto Simon Phipps's and Geoff Arnold's blogs. The original trigger for all this kerfuffle was a slightly dubious article on EWeek, which according to Simon Phipps was largely fabricated to make it look contentious. The Groklaw thread contains the usual quota of Linux conspiracy theorist rantings, as evinced by the following fairly representative snippet:

The intent is to get everyone to develop in C# or Java and then to use that lock-in to gain massive control over the market. Then, they can do things like pull Java support from Linux and sink Linux because all these Java apps will no longer run on it. Or... they can rake in the bucks by making the JVM cost money for "other platforms" (other than Solaris and Windows) and at the same time drive people toward those platforms.

MS may have realized that everyone does not want Windows. So, they are making an alliance with Sun. The intent is to create an oligopoly whereby both companies conspire to herd the industry toward their products and above all *away from open source*.

I've expressed my opinion of these paranoid individuals in an earlier post, so I don't propose to rehash that again, I'll merely state that in any ecosystem monocultures are a bad idea, be it a Microsoft, Sun, IBM or even (Gasp!) Linux monoculture.

What I would like to say is that the increasing popularity and consequential commercialisation of Open Source is very much focused on the rights of those consuming OSS and not those producing it, and this has largely removed the attractiveness of contributing. Even the GNU philosophy statement is clearly slanted towards the interests of the consumer and not the contributor - as it says in only the third paragraph (the italics are mine):

Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

A commonly repeated Open Source myth is that it is all 'Free', be that 'free as in beer' or 'free as in speech'. Well it isn't. The GNU GPL certainly doesn't fit my definition of 'free' as in 'completely unencumbered', it places some significant constraints on what I can and can't do with GPL software. I'm not saying that the restrictions are unreasonable, but to pretend that GPL == Free is disingenuous at best. It's also indispuitable that the GNU crowd are pushing a political agenda, which may have been appropriate at one time when the Open Source movement was starting up but I'm far from persuaded that it is still appropriate. However like many radicals who have defined themselves by the presentation of their argument rather than it's content and goals, they seem unable to recognise that things have changed and they should therefore do the same. The other myth is that Open Source is zero-cost. Again, this is palpable nonsense. Most people who develop Open Source software are either doing it with the tacit agreement of their employers, or are doing it in their own time - neither of these are 'free' in my book, and that follows right the way through the entire Open Source food chain. Open Source is a bit like the UK National Health Service - it's free at the point of delivery, but one way or another we all have to pay for it in the end.

When the Free Software/Open Source communities first began to evolve there was an important attractor to them that seems now to be mostly ignored - not only was the software free, but individuals were free to contribute, and the community was open to all. Generally people joined an Open Source community because they couldn't scratch their particular itch any other way - either because their employers didn't provide them an environment in which they could contribute in the way they wanted to, or to get access to a peer group that would have otherwise been inaccessible to them. I remember when I began to contribute to the perl community - at the time I was in a job where I didn't have the opportunity to write code, and I got a real kick out of working with a group of peers, and in fact I still do. However the fact that large amounts of money are now washing around the Open Source world means that I for one would think very long and hard about becoming involved in anything else, when the Venture Capitalists might appear around the corner at any time - witness the MovableType fiasco that I've discussed in earlier posts. I don't think I'm alone in this, I've heard similar sentiments from my friends. Even the perl community has it's share of 'professional pundits' who see it as a quick and easy way to make a name for themselves, but by and large their opinions are only valued by those outside the community - we all know who they are, and how much they really contribute. Nobody minds people who have put a large investment getting something back, but people who take and don't give are generally treated with the scorn they deserve.

One example of the way the old 'grass roots' spirit is fast disappearing is the O'Reilly Open Source Conference. This actually started as the Perl Conference, but over the last few years it has become nothing more than a huge PR vehicle for the various Open Source pundits to read out a stream of press releases to the adoring Open Source wannabees. Rather than being a a chance for grass-roots folks to get together, the whole thing has become completely dominated by the various big-business backed agendas. The last one I went to in San Diego had the not-very-edifying spectacle of RedHat handing out fedoras to everyone who was going in to one of the conference sessions that Microsoft was holding - pretty pathetic really. And if I look at the list of featured speakers for this year's conference it is dominated by CTOs, VPs and managers - people who by and large are only capable of talking about Open Source rather than doing. Several of the people I know in the perl community now don't bother with OSCON, unless someone is paying for their ticket. In fact some of my colleagues went to OSCON last year, and when they came back I was asked in all seriousness if perl was dying, as there were so few perl people there. The answer is no, we've all gone elsewhere, for example the most excellent YAPC (Yet Another Perl Conference) series of self-organised grass-roots conferences. I went to YAPC/EU last year both to do the perl-related stuff and to hang out with my friends, and I'll be going to the conference in Belfast again this year for the same reasons - I certainly won't be going to OSCON if I can avoid it.

The current Open Source boom grew out of an unique set of circumstances, however I'm not sure that they actually exist any longer. Oh for sure the software that it has already given birth to will continue, but I just wonder how many of the quiet folks in the background who have put in the herculean efforts necessary to give Open Source life will be prepared to contribute to the new projects which must follow if Open Source is to survive. Big business has latched on big time, and I doubt that corporations with shareholders on their backs are going to be happy in the long run trusting their corporate family jewels to a load of scruffy geeks. It's quite amusing to see people scrambling over each other trying to be the 'Acceptable corporate face of Open Source', but by and large the people doing this aren't actually the ones who are producing the aforementioned Open Source - and if I'm the kind of person who has the skills to contribute and who enjoys working with others and doing cool stuff, why on earth would I be interested in helping out the leeches who just want to make a name for themselves off of my efforts? Any organism that carries too high a parasite burden will eventually succumb, and I fear the Open Source movement is rapidly reaching that point - a dead man walking.

Open Source is dead, long live Open Source.

May 01, 2004

Open Source Solaris

Excerpt from http://www.infoworld.com/article/04/04/30/HNsolarisgpl_1.html:

Sun Microsystems Inc. may be selling servers running Linux, but that doesn't mean it is cutting back on the evolution of Solaris. Among its plans, the company is considering offering a free, open source version of its flagship operating system, said Jonathan Schwartz, the company's recently appointed president and chief operating officer.

Also see the associated slashdottery at http://slashdot.org/articles/04/05/01/1235209.shtml

Boy, am I interested to see how this plays out...

April 30, 2004

Technobabble

Because it's friday and I'm in an end-of-the-week-and-bank-holiday-monday kinda mood, I present for your intellectual edification and report writing needs, Technobabble and MissionStatement, both providing an endless stream of high quality drivel. They are both actually just the HTMLified output of a Solaris device driver I wrote some time ago. "Why do it as a device driver?" I hear you ask. "Why not!" is my reply.

I haven't updated the driver.conf file with any new seed words for a while, so if you have any choice and of-the-moment phrases that I could plug in, send 'em along!

April 06, 2004

It seems The Register reads Planet Sun too...

It seems the staff of The Register read PlanetSun.org as well - they've quoted Geoff Arnold's blog entry on the momentous Sun/Microsoft rapprochement in this article. Odd, seeing as though Andrew Orlowski, the author of The Register article has previously expressed his disdain for all things blogish.


Update: Seems the above isn't true: Geoff tells me he often corresponds with Andrew Orlowski (see comments below). Shame :-)

According to the article, a Sun employee has mailed The Register saying that "this whole thing has my gut in knots" and "I used to follow Scott blindly". Sheesh, get a grip man, it's just a business decision. Although I really like Sun and consider it's the best company that I've worked for (and I've worked for a few), it is when all is said and done, just a business - not a goddam religion.

The other thing that's tickled me about the whole Sun/Microsoft deal is the 'You just can't win' aspect. For a long time Sun has had lawsuits pending against Microsoft, which was widely considered to be A Good Thing and About Time Someone Got Some Money from Them. Now Sun has trousered the money, it's seen as some kind of betrayal, some kind of humungous corporate sell-out. Well excuse me, but what exactly was the point of the legal action in the first place?

The same thing applies to the other part of the deal, the agreement to work more closely with Microsoft. Again, for a long time Scott McNealy has been criticised as being too focused on being anti-Microsoft, too intransigent in his dealings with them. He's obviously listened, and taken it to heart - which must have been personally difficult as he will have known the likely reaction - and gone and built some bridges. Now as a result he's weak, he doesn't know what he stands for, he's a Microsoft lickspittle, he can't possibly continue at Sun because it represents too much of a culture shock for him to cope with and so on.

Lastly I've been very amused by the way the way the Linux Klan are so self-absorbed (I think "up themselves" is the exact phrase I'm looking for) that they can't believe that there is anything in the IT world isn't centered entirely on them. As I've said before, they are convinced that "There is a global conspiracy which is striving to destroy Linux", and they seem only to be able to see the announcement as some sort of attack on Linux. One very prominent member of the Open Source world phoned up one of my colleagues after the announcement last friday and asked him "What does Microsoft's d**k taste like", which I think nicely demonstrates the mindset of the radical wing of the Linux movement.

I'm still desperately trying to convince myself that the vast majority of the Linux community don't subscribe to this extremist "Them or Us" manifesto, and that as with many things in life, moderate people are usually exactly that - moderate - and so they don't get a hearing. Unfortunately the Linux community seems to becoming dominated by these bigots - I'm not sure how many of them actually contribute anything except copious quantities of invective.

April 02, 2004

Sun weblog aggregator

I was looking through my web server stats for today (with http://awstats.sourceforge.net/, highly recommended) and I noticed that someone or something on a BT ADSL line had been accessing my site quite heavily. Being a nosey sod I went exploring to find out who it was - it turns out it is another Sun engineer down in Watford (Hi Dave!), and he's put together a web RSS aggregator for all the Sun folks he's been able to find who have external blogs. It's kinda neat - see http://planetsun.org/

February 19, 2004

Email smellorama

I just noticed a very bizzare item on the BBC news website. Seemingly Telewest (a UK ISP) is "testing a system to let people to send aromatic e-mails over the internet" and "It has developed a kind of hi-tech air freshener that plugs into a PC and sprays a smell linked to the message." According to the article, it is capable of producting up to 60 different smells and could be yours for a mere £250 pounds.

I dread to think what the senders of the various unsavory emails which flood into my inbox could do to a gizmo like this. Ewww....

Update: This has been picked up by Slashdot - only a day later. Way to go guys...

January 12, 2004

Java, Java Webstart and SOCKS

When connected to work via VPN I live behind the corporate firewall. Unfortunately this means that I can't connect to the various Go servers, as the firewall won't allow you to connect to arbitrary port numbers. There is a way through the firewall, using a SOCKS proxy, but most of the various Go server clients are Java Webstart applications, and WebStart applications can't unfortunately talk SOCKS, nor can they be sucessfully SOCKSified using the normal runsocks wrapper. In fact as far as I can tell, Java apps in general can't talk SOCKS unless they have been specifically written to do so. The consequence of this was that I had to keep dropping the VPN connection every time I wanted to play Go, which was a pain. Never one to let a little adversity to stand in my way, I came up with a solution, which might be of interest to others - if you are such a person, read on.

Continue reading "Java, Java Webstart and SOCKS" »

November 07, 2003

Putting GoogleBot on a leash

As I noted earlier, I get a lot of hits from the Google web indexer GoogleBot (252 visits last month), in fact various web crawlers are the most frequent visitors to my site. Whilst most webwranglers know about the robots.txt file and how to use it to control the activities of robots when they visit your site, it is a bit of a blunt instrument, as it can only exclude entire subtrees from being indexed.

There is a more fine-grained way of controlling the way Google and other robots index your site using a <meta> tag to direct the robot. This is mentioned on the GoogleBot page linked to above, and the official specification is available here. The basic principle is very simple, you need to add a line of the form

<meta name="robots" content="noindex,follow" />

in the <head> section of your HTML documents - for MovableType you can add them to your templates. The content attribute has just four possible permutations:

  • content="index,follow"
    Index the page itself, and follow all links from the page.
  • content="noindex,follow"
    Don't index the page itself, but follow all links from the page.
  • content="index,nofollow"
    Index the page itself, but don't follow any links from the page.
  • content="noindex,nofollow"
    Don't index the page itself, and don't follow any links from the page.

Not all robots take notice of this directive, but Google certainly does, and you can use it to prevent it indexing rapidly-changing and low-content pages such as your main index page and your TrackBack entries.

It did occur to me that I could perhaps hack up my favicon.ico Apache module to insert the meta tags automatically, but for my limited usage it didn't seem worth the effort.

More favicon.ico fiddling

I finally got bored with sticking <link rel="shortcut icon" href="/favicon.ico"> tags into all my HTML files to prevent favicon.ico clutter filling my Apache logs, so I wrote an Apache module to do it automagically for me. The module allow you to specify which favicon.ico file you want for a particular subtree of your website like this, for example:

# Blog
Alias /blog /var/apache/blog
<Directory /var/apache/blog>
        SetHandler      perl-script
        PerlHandler     Apache::FavIcon
        PerlSetVar      FavIcon /blog/images/favicon.ico
        : 
</Directory>

You can also override any existing tag by using PerlSetVar FavIconOverride On flag. The module is also Apache::Filter aware, so it can also be used with CGI scripts. Download the Perl module if you want to have a play, and you can get a blank favicon.ico file here. If enough people are interested I may get round to packaging it up properly and putting it on CPAN

October 05, 2003

Blog introspection

In one of those occasionaly odd instances of synchronicity, on Friday I installed AWstats on my machine so I could look at the access logs for my site a bit more easily, and on Saturday I found this survey of weblogs referred to by The Register. This got me thinking (hey, it doesn't happen that often) about blogging in general, and my blog in particular.

Continue reading "Blog introspection" »

September 30, 2003

Linux flame bait

Having recently being on the receiving end of a particularly nasty piece of unprovoked and downright abusive flaming on the #perl IRC channel, I decided another spoof book cover would be cathartic, so here it is.

Before I get even more flames directed at me, let me quite clearly state that I have nothing against Linux, it is very good at what it does, and is all the more remarkable for being developed by a large cooperative group of altruistic people.

However what I can't abide are the clueless individuals who seem to have adopted Linux as some sort of surrogate religion. It seems to me that the most vocal of these misguided bigots have often never contributed anything to any open-source project. They are quite happy to take advantage of the work contributed by others without giving back anything to the community - but then again, most of them probably don't even have the ability to contribute in a constructive way anyway.

I've observed that these people generally seem to have a common set of dogmas:

  • Nothing existed before Linux.
  • Everything of any importance was invented by Linux.
  • Everything that is not Linux is Evil.
  • There is a global conspiracy which is striving to destroy Linux.
  • Anyone who actually earns their living writing software is a pawn of an Evil Empire.
  • World domination and the destruction of the Evil Empires is the destiny of Linux.

In the real world these people would be prime candidates for psychiatric treatment, but in the alternate reality that these people exist in, this behavior is considered to be "normal".

As I said, I have no gripe about "Linux the OS", just "Linux the religion".

There, that's my little rant over - I feel much better :-)

September 25, 2003

The Camel has landed

At last! Perl 5.8.1 has finally been released. Unfortunately when Jarkko sent the announcement to perl5-porters, he omitted to mention that he has released a new book at the same time ;-)

Many thanks to Jarkko for the immense amount of effort he has put in to get 5.8.1 out, I'm sure all the other people on p5p are aware of just what a difficult job it has been.

Click on the thumbnail for a larger version.

September 18, 2003

Perl 5.8.1, so near yet so far...

Anyone who subscribes to the perl5-porters mailing list knows just how difficult it is proving to be to get perl 5.8.1 finished and shipped, and how incredibly patient our long-suffering Pumpking Jarkko Hietaniemi is being. I often marvel at his seemingly superhuman endurance, and it occurred to me that he might well have supernatural assistance...

Click on the thumbnail for a larger version.

Zeit... what?

Gary pointed me to this spoof Unix manpage, I even found it quite funny once he explained to me what Zeitgeist was ;-)

The God as a computer programmer Q&A is quite amusing too.

September 17, 2003

Scenes You Seldom See

spam.gif

Private Eye has a regular series of cartoons entitled "Scenes You Seldom See". Bearing in mind my recent experiences with spam, I thought this was rather amusing :-)

September 13, 2003

Oooh.. New toy... Shiny...

Flushed with success after my recent Paint Shop Pro exploits, (here and here), I decided that in the interests of avoiding RSI I needed something better than a mouse to draw with, so I bought a cheap (~ £60.00) A4 tablet, a Trust 1200. This makes drawing much easier, after the initial clumsiness caused by switching from a relative-position mouse to an absolute-position pen. I've also explored some of the more arcane features of PSP - the 'paint with a texture' feature is a complete waste of time, but being able to control line thickness , colour intensity or a host of other features by varying the amount of pressure on the pen is a real boon. I've also noticed that heavy use of the warp brush makes PSP unstable, and it crashed a couple of times and didn't get better until I rebooted - Doncha just love Windoze. Anyway, I was fiddling around to see how I could enhance the following not very inspiring photo:

And kinda got carried away and ended up with this:

However, compared to some of the digital art (created from scratch) that I have seen on the web, my effort looks a bit second rate. Never mind, it kept me amused for a while :-)

September 07, 2003

Why doesn't CSS have macros?

I've been fiddling with the stylesheet for this blog, and one of the annoying things is that CSS doesn't seem to have any mechanism for defining macros, for example I may want to use the same colour in several different CSS rules, and rather than having to specify it explicitly each time I'd like to define it once and then use the symbolic name. This would make it much easier to make global changes to stylesheets, e.g. changing the background colour of all elements. I have no idea why this wasn't in the CSS spec - it seems like such an obvious requirement.

Anyway, I noticed that MovableType has a mechanism for defining and using variables in its templates, like this:

<MTSetVar name="background" value="#404040">
...
.someclass {
        ... 
        background:        <MTGetVar name="background">;
        ...
}

Which seems like just the job, so I've changed my stylesheet template to use that as a way of specifying and using various global values.

However, it doesn't seem to be possible to get MoveableType to just expand the stylesheet template, and regenerating the whole site just to try out a stylesheet change very quickly gets to be a pain. I've therefore hacked up this little script to expand the MTSetVar and MTGetVar tags so you can do this:

$ expand_ss templates/stylesheet.tmpl > stylesheet.css

Update: I've found a MovableType extension script that will allow you to rebuild bits of your MT blog from the command-line here, which seems like a much better solution, as it will expand all and any MT tags.

September 05, 2003

Paint Shop Pro 8 rocks

I have a copy of Paint Shop Pro 7 that I used to create the now-infamous spoof Perl 6 book cover, and I noticed that version 8 has come out, so I phoned up and ordered the upgrade for £50.00. Version 8 has loads of whizzy new tools for fiddling around with photos, and it is a fraction of the price of the more well-known Adobe Photoshop (£84.95 vs £585.99 for the full versions). PSP does more than everything I need, and for the life of me I can't see how Photoshop can justify being nearly seven times more expensive. I've only just started playing with the new version, but already I've knocked up this image of my friend Elaine, the CPAN administrator, I hope she will be suitably offended :-)

Anyway, Paint Shop Pro 8, highly recommended.

Update I found some reports of people having problems with PSP 8 locking up and being slow, but I notice that there is a patch to bring PSP up to version 8.01 available he