Amazon Mechanical Turk is a kind of artificial artificial intelligence (sic). Basically, if you are a software developer, you can write code into your program which will submit tasks to the Mechanical Turk website. The tasks get added to a list, from which humans registered with the site can choose. The humans complete the tasks online (the samples they have currently are all US-based and ask opinions on traffic, restaurants, etc. in US cities), and the Mechanical Turk makes the results available to the program which initally set the task. The program presumably has to poll the API periodically to find out if the task has been completed, and picks up the human-generated results when they are ready. These results are then incorporated into the program's inner workings. Interesting. Mad, but interesting. There's got to be some potential in there somewhere...
Must get rid of all stuff. Must sell things. So can buy more things. Even found myself thinking tonight (after watching a marvellous documentary where Richard Dawkins basically laid into loads of religious types and told them they were abusing children with their religious lies), I'm unlikely to read Climbing Mount Improbable again, good as it was: sell the bastard, while the public's interest is piqued. Sold on Amazon within about an hour. See that, that's complementary marketing. Put a load of CDs up there as well. GreenMetropolis has also raised a few sales, and is good for stuff which is ubiquitous on Amazon. Although I did stop myself when I was slavering with greed, prowling round the living room for prey to sell, and said enough's enough.
I haven't edited this code in a while, but have released a new version (0.5) after someone requested my code be released under the LGPL, so they could use my Mozilla bookmark parser (in Python). So it's now all under the LGPL. All in all, it has been downloaded 500 times so far, so it's been useful by the looks of things.
Wondering what the music is in an advert? I do all the time.
Need to write into NTFS partitions from Linux, but can't be arsed recompiling your kernel? It works, really it does.
Want to contact your MP? This year must be the year when I get some things off my chest (why haven't I got a wheely-bin, and as a consequence have rats under my shed? why does no one collect my bottles and cans for recycling?).
I've been meaning to write some stuff down for a while, and have it all whirling around in my mind tank. This could be a bit random, so here goes:
This is really cool! I will definitely be printing a copy and using it on any unwanted phone callers.
I've got round to putting my ROROX (Ruby on Rails on XAMPP) project onto RubyForge. They can hopefully provide more bandwidth and exposure for it than I can on my puny blog. I notice a similar project (Instant Rails) has masses of traffic (17,000 downloads), so hopefully I can attract at least a fraction of that. I'm also going through the rigmarole of announcing it on Freshmeat, notifying the XAMPP people, and adding it the the XAMPP Add-Ons repository (phew!).
For this release, I've upgraded Switchtower, added lots of explanation, included the compilation scripts after tidying them up, and compiled Ruby with tcltklib (a small addition to the tarball size, but useful in that it provides a more full Ruby - I use it as my only Ruby interpreter on my development machine, so I need as much of it turned on as possible). I did toy with finding a way of doing two compilation methods (one with all my gunk compiled in, one stripped down) but it adds so little overhead I decided to just keep it simple.
Interesting article about how freely-downloadable music doesn't have to mean the end of people making money from music. People will pay for convenience, personalisation, and value-added, difficult-to-copy extras, even if they won't pay for music. Open source is doing the same thing for software, and the industry is recognising and responding to the trend. The music industry should take a leaf from the software industry's book.
Today I have been testing Biscuit, yet another web application framework in the style of Rails. This one is fairly lightweight and written in PHP. I got off to a flying start, and found I could do a fair amount without too much trouble (e.g. pulling records from the database and rendering them as HTML). The trouble started when I tried to do inserts and updates: as the system is centred on PostgreSQL, and I was using MySQL, the insert and update queries didn't work correctly out of the box. I dug around in the code and found that despite using PEAR::DB as a database layer, manual SQL statement construction was still going on. I fixed and generalised this using the PEAR::DB autoExecute methods, which will take an array of field values, keyed by field names, and construct an insert or update statement. This got everything working (at least for MySQL).
However, the next problem occurred with validation. I could get it to sort of work, but displaying the error messages under the fields isn't straightforward. Despite using the supplied functions for this, I didn't get very far. And at this point I gave up.
It's a fairly good, neat little framework, but it feels a bit like a hobby project which isn't really designed to work across multiple databases (unlike Ruby on Rails, which does work). Plus there are some hard-coded bits and pieces in there which ought to have been generalised out more. Another missing feature is the ability to specify which field is used for the primary key: if you've got legacy tables without an field called id, you could be a bit buggered. It's this plus other niggles (like the lack of an implementation for <form> tags, no URL rewriting built in, etc.) which has driven me straight back to Rails.
I have looked at Cake before, which is more complex, but more satisfying to use. It feels more generic, and covers more of the functionality of Rails. However, using these two has made me aware how great the documentation is for Rails. Granted, it's not perfect, but it is very, very good. Compared to this, Biscuit has a sketchy tutorial, while Cake has some fairly good documentation (though frustratingly incomplete in places). Don't underestimate the importance of documentation when deciding which open source software to use: for me, it's the number one consideration. I'd rather have a sparse piece of software with excellent documentation than something all-singing and all-dancing which I can't comprehend. Plus of course Dave Thomas' Ruby on Rails book is superb.
I'm really enjoying playing Ultracorps, and so far it's going well. At the end of turn 3, this is where I am in the rankings (out of 393 players):
Not bad, eh? Sad too, though. Plus I haven't had to deal with any real baddies yet, or opposition players (i've stayed out of their way so far).