Coding Dojo IV

I went to the 4th Coding Dojo last night. It was a small affair with only five people (plus Joh organising). Seeing as there were so few people, it was decided to revisit the previous dojo’s code and try to get it working. The task: to implement a small adventure game containing a few items (cat; tie; house; lift; something orange).

We started with some code which had a basic structure, but clearly didn’t work. By the time we’d finished, we had a main loop that could read commands and move around a very simple world of 3 locations.

But what was really interesting was watching everybody interact. Last night, it felt like we were getting to grips with the style of coding. We learnt that you had to continue pushing forwards in the same direction as the previous person if you wanted to achieve something. Jez did a really Good Thing™ by bringing along some index cards for doing stories. That really helped maintain continuity.

The time is also an interesting constraint. A couple of times people did things that seemed exceedingly dubious coding style to me. But on reflection, it was the quickest way of moving forward. Refactoring can come later. As an example, I was suggesting that we extract the locations we had into a separate class so they could be used by bothe the main game and the tests. But it turned out to be much quicker to make the fields public in Game and reference them from the test. I’d kill anybody who did that in production code. But it seems to be the right thing here.

I’m looking forward to the next one, anyway!


Brighton Ruby Users Group

James McCarthy is taking a stand! He’s started up Brighton Ruby. The first meet is 7pm, Jan 9th at the Eagle. Ideas are being solicited for talks. Do drop a comment onto the blog if you’re going to attend or even better are willing to talk!

I’m really glad to see this happening. There seem to be quite a few people doing Ruby (largely driven by rails) in the local area, and it’s great to get like minds together and discuss ideas. I wish I was one of them, but instead I’m getting driven deeper and deeper into Java land by work. Which is interesting, but has quite the masochist feel (e.g. learning cocoon). Still, I hope I’ll be able to contribute.


jQuery in Brighton

I went to see Jay Caines-Gooby talk about jQuery last night. It was part of the Sussex Geek Dinner thing. jQuery looks really, really cool. I like prototype, but jQuery looks like it tries to do less. I was particularly impressed at Jay mentioning that the developers were taking features out. There are plugins for people who want more.

But what was really impressive was the revelation that he’d written the presentation itself in jQuery the previous night. Apparently it was about 50 lines of code, which he’d christened “bumnote” (as opposed to keynote), most of which got shown as part of the show. There’s a lot of power in there.

Apparently, it’s also good for making Unobtrusive JavaScript—there was an imposing picture of Jeremy in there.

It’s really good to try and get geeks together in Brighton, and this seems to be working well. I’ve come to realise that there are a large number of technical types in Brighton, but they tend to form in smaller communities. A case in point: yesterday evening I was in the pub with a few members from Brighton LUG (mailing list), and there was no overlap with the geek dinner. There’s at least one big divide between back-end types and front-end types. And then there’s a bunch like Flash Coders Brighton. And the farm.

There appears to be little crossover between all these groups, apart from the BNM list and events like d.Construct. Geek dinners feels nice because it’s starting to appeal to lots more people…


Mongrel’s Default Charset

I suddenly noticed that my last entry had Unicode problems. How embarrassing. It turns out that mongrel doesn’t set a default charset, so the usual caveats apply. Looking through the mongrel docs, you can do something with the -m option, but it still seems difficult to apply a default universally.

Thankfully, I’m proxying to mongrel via Apache. So correcting the situation turned out to be as simple as adding this to my VirtualHost config.

  AddDefaultCharset UTF-8

I was actually not sure that this would work, because Apache is proxying rather than serving files directly. But it does work. I suspect that it may not work un der Apache 1.3, but that would need to be confirmed.

But now the error is corrected and I’m Unicode happy once more. Hurrah!


Java is Free

As Tim mentioned, Java is now free. This is Good™. I’ve always been slightly nervous about a general inability to poke inside the box with Java. Yes, you can download the source. I’ve done so, and used it to my benefit1. But it’s still a damned nuisance, and there’s no way for me to give anything back into it.

Now there is, and that gives me hope.

That and being able to apt-get install java by default helps.

But of course, none of this matters unless people actually get involved. At work, I’ve just been thrown a large amount of source code from a foreign system. It’s really hard work slogging through it. And it’s not that bad code either.

It takes community to build a project. And I really, honestly hope that Sun manage to achieve this for Java. It needs this to avoid becoming irrelevant. It needs to avoid being the COBOL of the 21st century.

1 Finding out that the sodding -jar option wipes out any classpath you’ve specified.


Circus of Horrors

We’ve just been to see Circus of Horrors at the Brighton Centre. Sadly, the scariest thing was the venue itself. Don’t take that the wrong way. The venue really was diabolically awful. We had seats (cheap seats, admittedly) on the right hand side of the stage. But even with cheap seats, you expect to be able to see the performance. What was nice was that there was a video screen for the highlights in case you couldn’t see the front of the stage. Sadly, the view of the screen was blocked by a large speaker stack…

It was bad enough that at the interval, they opened up another section of seating behind the main section in front of the stage and moved everybody there instead.

Needless to say, I’m going back to the box office to try and get some money back. There is no way that tickets for those seats should have been sold in the first place.

But the venue is still revolting. It’s like going in to a school assembly hall. At any minute you expect someone to come over and force you into singing Kum-Ba-Yah. And then you’ll be lectured to death by a boring man in a grey suit. Really. It’s that dismal.

But what about the circus itself? Some good bits, some bad bits. I feel that it would have been much better if it could have made its mind up as to what it actually was. Circus? Musical? Comedy? Freak show? It felt like jack of all trades, master of none.

Good: Midgets in kilts pulling vacuum cleaners around the stage with their genitals. Fire. Angle grinders. Some of the acrobatic sequences were really very good (especially when paired with Tubular Bells).

Bad: The incessant “rock” music covered up any attempt at dramatic tension. Some of the sequences felt decidely unpolished. The spotlights that shone straight into your eyes. All the deliberate musical sequences were pretty dire. The sound system was also not really that good (though that may have been the Brighton Centre).

Overall, I’m glad I went to see it. But I’d much rather see Circus Oz again if they come back to town…


Locales That Work

As I mentioned before, I don’t like locales. But of course, the solution is blindingly obvious and had passed me by. Unicode Support on FreeBSD points out the correct solution, which avoids breaking ls.


Marvellous. Now things can autodetect that I’d like UTF-8, please.