Friday, October 24, 2008 1:04:51 PM (GMT Standard Time, UTC+00:00)
I picked up JsonFx yesterday as I could really do with a more.. declarative way of creating client-side controls when piddling about with Ajax for a browser-application type thing I am working on. JsonFX seems to provide a nice JBST system, along with data binding and support for compacting scripts/files on the fly, so I'm quite excited about getting into it.
I've had a few difficulties getting it working however, I just kept getting the glorious message "Error loading "~/scripts/sdctls/controls.merge". Either not found or a build error occurred." with no other information supplied. At the time of writing, this error message cannot be found on Google.
The actual JsonFX site is seemingly scant on documentation, and the starter kit was throwing the same wobbly, so I determined that it was either the way I was running the site, or something to do with the environment
Downloading the source for JsonFX and stepping through it, revealed a dependency on the MSScriptControl ActiveX component, presumably for validating scripts before shrinking them and sending them across the wire. Googling for the MSScriptControl dependency came up null though, for some absolutely bizarre reason, perhaps I am just fail at googling today.
Supposedly on not finding the component, an error is supposed to be added to the error handling system in JsonFX and therefore displayed, telling the developer to go download it, but this was not happening.
The ActiveX component can be found here, the Windows Script Control
Problem solved, I've got everything else working by looking at the rather excellent self-documenting starter-kit. If I come across any other gotchas I guess I'll post them, as this library seems rather new and there is very little on the internet about it
Sunday, September 28, 2008 1:22:40 PM (GMT Standard Time, UTC+00:00)
Started the new job about a month ago now, and I'm quite enjoying the actual job itself, the people who work there (and the money they pay).
One thing however, has taken a huge hit. I was often asked by a friend of mine how I managed to get so much stuff done when juggling personal projects with a full time job. The answer has become clear since doing this "real person" thing of commuting and spending standard hours at work. My productivity has absolutely plummeted, I come home too tired to do anything computer related at all. I have ended up either collapsed onto my bed listening to music, or spending time with my newly acquired girlfriend Jo (bad timing, but not complaining). This is not because I do more work at work, but because I'm actually having to travel into work and get up early to prepare, I'm suddenly devoting thirteen hours of my day towards the job instead of the normal seven or eight hours.
I shall resolve to do something about that soon, I can't afford to not be working on my personal projects, Scrobbles or otherwise if I am not putting things out there on the internet, if I am not creating time to learn new technologies then there is little point in being a programmer at all.
Today however, I am working on Scrobbles, my work ethic has not gone anywhere and I have resolved to cross a few things off the list, as pointless at it is in light of the above.
Url re-writing is now done finally, and I'm going to push forwards with getting the rest of the things ticked off as much as possible. And I'll keep you all informed with my coping strategy for developing personal code when faced with the Real World. I think I know what my solution is, but I don't want to talk about it until I know if it is going to work.
Tuesday, September 02, 2008 10:06:27 PM (GMT Standard Time, UTC+00:00)
Still knackered after this weekend, so I'll keep this one brief (which means I'll probably end up rambling and it will end up long, but we'll see).
Friday
On Friday, Jo and Ed turned up at my house with Alan (a guy I know from the British Sea Power crowd) who had kindly offered to give us all a lift up to Tan Hill for British Sea Power's idea of what a festival ought to be.
Friday was absolutely sublime in every way. We got to Tan Hill early evening, set up our tent, and went to watch The Witch and the Robot. Their set came complete with the expected shaving foam madness, but with the addition of a lovely video of snakes and a background video of wonderful TWATr style rambling on about witches and nothing in particular. Our favourite paper maché headed man came around with a vacuum cleaner while balloons with lovely phrases were handed out to the crowd along with badges and free albums. A bunch of guys with white suits came out and we took turns to draw on them with marker pens. The music was fairly damned good too (as expected of them by now!!!).

These were followed by Silvery who created fine fine circus inspired music, followed by possibly the best British Sea Power set I have ever witnessed. B-sides and rarely played tracks all over. Incredibly chilled out stuff. Grabbed a set list to take home too. It was especially pleasurable to hear North Hanging Rock played at last, just epic.
We didn't stay up too late past this and hit bed early. A fine fine evening though.
Saturday
Saturday was a day of potato rolling, tug of war, falconry (I GOT TO HAVE A FALCON LAND ON MY WRIST!!!), and I totally won the Welly Wanging competition (at the cost of a pulled muscle in my back). Beer was drank with a spoon, and crackers were scoffed mercilessly by our adopted team mate Andy the Gonzo Journalist. (Class act). Ed made a fine attempt at eating doughnuts without his hands, but sadly this was not to be.
I missed a bit of the music because I was just too tired for it, I did however watch a bit of I Like Trains and caught Matt Eaton and the Modern Ovens before going for a walk with Jo across the hills in the setting sun. It was a fairly amazing afternoon once we had gotten away from the hustle and bustle of the bar :)

The ensuing British Sea Power gig was just sublime, although I think the tracks could have been ordered better. It was delightful to hear some of the Decline Of tracks and OMG WOOOO WOOOOO, they played Hearing Aid!!! Well, it made me happy anyway, they made it sound just as it should too, and they ended it brilliantly.
After this epic set, we went outside to watch some fireworks which people had brought with them (I had donated towards a big pack organised by the members of the BSP forum) and sat next to a bonfire with Jo and had a chat with Scott and his wife Dawn. It was quite beautiful really. This was followed by more music from BSP and anybody else wanting to join in. According to the press the Arctic Monkeys and the Klaxons were involved, but to be honest I think they were too drunk back in the bar (yes, they were there too).
A late night on Saturday night, but a happy one nonetheless.
Sunday
Sunday we spent the entire morning chilling in the tent, only surfacing at around 1-30pm for some lunch before the afternoon activities. We ate lunch and played granny racing with somebody whose name I cannot remember and then went for a walk across the hills and sang songs. We returned cold and wet to watch the film Man of Aran, with a backing sound track played live by British Sea Power. That was sublime, so beautiful and settled a discussion Jo and I had been having about the meaning of the word "Bleak".
Being freezing cold, I headed back to the tent to warm up and was soon joined by Jo, who turned up just as the sun was setting, so I took some photos of that. I then read her an excerpt from my new book "Beautiful Code". I don't think she found it all that entertaining however so she was probably relieved when Ed turned up and turned our attention to chips. At about 11pm, Jo and I left the tent (and Ed, as he had fallen asleep) and went to get some mix cds from the lucky dip cd exchange, and a hot chocolate from the bar. It was probably the warmest part of the weekend sat there and I felt quite content at how everything had gone down.

Monday
An early night for us all and then a drive back the next day. 'Nuff said.
Thanks for everybody who was there for making the weekend what it was. Thanks for Ed persuading Jo that it was good idea to come on the weekend. Thanks to Jo for agreeing with Ed and giving up GenCon for a weekend of the raw northern outdoors (a big change from the poncy south). A MASSIVE thanks for Alan giving us a lift there and back. Thanks to British Sea Power for hosting such an event. It went down very well and I'd definitely go to another one of these if it ever happened!
An apology to the BSP regulars, who I managed to pretty much avoid all weekend despite saying I'd make an effort for a change. I don't know what happened there!!
Full flickr set can be found here: http://flickr.com/photos/robashton/sets/72157607055798896/
Thursday, August 14, 2008 12:31:01 AM (GMT Standard Time, UTC+00:00)
Ploughed through some stuff last night, so here is that to-do list with a few things removed, and the most recent items dealt with. The client is so much more stable now I've tweaked the connection string to turn on some options to deal with the ferocity with which the client can push/pull data from the cache. Also added a few new services so data can be submitted in nice little compressed batches, speeding things up to no end. On a train a while ago I wrote the SDK for .NET and I'll be duplicating that for PHP when I get the chance. The Wiki is actually halfway to being populated but I've had some ideas about that elusive graphical snippet designer so perhaps it won't be needed as much as I thought. We'll see.
Core Scrobbles
- Friendly URLs
- Referal system for 'earning' queries
- Compressed Raw Data Queries
Compressed Batch Data Submission
- Registration System
- Arbitrary Views (using Snippet System)
Automatic Data Submission (Scrobbles App)
- Security/Validation of All Existing Forms
Third Party
- Online submission of WoW Data
- Heatmaps (location tracking)
Community
- Wiki
- SDK for PHP
- Service Documentation
- Snippet Documentation
- Family/Key/Value Documentation
Wednesday, August 13, 2008 4:43:43 PM (GMT Standard Time, UTC+00:00)
After getting a few silly, random things exorcised from my system, I sat down last night and set to work on the Scrobbles client and libraries, as these have been neglected while I have been working on the core server-side stuff.
Last time I left them, I was dealing with some problems to do with the situation where the user upgrades the Scrobbles client, and that client uses a newer database schema for the local cache, or the web services change so data can no longer be submitted the old way. This is quite a rare occurrence, but it just so happens that in my latest overhaul a couple of months ago I completely changed the web services and now have 500mb of unuploaded data sat on my hard drive needing migrating one way or another. And if I'm going to do it nice, I may as well write a system that can cope if I have to change things again in the future rather than just doing a one-time migration on my computer alone.
I had a few options to choose from, that I could think of.
- When a new version of Scrobbles is installed, do an in-place migration from the old cache to the new cache
- Keep the old web services intact and add newer ones seperately, with migration happening server-side per submission
- Write an adapter for each new schema, mapping old data into new data before passing through any new code
Each of these had its own pros and cons, chiefly to do with the resources that each method would require from either the client computer or the server, but also to do with the maintainability and reliability of each method.
- Doing an in-place migration would require that it be capable of migration from any previous version to the modern version, and potentially have to migrate across several hundred thousand rows - this is hardly a background operation and would be prone to problems if migration was cancelled by the user.
- Not breaking older clients wouldn't give users an incentive to upgrade, and the server would have to start having to do quite a bit of work to translate older requests into newer ones, and having resolved to make these web service calls as thin as possible this would go against that.
- Adapting the data client-side moves the burden of translation from the server to the client, and while translation from any previous version would still be required, not being done in bulk would mean this could be a transparent process.
All the above would require that the client would have to be capable of dealing with there being multiple cache files present, and be able to find out the version of each cache file. Initially this was going to be achieved through naming the cache file by its version, but I've never been one for naming conventions having been completely previously disgusted by the heavy reliance of them in Lionhead's The Movies. I instead added a Metadata table to the cache database and set a version in that. This means this can be checked for with a simple query on opening the cache and the relevant actions chosen.
I decided in the end to go with the final option, of creating adapters around existing code, mapping various methods and classes through a common interface. It involves a bit of work anytime I have to change the data structure between storage and uploading, but it means not having to modify existing code that already works when upgrading. It also means that each client can deal with software that uses older versions of the client library to create old cache databases.
It doesn't strike me as the best solution because it doesn't feel as elegant as I generally like things to be, but it shall suffice as I don't expect to be changing things too often anyway!!
In other news, I have resigned from my post at the University of Reading, and have taken up employment elsewhere. This saddens me slightly, but the new company does look like it's going to provide some interesting times. Because it's a real job with a scary looking contract, I'll refrain from mentioning who they are until I know what their blogging policy is. I don't want to get in trouble by suddenly becoming googleable to those concerned.
Anyway, onwards to a great deal more money, and to a more structured day - it should be interesting (at least, until Scrobbles makes me a millionaire..
)
Tuesday, August 05, 2008 4:34:02 PM (GMT Standard Time, UTC+00:00)
This weekend I headed up to Kendal and had myself actually quite a good time, despite the gallons of mud caused by a downpour on Friday night. There are many complaints to be had about the organisation and the price considering the actual acts being put on, but I don't care about any of those things cos there was plenty of entertainment to be had nearly all hours of the day if you just loosened up and enjoyed the chilled atmosphere.
Friday
We arrived on Friday evening, and immediately set up the tent because it had stopped raining. No sooner had we finished doing this and got ourselves and stuff inside the tent then the heavens opened up and started soaking people outside still trying to put their tents up. The Friday night lineup was appalling so we just sat in the tent drinking and listening to the ambient sounds coming from the main tent which we'd parked our tent just behind.
Saturday
The previous night's downpour left us with a field full of mud, so after failing to find wellies that fit me, I just went bare foot and enjoyed it.
I ended up stripped down to a pair of shorts and was soon frolicking in the mud for pleasure. Later on while watching the guys photographed below (no idea who they are) I realised I was pissing blood from my foot after cutting it on something, but the mud and crap soon acted as a clotting agent and put a stop to that...
Photos end here as I was getting a bit drunk and I wasn't going to risk falling over in the thick mud and getting the camera dirty. A good evening though, slightly ruined by the Super Furry Animals being a crap band, but only slightly as the local Kendal talent during the day made up for that.
Sunday
Sunday the mud was getting a lot firmer and after grabbing breakfast I settled down in my favourite tent to watch some folk covers of some awesome songs by Johnny Cash and Steve Earle by the Wild Wood Band (known also as the Wyrd Strings when doing their silly stuff). Talented guys. That tent was lovely too, lots of straw to lie down in and a really chilled atmosphere to boot.
The sun was coming out and straw was being provided for people to relax in, and people started making mud sculptures out of the now rather substantial mud.
It was nice to see people enjoying themselves so I spent a couple of hours just wandering about, flitting between the various stages and getting the occasional cup of tea from my other favourite tent (a cafe serving five bean chilli and doing their own little DJ set).
Next up I met up with some of the delightful people from the bsp crowd and partook in smuggled cider and... another other questionable liquid. It was nice to see some familiar faces and I sat outside my favourite tent with them until it was time to go see The Witch and the Robot (one of my favourite bands at the moment). They were, as expected delightfully odd and a pleasure to watch once more.
Eamon Hamilton was on straight after and was another of the very pleasant acts on this day.
After this, we packed up our tent and after getting a photo of the festival flag in action, I put the camera in the car for the rest of the evening.
On arriving back into the festival site, I headed down to the dance tent where it was probably about time for EMF to be performing. For the novelty value they had to be seen and I was lucky enough to turn up just as they started playing "Unbelievable" and left straight after. Timing or what?!
British Sea Power were as always a delight to watch, and I met up with some fellow flag makers who I spent the rest of the evening with along with some other people who I had met during the day. Having people to help wave mine and Jo's massive flag was a real bonus, and by the end of it my arms were absolutely dead.
I had to spend an hour posing with people and the flag whilst they held on to me for support in the thick mud and I sank deeper and deeper... but I'm hoping at least I'll find a good photo to use in the competition.
A good weekend all in all, although slightly marred by the day after where my grandparents made me go to A&E for the aforementioned cut in my foot. They scooped out all the crap, x-rayed it to make sure nothing else was in there, bandaged me up, and put me on antibiotics while getting a telling off from the cutest nurse I have seen in a long time - I was not complaining. (Hey, if you're reading this get in touch yeah?
).
Trains on the way back were cancelled and I ended up getting a taxi from Birmingham to Reading courtesy of the rail services. Say what you like about our public transport but at least they look after you when things go wrong!
Wednesday, July 30, 2008 12:11:20 PM (GMT Standard Time, UTC+00:00)
With the success of the artwork we presented to The Witch and the Robot a few months ago ( see here ), when British Sea Power announced a festival flag and bunting competition I decided to re-enlist the help of the vaguely talented Jo to add a touch of class to the entry I wanted to put together.
That was over a month ago now.
After an initial three hour design session where we discussed concepts and bored the hell out of Owen with our ramblings, we came up with a vague plan involving a bedsheet and fabric to create a lion and a bear with some beer, and whatever else we came up with during the creation period.
A trip was organised to the rather excecllent Fabric Land to pick up materials and equipment to perform sewing and cutting activities with, and a bed sheet was procured from Woolworths.
Somehow, from this pile of material, Jo managed to craft a brilliant resemblance of the Lion from the third battalion pin I possess, and a really good attempt at the bear from Open Season, BSPS's second album. Owen cut some leaves out, in the style of the leaves from Decline Of [bsp] (BSP's first album) and I... made some stars and the pint of beer. The easy stuff because my fingers don't generally do what I want them to do and the hard stuff would just come out wrong.
All of this material had to be sewn onto the bedsheet by hand, and I've calculated that we've put well over thirty hours into this over the past month. Nevertheless, it has turned out quite well, so thanks to Jo for being a good little creative director, and thanks to Owen for his leaves as I don't think fabric and sewing were really his thing... he looked bored to death, bless.

Now to use the rest of the fabric to make a daft costume, and the rest of the thread to tie Jo up once we're done, she must not be allowed to fall into the hands of the competition.
Wednesday, July 23, 2008 12:13:35 AM (GMT Standard Time, UTC+00:00)
That weekend in Alicante left me interested in using photographs to show people the way I see things in this world.
I can't draw, I can't paint... generally anything I do with my hands is
pewp, and when I wielded the camera I felt a bit of power, so I've
borrowed Ben's rather nice DSLR for a bit so I can learn how to take
photos.
I've been using the manual modes on the camera, doing everything in my
power to make each photograph look like what I'm feeling and seeing in
a particular scene.
I've spent a week with it now, and I bought a photography magazine and
learned all about all this malarkey to do with the setting of aperture
size, the exposure times to go with that, and the iso rating of the ...
'film'? And what it all means.
I quickly realise that actually, this photography thing is a very neat
fit for somebody like me, because it suddenly all boils down to numbers
and knowing what those numbers mean. This is why I get on with
programming so well, so I feel at home setting up the camera to capture
shots.
Now, I owned a camera once, when I was 7. It was one of those simple
film jobbies which I used to do what thing that everybody else does
these days with their mobile phones, taking simple shots of whatever it
is you are looking at.
I don't want to do that, I want to capture the essence of a scene, to
take a bit of the soul home with me and show it to other people so they
can understand what I found beautiful about something.
So, without further ado, some pictures from my first weekend of
learning with the camera. I am quite pleased with some of the results,
especially as this is my first go with a camera since that one I owned
when I was 7.
Attempt Two: Switzerland and France
I hadn't read anything yet, so I was mainly winging it from fiddling
with settings and working out from hearsasy what they were all about. I
wish I could go back and take some more with just what I've learned
from the past couple of days!
The full set of Geneva shots can be found here.
A lamp in France

It was quite dark, as the sun was setting, and I noticed the sun was
throwing light through the orange of the lamp and onto the tree behind
it. I took a few shots of it with different settings, and this is the
one that came out best. Perhaps a different angle would have worked
better, but it was the first shot that came out that gave me any level
of satisfaction.
F-stop: f/5.6
Exposure time: 1/60sec
ISO speed: 400
Had I had the tripod with me, this would have worked a lot better with
a lower exposure time, and flipping the ISO speed back to 100 where I
didn't get such a grainy picture. Ah well - live and learn. This was
before I bought the magazine for education and inspiration.
Olives in the Market

We visited the market and I thought it would be a good chance to try
and get some colourful shots of some goods on display. The olives were
a no-brainer, and the cloth-stand one came out quite well too.
F-Stop: f/8
Exposure Time: 1/160 sec
ISO Speed: ISO-400
Wtf? ISO 400? That was an accident, and by using the light-meter I
compensated by upping the speed of the shot without really thinking
about it. Whoops. Had I known about aperture at this point, I'd
probably have taken a few shots with different layers of olives in
varying amounts of focus. Still would have probably chosen this shot
though.
Attempt Three: Campus
Okay, so I read a magazine on the plane, and some articles on the
internets. I'm an expert now right? Okay, joking aside, after spending
the day at home working, I walked into campus and took a few nice shots
and they made me happy.
The full set can be found here
Woodland Trees

Having learned that I can get quite a range of depth of field by using
a small aperture size, I took this one by bringing it down, and upping
the exposure time to a decent length of time. Sticking the camera on
the ground on the tripod, and using a timer so I don't have to touch
the camera and blur the photograph. It's quite dark under the trees
too, so it's sort of necessary.
F-Stop: f/10
Exposure Time: 2 sec
ISO Speed: ISO-100
As much as I like shooting from the floor, it would have been nice to
use a proper tripod in this shot and take it from the vantage point I
had personally.
Woodland Floor

The floor is quite a pretty and overlooked place as people stamp all
over it, so I got down and dirty and took a shot of the undergrowth. It
turned out ok, despite the darkness under the tree canopy.
F-Stop: f/11
Exposure Time: 1 sec
ISO Speed: ISO-400
I upped the ISO earlier because I was taking pictures of some moving
animals under the canopy, and forgetting to turn it down again the
exposure time wasn't quite as long as other shots. It didn't make the
shot too grainy thankfully. I should have used a much smaller aperture
size I think, and upped the exposure time, this was quite early on and
I hadn't quite worked this out yet.
Woodland Floor

Another shot from the floor, but this time looking at the overall
scene. Really narrowing the aperture size so I can get a good focus on
the entire thing. This meant an obscene exposure time, but I think it
turned out ok.
F-Stop: f/16
Exposure Time: 6 sec
ISO Speed: ISO-100
I think I've got this sussed, and decide to go home. I'm looking
forward to learning more, this is only my third outing and I feel as if
I'm getting the hang of it already.
I know a few of you actually take photographs as a hobby, have you any
hints to give me from looking at the above? Am I making any stupidly
rookie mistakes? I wouldn't be surprised if I was...