Dojo checkboxes

I recently hit this snag when working with Dojo. Basically I wanted to set the checked status of a checkbox on a webpage programmatically. Simple you might think? Apparently not as easy as it should be.

Interaction with checkboxes has changed slightly in Dojo 1.1 (apparently) but myCheckbox.setValue(true) should be valid. When calling dojo.byId('my-checkbox-id').setValue(true), I was getting an error saying the method didn’t exist. The object was definitely the checkbox as I could determine the correct checked state from that object (myCheckbox.checked) so I was very confused. I then remembered another way to access objects with Dojo is using the HTML attribute ‘jsId‘. This creates a global javascript variable referring to that object in the DOM. So I set something like jsId='myCheckbox' and then called myCheckbox.setValue(true) and it worked!

Very odd behaviour. I can only guess that the javascript object created by Dojo using jsId and dojo.byId() is a different bit of code and creates an object pointing to the DOM checkbox object in a different way. Very strange but at least there’s the workaround above…

Increasing SPARQL performance

Recently I’ve been playing (for work, honest!) with the Semantic Web related technology SPARQL, a query language for RDF. I ended up creating some very complex queries for my OWL ontologies that were being executed through Jena, a Java framework for building Semantic Web apps. These queries were running so incredibly slowly that I thought we might have taken the completely wrong direction for the project and would have to start from scratch. Actually it turns out I was doing something wrong which is always good to hear…

After looking at some code by someone else in my department that had done some similar work before, we realised that they were setting a specification that defines the language and reasoner to use when creating the ontology model. Now they had no idea why they were setting that but doing the same in my code resulted in a 700% performance enhancement! Quite a productive day :D .

So if you’re ever using SPARQL and Jena and having some performance issues, remember to set the appropriate specification (in my case OWL_DL_MEM).

Web 2.gareth

Ok, so given that I enjoy working with Web technologies and I’m interested in many of the Web 2.0 (or whatever you want to call it) ideas, I’ve been trying to get more involved. After trying to use Flickr a bit more socially, playing around with Twitter and even starting a blog, I realised I’ve never even bought a domain name. So now I have. This blog is now to be found at blog.garethj.com so please update your links (including the new feed by feedburner) as I’ll be removing the wordpress.com one at some point soon. I might have splashed out on a new domain but I’m still cheap so it’s being hosted for free. That may change if it all falls apart! Or I could host it myself at home…

I also thought while I’m at it I’d play around a bit more so I’ve setup a couple of subdomains, one for my little slug machine at home and playpen.garethj.com as a place for playing around with a few things (nothing useful to see here yet though).

My mail is now handled by Google Apps so I can have email addresses such as somecompany@garethj.com for any website/company I sign up to to see where spam might originate from. I might end up with problems as Roo did so I’ll probably end up manually add these company names to my filters and let the rest fall into the spam folder. Or see how Google manages it first - they might do alright!