November 2009 Archives

Cafe Spice Namaste

| | TrackBacks (0)

My mobile phone company recently gave me a two-for-one dinner voucher. Most of the qualifying venues were high-end fast food chains, but looking through the list I spotted a little gem - Café Spice Namaste. I had heard a few things about this Indian restaurant near Tower Bridge, so was keen to give it a try. We went along on a Wednesday night and there were quite a few people there, suggesting a booking would definitely be necessary on more popular nights. The polite head waiter spent some time checking the voucher as we were apparently the first people to use such a voucher there. Once that was sorted out we ordered.

The menu was a little different to the standard Indian. For a start it was much shorter, just a few dishes, rather than the numerous curry combinations found elsewhere. We had poppadoms for starters followed by lamb shank and spiced partridge with naan and a potato/cauliflower/pea side dish. The food was very good. The poppadoms and chutneys were noticeably nicer than other places. My lamb shank was beautifully cooked and the slightly spiced sauce very more'ish - when I finished my plate was clean. The off-the-bone partridge was equally good. The portions were a good size and after that lot (plus some beer) we were too full for dessert. Although seeing the Belgian chocolate icecream at the next table tempted us, we did not waver and got the bill.

The service was very fast and efficient. It was more expensive than other Indian places, but also far better. Although, it was by no means expensive by general London standards, a little over £60 before the voucher discount (and including service). For comparison, the next best Indian restaurant I've been is Babur. Without a discount Café Spice Namaste is a little more expensive than Babur, but with better food (thanks to the poppadoms) and easily better service. This is definitely a place I'll be visiting again.

New website and Blender pages

| | TrackBacks (0)

If you go to my main website, you will now find it changed. Previously it was a basic advert for my professional services. However, the company I ran those services through will be shutting down soon. So the site is now a hook upon which to place my little side projects. Thus I have added a Blender page to aggregate all the Blender and general 3D modelling content I have created - check it out.

Ancient History Podcasts

| | TrackBacks (0)

As long-time readers may have realised from my various holiday photos, I have an interest in ancient history. Discovering iTunesU, I was in history podcast heaven. There are numerous history lectures from many different institutions. In the ancient history area they mostly focus on Greek and Roman history. There is a paucity of lectures on other civilisations. I thought I'd start writing reviews of these podcasts. First up are three short series.

Great Sites Of The Ancient World - Podcasts from a lecture series at the University of Pennsylvania Museum. There have been at least 8 of these lectures over the past year, but unfortunately only three have made it online (I'm not sure if more will become available later). Each is about an hour long. The first, on Ur of the Chaldees, is audio only, but makes constant reference to missing slides. Thankfully, the other two on Troy and Abydos include the slideshow video. The lectures are given by archaeologists talking about their recent field research. As such they can sometimes become quite dry and focussed on the technical aspects of archaeology (livened with occasional stories and holiday snaps from the dig). However, you can still get a feel for the excitement of discovering or unearthing something unseen for millennia. Fans of the UK TV series Time Team should enjoy them - although they lack an equivalent of Tony Robinson's translation for the layman.

World Archaeology - Part of an Open University course, these 12 podcasts ranging from 6 to 19 minutes in length, form an introduction to archaeology as a subject of study. The course has a website, as does the series of podcasts, where transcripts are available. The podcasts are audio only and have been produced with this in mind - there is no mention of accompanying images and the delivery is very clear. However, the series is very repetitive. Many of the podcasts contain parts exactly the same as other podcasts in the series. I suspect that the series actually contains lectures from two versions of the same course. In general, if the names of two podcasts in the series look similar, the shorter one can be largely skipped without missing anything. In these podcasts history takes a backseat to archaeological definitions and theories like what is a city, how did agriculture start or empires form. Also, I found them quite introductory (which is probably intentional) and light on information. They quickly jump across so many times and civilisations there is not time to dig deeper. Still there are some interesting nuggets, but I won't be keeping a copy of this series on my computer.

Culture, identity and power in the Roman empire - Another Open University series, the 6 video podcasts are presented like short films (all under 9 minutes). Again the course and podcasts have their own websites. One is a short introduction to the geographical and cultural extent of the empire. Two are examinations of particular mosaics, and the remaining three look at the emperor as a force for unity in the empire. I have to admit to a soft spot for these podcasts as they make special mention of the Roman remains at Thugga (also know as Dougga) in Tunisia. I visited this site in 2008, you can see my photos here. This series is worth a look. The podcasts are too short to go into much detail but they have interesting visuals of current Roman sites and art.

Scientists have discovered...

| | TrackBacks (0)

Time for a pet peeve. Why do people say "scientists" as if they are some homogeneous group? Nearly every morning I hear reporters say "scientists have discovered that blah, blah, blah" during their token science story. It seems to be a lazy way to avoid saying biologist, astronomer, chemist, physicist, etc. Now I can't claim to be a scientist of any description (I dropped out of a PhD in Computer Science). Professionally I'm more of an engineer nowadays (although that is another category occasionally lumped into the media's science bucket). However, I know a few PhDs or lecturers in science subjects and there is a fairly large difference between the things they do, so it's not that hard to broadly differentiate them into categories more specific than scientist. Asking them is often a good start! Also, there is rarely a mention of where or how the work was done. I personally would be more impressed by a statistically significant result in a double blind study from MIT than a report from the Pond's Institute (although TV commercials would suggest the Pond's Institute has nicer labs).

Not convinced? Try this comparison. Next time you listen to the sport section of the news replace any mention of a specific game with "sport" and the players with "sports players", then just remove any mention of specific teams. "Last night in sport, a group of sports players from Manchester beat 3-2 a bunch of sport players from London." Not very informative.

The weather archive is no more

| | TrackBacks (0)

Today I shut down my historical weather website. It continually broke because BBC Backstage Weather kept changing the format of their RSS feed. It became too much effort to maintain the site in a working state, so it had to go. Since there was only ever 943 hits on it and the vast majority of those were me, I don't feel too bad. It served its purpose and I learnt quite a bit from writing it. In any case, I should focus my limited spare time on more useful projects.

I have kept weather_report up in case anyone wants to take it up and use it, but they would have to fix it for the new RSS format first.

Models and Events

| | TrackBacks (0)

I have been thinking that software development is all about models and events. By models I mean domain models, and by events I'm referring to an event-driven architecture. Not quite the models and bottles of Investment Banking.

The domain model is where the application's data lives. It is the model part of the MVC pattern. For example, in a system that manipulates songs, a song would be part of the domain model, together with the song's name, artist, album etc (in Object-oriented systems there would be a song class containing these attributes). The more time I spend coding, the more I find that the future course of a project is directly related to how its domain model was conceived. Using MVC, changing the model later can involve a great deal of work if the model touches everything else. Thus usually some time is spent on working out the model and refactoring it if necessary. Indeed, I remember once describing a less than satisfying job as drawing pictures all day, meaning UML mainly for the domain (I would have preferred to be coding).

I have a few tips for domain models. Follow the ideal of MVC, that is keep view and controller logic out of the model. Also, try to have fat models and skinny controllers (this is a Ruby On Rails idea, but I find it works well in general). Keep model classes immutable if possible. Lastly, write your own containers (containing and hiding actual SDK-based containers) for easy aggregation functions (and parallelising). None of this is particularly controversial, few people I have worked with would disagree.

What I have recently found surprising is that people do disagree with using an event based architecture where I feel it would work well. Event-driven systems are ones where changes to domain state are packaged as events and passed to listeners of those events through some form of callback. This helps promote a loosely-coupled design, something else I would strongly encourage. Also recommended is keeping the events at the lowest level appropriate in the model (a rule I've broken a few times). For instance, if you have an album which contains songs, a "songAdded" event would go on the album listeners, but a "songUpdated" event should fire on the song's listeners. Other people seem to prefer a system of loops polling for changes (or something similar). I find their code far more complicated. Event-driven systems are simple to write, simple to understand and you only need to handle the events you are interested in. I would be interested to hear what other experienced programmers have found works.