29 June 2007

GPLv3 Released

GPL v3 has been released today. You can go and read it here. There is also the FAQ here. I'm looking forward to seeing its adoption.

In completely unrelated news Prince is going to give his new CD away for free with the Sunday Mail (linked to his upcoming 21 Days tour). I'm a big fan so I will definitely be checking out the new CD. Unfortunately the music industry is not so happy and are planning to drop him from record stores(!) The music industry is proving itself completely mad once more.

28 June 2007

Programming Articles

A couple of interesting articles about programming:
* What kind of development do you participate in?
* Top Ten Programming Advice Not To Follow.

All this makes me realise I haven't done any top tens - I'll have to rectify that as I feel left out.

Next up I am planning some a post about Bazaar.

26 June 2007

C++0x Google Presentation

Here is an interesting video from the Google Talks series which details some of the new features in C++0x.

Distributed Revision Control - Mercurial

Mercurial (hg) is one of the distributed revision control systems I looked at in a previous post. I've been looking more closely at these shttp://www.blogger.com/img/gl.link.gifystems and thinking about how they fit in to the different development methods (closed and open source don't normally need the same process).

Interestingly there is a talk at Google from last year by one of the main developers Bryan O'Sullivan on Google Video:



Version 0.9.4 of Mercurial was released today adding a fair amount of bugfixes and new functionality. It is a very interesting system as it is implemented in Python, is very efficient and is one of the best for cross platform support out of the distributed revision control systems (with an extension adding the support for Windows file endings).

The commandline syntax is simple and easy to use. It has a wide variety of additional tools and extensions. Although these are not as mature or in-depth as other systems (like Subversion/CVS/and so on) they are providing a good basis. Quite a few large projects are using Mercurial in production like Mozilla, OpenSolaris, Xine, and Xen.

There is a great book about using Mercurial here. It covers many of the concepts and simply how to use it. The wiki based website and the mailing lists are also great sources of information.

There seems to be lots of GUI tools but none providing full workflow support yet, but hopefully this will happen with time.

22 June 2007

The Tortoises Are Coming

Before I start I just want to say thanks to all the people leaving comments. This post actually comes out of what Frabcus has left in the comments about distributed revision control.

I've been having a serious look into all the distributed revision control systems out there (well, the free ones at least) not only to understand the concepts of them but to see how easy they would be to use since they tend to lack the UI tools.

Interestingly Mark Shuttleworth, Ubuntu founder has been discussing distributed revision control on his blog. There are four posts here, here, here and here.

But now to the subject of this post, the Tortoises. First there was TortoiseCVS which interestingly was started by an ex-NC Graphics employee Francis Irving. Then there is obviously TortoiseSVN.

So for these new distributed systems it looks like they are racing for Tortoise type implementations of user interfaces on Windows which would help to attract Windows developers.

There is TortoiseDarcs for Darcs. This is the most complete implementation for the distributed systems so far. There are some good screenshots on the TortoiseDarcs website.

For Bazaar (run by Canonical of Ubuntu fame and what Mark Shuttleworth was talking about on his blog) there is TortoiseBzr. It is using TortoiseCVS as a base to expand from. There is also a placeholder on the wiki for Visual Studio integration.

For Mercurial there was an announcement on their mailing list that someone has started on Tortoise-hg and they ave a small set of functionality. It hasn't been publicly released yet, but hopefully soon.

There is no TortoiseGit being looked at, but I think the Windows support requires work before that step is taken I suppose.

21 June 2007

Some Free Merge Tools

I've noticed a few commercial products have released free merge tools recently. I'll come onto them after the good open-source ones.

I am a massive fan of KDiff3 which provides a very good 3-way merge and has saved my merging hide more times than I can remember.

WinMerge is definitely the slickest merge tool for Windows, unfortunately it is only a two-way merge.

Meld is an excellent system but although it is cross-platform it really excels on GNOME. The comparison looks great with the two sides connecting up.

And now some commercial ones...

SourceGear DiffMerge 3.0 was released recently. Looks OK as well and it is cross-platform.

The Perforce Merge Tool was recently released for free. It looks really quite good and powerful.

Random Bits Of News

The latest version of the Bullet physics SDK has been released. Version 2.3 contains C++ and C# versions (witht he C# version being available also for the X-Box 360 devkit). It now has a unified multithreaded implementation and a variety of bugfixes.

In related news GImpact which uses the Bullet Physics library internally for solving collision detection has just released a new version. Version 0.2.0 is more object-oriented andlots of additionals for triangle meshes and different types of collisions.

Trolltech released Qt 4.3. It contains additional Vista extensions, a new scripting engine, an OpenGL engine, and more SVG functionality.

There is a new Digg-style game development site available. Go see DevBump here.

And for something non-news there is a spiffing Cocoa tutorial from Apple here.

And on a final note there is a voice of desperation from Microsoft on Windows Vista.

More OpenGL News

Volume 4 of the OpenGL Pipeline Newsletter is now available.

It goes into more detail about the new OpenGL API on the horizon "Longs Peak". OpenGL ES2.0 with shader support has now been released. Also there is an article about the gdeBugger debugger for OpenGL.

The new API looks very interesting, but I'll reserve judgment until I can have a go with it.

Back to Blogging

There has been no blogging for a couple of weeks because I was on holiday in America, then ill. But now it is time to get back to blogging since plenty has happened in the world of computers during my break. I have some emails to reply to from the blog and I will get around to those over the next few days.

The best thing about going to America was to get a nice new Macbook Pro - one of the new revisions with the LED backlight. The model I got was the bottom of the range 2.2GHz Core 2 Duo (4MB cache) 15 inch version, which now comes with 120GB of hard drive.

The LED backlight has substantially increased the battery life of the Macbook Pros and the picture quality is astounding. I got the matte look screen as it provides much better colour tones at a lesser intensity.

And OS X - I should never have waited this long to switch to anything other than Windows. It is astoundingly good.

There will probably be more Mac content on the blog in the future but I will still be using Windows in other places so I will still be interested in development on that platform, but probably with a more cross-platform slant.

03 June 2007

Distributed Revision Control

Linus Torvalds did a talk about source control the other day, more specifically about GIT. Basically he has an immense dislike of centralised revision control. You can see Linus's talk here:



Some Slashdot discussion is available at this link.

This kind of sent me into an Internet whirlpool looking at distributed revision control. So this post will be all about that. I must admit I have never really thought about it since I am so pleased with Subversion and TortoiseSVN, although recent events have made me look into source control systems in general more closely. At a high-level the distributed model has a lot of advantages in design and is capable of having a "central" server you sync against which means it can behave more like the centralised model. On the other hand the centralised tools all seem to have much easier to use tools and have more powerful features (at least in Subversion) than they are given credit for due to their heritage.

Mozilla development has switched to a distributed source control system recently. They had a set of requirements like cross-platform, speed, stability and more. Some more information can be read here.

Git was started by Linus Torvalds because he was no longer able to use BitKeeper. It has quite poor Windows support because it is reliant on a POSIX system but has a lot of powerful features. There are some UI projects but they seem quite immature at the moment and only augment the command ine rather than replace it.

Mecurial was chosen by Mozilla development for their revision control system, and in fact they have already switched to it. There are apparently some speed issues in comparison to Git, but it has better cross-platform support. There seems to be a few extensions including some Bugzilla integration. I am not too sure about the UI side yet.

Other distributed source control systems include:
  • Bazaar - is a GPL based system.
  • Monotone - is another GPL system.
  • SVK - A Subversion derived distributed system.
  • darcs - yet another system.


Anyway these distributed systems seem to be getting traction with Mozilla, X, and other large projects starting to use it.