F1 2011
Let me start by saying that I am pretty big F1 fan, as well as being a fan in general of racing games (arcade & sim). I have owned various F1 games, on a variety of consoles. Last weekend I purchased F1 2011 on the PC through Steam (by far the best digital solution for buying games), now that I’ve had a chance to play the game for a bit I thought I’d share my thoughts.
XBMC Issues With XFCE/Compositing
I have just come across an issue that I struggled to diagnose, I couldn’t find this anywhere online, so if only for myself in the future I thought I would write this up here, so hopefully when I google the problem in a year’s time, I’ll find myself writing about it
I have recently switched to using Xubuntu 11.04 for my media PC installation. XBMC is my choice for controlling all of this (I may write another post sometime explaining my setup in more detail, but for now this is about a specific problem).
I use the media box for more than just watching/listening to stuff, not much more, but enough that every now and then I need to come out of XBMC (although without quitting). There is a handy keyboard shortcut to toggle between fullscreen and windowed mode ‘\’.
However, when I switched into windowed mode, all I would see was a black screen and a mouse-cursor (another major bugbear with me and XBMC, but that can wait for another time). After searching online and finding nothing, I decided it was time to just start hacking around until I found something that at least helped me diagnose the problem.
Turns out it didn’t take me very long at all, once I’d found the Window Manager settings in XFCE, I noticed that compositing was turned on. Turning this off sorted out my problems straight away. Although I love the compositing features in Linux in general, they are not needed for a media pc, so I have no problems leaving this off.
I hope this helps someone, and if it’s me reading this suffering from the same problem again, then you should have remembered this and not wasted so much time looking for the problem again you idiot!
Rules for committing to SVN
I just stumbled upon this sitting on our servers at work, although this is written specifically for us, it should be relevant to anyone using SVN.
Hopefully someone will find this useful.
Golden Rules
FAQ
- How often should I commit?
- Should I work in the trunk, or in a branch?
- What should I do with uncommitted changes?
Golden Rule #1
The trunk should ALWAYS build and be stable. Obviously there are going to be times where a bug is introduced into the trunk, but we must do our best to avoid this. Therefore, do not commit changes to the trunk, if those changes cause the project to not build.
Golden Rule #2
At the end of the day, you shouldn’t have uncommitted code on your computer. Hard drives can fail, disasters can happen, your local computer is not backed up. However the servers and repositories are, make sure all code you have been working on, is committed.
How often should I commit?
You should commit as often as you think is necessary. However, a rough guideline would be to commit logical ‘blocks’ of code, rather than at time intervals. If you are working on a feature, or fixing a bug, commit the parts that fit together, as soon as they are working. If your bug is to fix a spelling mistake, commit as soon as you have fixed the error.
The reason for committing like this is because it makes it easier to follow the code changes. SVN is not just a place to store code; it is also a history of the changes made. If something you did caused the application to break, it is far easier to identify the problem if you committed in logical ‘blocks’ rather than just at the end of the day, or every hour.
Should I work in the trunk, or in a branch?
As a general rule, if the change you are making is very small and unlikely to break anything, you can work in the trunk. However, since the trunk needs to be stable all the time (Golden Rule #1), any more significant changes, or changes that won’t be completed by the end of the day, should be branched.
If in doubt, create a branch and work in there.
What should I do with uncommitted changes?
At the end of the day, all code should be commited. But Golden Rule #1 says that unbuildable code shouldn’t be commited. So what happens at the end of the day when your code won’t compile? Golden Rule #2 says it needs to be committed.
This is what branches are for. As a general rule if you’re unlikely to finish a change by the end of the day, then you should create a branch and work in there.
At the end of a day you shouldn’t have uncommitted code on your computer.
Chrome vs Firefox
I have been using Firefox since version 0.9 alpha… it’s been a long and mostly enjoyable journey. However I have been unable to resist the ever-growing hype surrounding Google Chrome.
So, a couple of weeks ago, I switched. To try to see if I could cope with Chrome as my everyday browser. I thought I’d write a short piece on my experiences:
Chrome 5 dev channel vs Firefox 3.6.4b.
Note that this is not a ‘fair’ test, Firefox had many many more installed extensions, this is only my observations so please don’t complain if I wasn’t fair.
Read more…
Adding a column to a replicated table in SQL Server 2005
A problem that I have come across a number of times, yet seem to forget how to solve, is when you want to add a column to a table that you have set up for replication in SQL Server 2005.
SSMS (SQL Server Management Studio) modifies a table by simply dropping it, then re-creating it again with the new definition. However, when a table is replicated you’re not allowed to drop it (all kinds of nasty things could happen). Of course SSMS doesn’t tell you this is the problem, it just complains of something similar to this:
"Error validating the default for column 'rowguid'."
The only way (that I’ve found) round this, is to manually alter the table. Something I got taught at University, however I don’t use it much in practice so had to look it up. Luckily the syntax is nice and simple:
ALTER TABLE [table]
ADD [column] nvarchar(50) NOT NULL DEFAULT ('')
GO
This will add a column with the name ‘column’ to the table ‘table’ that is an nvarchar, with a max size of 50, that isn’t allowed to be NULL, and has a default value of an empty string.
Hopefully this will help someone, at the very least, it should give me somewhere to come back to if/when I run into this issue again.
Replication is great in theory, unfortunately, it is one of the most troublesome areas I’ve had to deal with.
Creating new projects in SVN and Trac
I have finally managed to introduce Trac and Subversion (SVN) at work. For the first few months, only some projects were put into SVN and fewer were put into Trac. This was partly due to people not feeling the need, but more to do with people not knowing/understanding how to create these projects.
Since I was the one who setup and researched SVN and Trac, I was fairly comfortable setting up a new repository or new Trac project, however it was quite daunting for any body else to step in and do, and even more daunting for me to try and explain the process to people.
Now that 2010 (twenty ten?) is upon us, it was decided we would move all active projects (those that we are still supporting) into SVN and create Trac projects.
We have about 50 applications that are still being supported, so even split among 4, I didn’t really want to have to go through the process of creating repositories and Trac projects for all of this, so I started looking into a way of scripting this. Since I’ve really not done much scripting before, it took me slightly longer than planned, but 2 work days (work was snowed off for 3 days this week) later and the script is ‘done’, so I thought I’d share it here, and share the difficulties I had. Maybe someone will find this useful.
Read more…
Badminton – New Season
So,
I know that I haven’t posted an update to this thing since my most read post about google wave (since then I have received an invite, got all excited, then realised its too buggy for everyday use). Anyway, that isn’t what this post is about.
I’m going to talk about badminton. The new season has started, and this time round I’m playing in 3 teams. The same 2 from last year, Blackminster B team, should have got into the A team, but my form hasn’t been good enough and Stow’s mixed team, where we are the defending champions.
I’m also playing in the Worcester league with Blackminster, its a new format, and what seems like a higher standard (we’re playing in the 5th division, and we’re by no means walking it).
Although we’ve had some good games so far this year, I am yet to lose an overall match (shouldn’t say that, I have 2 matches in the next 2 days). I’ve enjoyed playing at the higher standard of the Worcester league, because I really struggle for motivation sometimes. I wish I was playing high quality matches all the time, because I feel I could be a better player than I am.
I’ll try and post more stuff about things going on. Of course you can keep up with me on twitter.com/completenutter2
Google Wave

I just finished watching the Google Wave video on YouTube, here.
Google have come along with a new technology called Wave. Watch the video to find out more about it (be warned, its a video from the Google I/O developer conference, so its a little techy). Basically they have stepped back from the way we currently communicate with each other (e-mail, IM, SMS) etc and, reinvented it. Its hard to explain, just watch the video (its long though).
There are times when I think Google are becoming the new Microsoft, the way they’re taking over everything and the way they buy new companies, however… Google keep proving me wrong, time and time again they surprise me.
I’ll try and summarise the features that I can remember (guess they’re the good ones):
- Live – All communication when using Wave is live, even the typing, so no more “Buddy is typing…”. Waves come and go in your inbox, even the search is live.
- Open Source – Woo! This means that other people can create their own Wave servers. Different wave servers can communicate with each other, using something called Foundation
- Collaboration – A wave is basically a smart document, or conversation. A smart docusation if you would. All the people involved with the Wave can edit the Wave at the same time and all the changes are displayed live on all the clients. Impressive
- Playback – When you are added to a Wave after it has already started, you will see all the edits/comments/conversations in the Wave already. Google have come up with a playback feature, which lets you see how the Wave was constructed. Another impressive feature.
- Extensions – Google demonstrated some pretty cool extensions, check them out in the video.
- Rosy – Live Translation! This was probably the most impressive feature of Wave, Google demonstrated two people conversing, one in French and another in English, Wave was translating what was written, in real time!
Overall I was very impressed with Google Wave, obviously as a developer I find this thing interesting anyway, but hopefully this will change the way people communicate world wide. For the better. Open protocols, Open source.
Google have impressed me today.
FirefoxNotify
I stumbled on this add-on to Firefox today, finally solving an annoyance I’ve had for ages. Ubuntu Jaunty has a great new notification system (not perfect, but certainly a step in the right direction), yet Firefox continued to use its own silly notification in the lower left corner of the screen.
With this add-on the Firefox will utilise the notification system that comes with Ubuntu Jaunty:

Firefox Download Notification
Get the add-on here.
Update: So it seems this only works with the completed download notification. Hopefully the author will integrate it further into Firefox in the future.
Star Trek
Last Saturday (16th) I saw Star Trek at the IMAX in birmingham. Overall I thought the film was pretty good, one of the best I’ve seen this year, but I have some concerns.
This film was one of the rare occasions where I had issue with the quality of the production. Although I’m a bit of a video/audiophile when it comes to quality, I’m usually quite good at getting into a film’s story/action. However, the people behind Star Trek seemed obsessed with sun glares all the time, meaning at times (especially the opening scenes), you could barely see what was going on. I’ve read comments from JJ saying that he admits he was wrong and he was going for a unique style, which I appreciate but I think he went just a bit too far.
Another concerning obsession seemed to be the closeups, made worse by the venue (I’ll get to that a bit more later on). Technically its nice to be able to see every single piece of facial hair on Chris Pine’s face, but it does detract from the film a little.
So that’s the technical side of the film, now onto the story, which at first watch seems very good, impressive, very Star Trek like. I was concerned this wouldn’t be Star Trekky enough for me, but it didn’t disappoint where that was concerned. Perhaps the bad guy could have been stronger and it was a bit confusing trying to work out just when he was from, but no real issues here. However, when you look back at what was said, this is an ‘alternate’ time-line. Which is quite clever for them to do, but also very dangerous. This now gives them the freedom to do whatever they like with the Star Trek universe, without concerns for the series that were set further along the ‘original’ timeline. It might work, but it also runs the risk of alienating the Star Trek fanbase.
Apart from that the film was excellent. The right mixture of action, likeable characters, characters you could dislike without it being annoying and comedy. Simon Pegg could have done with a bigger role but no doubt that will come in future films.
Speaking of future films, I really hope that they don’t rush out the next film, as much as I enjoyed this film and can’t wait for the next one. Hollywood has a tendency to rush sequels out of the door, in order to cash-in on the hype. This works with some films, where they were already intended to be shot like this (eg. Lord of the Rings) but other films like the Matrix have proved just how badly this can go. I’d rather wait an extra year for a quality film, than go next summer for an average film.
Oh, one more complaint, this time not about the film itself. IMAX is a wonderful technology and I urge you to see the film on an IMAX screen, just not the Birmingham one. The facilities were dire at best. Not even a real popcorn machine, just bags of sweet popcorn. The seats were too close to the screen, no way to book a seat number, so everybody is scrambling to find a seat. Very poor. I might have to wander down to the London one and see if that’s any better.
Overall I’ll give the film 8/10, which is high coming from me =)