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).
Back from a good Christmas. Notable highlights:
As an aside, one game I really loved when I was growing up was Laserburn: an obscure, but really good miniatures gaming system set in the future, with highly detailed rules covering how laser weapons blind and maim opponents. The rules also had a good line in sardonic black humour. Any game where you can cut someone's arm off with a power sword has to be good. Nice to see that Tabletop Games, the originators of the game, are still in business, and Laserburn is still available for purchase (20 or so years after I bought my copy).
As another aside, how come Wikipedia can tell me more about the games I played when I was growing up than Games Workshop can (the company who supplied most of the decent board games in the 80s)? No sense of history, those people.
ROROX (Ruby On Rails On XAMPP) is now available for download. It's a bit rough round the edges, but at least one person has already downloaded it and successfully installed it.
Note I've put it up under my new "commercial" name we are programmers. I've decided to put my previous name nooq to one side for now. I still kind of like it, but everyone I know thought it was too obscure and not obvious to spell. So I decided to go for the extremely direct approach instead. I also bought up flickrlilli.org.uk for FlickrLilli.
A while back, I bought a Dell Inspiron 1100 for home use. A few months later, Dell recalled a load of Inspiron power packs, though fortunately not those for my model. They have now released another warning about batteries causing burns on people's desks. It comes to something when you have to monitor the safety of your laptop, as well as everything else.
I've been thinking about piracy a lot recently. On the news this morning, the BBC reported that the music industry is experiencing a massive boom in sales, both through record downloads (an increase of 400% over last year) and CDs:
The race for number one and demand for digital music players will push sales to an all-time high, the British Phonographic Industry (BPI) predicted.
Such a shame piracy has destroyed the music industry, isn't it? I'm starting to get really annoyed having to sit through a FACT (Federation Against Copyright Theft) presentation before every film I watch at the cinema or on DVD. On top of this, I watched a Bill Bailey DVD at the weekend, and had to sit through another patronising dramatisation about piracy at the end of the DVD. Yes, I know piracy is a problem; but perhaps the solution is to reduce record company and record shop profit margins per CD (e.g. record shops take about 30% of the cover price of a CD; the artist and/or writer gets about 10%). Give people what they want: cheap, easy-to-download music they can play wherever they want and get fair use from. There should be more places like Bleep.
Here's an interesting dilemma, on that subject: I have some friends who have a 20 year old video taped off the TV of nursery rhymes, dramatised by actors against painted sets. I think it was some one-off special. The point is, they have recently had this transferred to DVD, so their daughter can watch it, as the video was wearing out. Their daughter loves it. The video is no longer available, and it hasn't been released as a DVD (and probably never will be).
Technically, this is piracy; but should this deny their daughter the opportunity to see this programme? I can still read books my dad read when he was growing up, and can give my children's books to my daughter. But I have no right to do this with TV programmes I watched as a nipper. The difference is perhaps that books can last forever, while multimedia erodes over time. It won't be long before you can't even buy a video player (in the same way I am using an ancient turntable to play my vinyl, as new ones as so specialised they are extortionately expensive). So all the videos I have will be obsoleted, with no legal way for me to make backups of them. Sad that our culture has become so throwaway, with responsibility for preserving the past in the hands of commercial companies who would prefer to sell the profitable parts of it to us again (endlessly), and discard the rest. I know this isn't a radical or new thought, but it continually depresses me to watch culture transmuting relentlessly into commerce.
I was browsing my old email today (actually looking for an address to send a Christmas card to) when I came across an email to a friend, dated 17th November 1994, explaining how I'd been setting up my first home page. There are a few interesting points to note: my first exposure to the web was via lynx (text-only command line web browser); I still called it "the world wide web"; I had to explain hyperlinks to my friend; my view that the web/internet would be commercially important one day turned out to be right (it was by no means self-evident at the time); and I ended up doing pretty much what I said I probably would, even though I'd only been using the internet for about two months when I made the prediction. Anyway, here's the quotation:
I'm setting up my home page on the world wide web. If you want to have a look, try opening a package like netscape, xmosaic, mosaic or lynx, Once you get in, do one of the following:
* Type 'g' if in lynx
* Click on 'Open' if in netscape or xmosaic or mosaic
When you get the little box, or the prompt at the bottom of lynx changes to a 'URL to open', then type in
That should connect you to my home page, which has got exciting things to go to. If you point at the underlined words and click on them with the left mouse button, you'll be transported to exciting locations across the world. I might even set up a lit crit type page within it, and stick some interesting addresses in it, to save you the hassle of having to look for them yourself. I spend at least an hour a day 'surfing' - I reckon it'll be an important skill in the future, as businesses will realise that the web and the net are full of pertinent business information, and will need people like me to find it, or write programs to find it.
Do you ever get this: you think about an obscure actor or film, and next thing you know they are on television? I think they are called "coincidences", but sometimes I wonder. E.g. I was thinking about Lou Diamond Phillips the other day (you know, the one out of Young Guns (I think) and those other bratpack films normally starring Kiefer Sutherland, whose film career mysteriously seems to have ended). Can't remember why. Next thing I know, I'm watching Numb3rs (which is OK, but seems desperately far-fetched, to make the point that maths can help make sense of a senseless world). And there's Lou, playing a sniper (on the side of the police, but with a hard cold view of the world, ironically at odds with the humanity of the mathematicians, who are generally seen as cold and hard). Funny.
I like these photos and think they are amusing. I may try to work them into a presentation soon.
I've been trying to complete my work with Ruby on Rails on XAMPP (ROROX - I know the name will catch on). Was nearly there, then the bastards went and released version 1.0 of Rails. Have got all the latest source etc., recompiled everything, extracted it into a XAMPP add-on, and moved all my applications to it. Took one evening, and as soon as I get some spare time, I'm going to put it out there. On the subject of Rails: might try to write a submission for RailsConf. Just need to think of an interesting slant.
Really nice blog entry by Jonathon Schwartz. I will surely be quoting this baby. Particularly this:
"Opening up Solaris and giving it away for free has led to the single largest wave of adoption Solaris has ever seen - some 3.4 million licenses since February this year (most on HP, curiously). It's been combined with the single largest expansion in its revenue base. I believe the same will apply to the Java Enterprise System, its identity management and business integration suites specifically. Why?
"Because no Fortune 2000 customer on earth is going to run the heart of their enterprise with products that don't have someone's home number on the other end. And no developer or developing nation, presented with an equivalent or better free and open source product, is going to opt for a proprietary alternative."
r0ml Lefkowitz's blog has an entry which links to the open source licence statements in the Microsoft Windows release notes. Haven't been able to find them any time I wanted to, so r0ml has done me a favour. r0ml makes the point that this sort of makes Windows "hybrid open source"; I like to make the same point when I'm explaining open source to people.
A few things have prompted me to think about how open source is gradually being recognised as "enterprise-ready":
So open source is (slowly) gaining more acceptance in the mainstream (enterprise). My feeling is that it's not so much acceptance as recognition: I reckon most decent/big companies use open source somewhere, whether they know it or not, and this wave of interest is simply highlighting the fact that executives have realised this and are formalising casual use. Open source was there all along: big companies are only just now admitting it.