Linux user space is composed of a thousand small interrelated “packages”. It’s fairly easy these days to install any of the better linux distros – they typically “Just Work” out of the box – and all those packages play nicely together.

Once you have your linux machine running, you’re going to be tempted by all the cool stuff to do – Office apps, browsers, DVD players, all the programming languages, router capabilities, web servers, mail servers, PVR – and eventually you’ve got a pretty tricked out OS with lots of goodies.

But you need to keep it updated with the latest fixes when you connect to the internet, or you’ll eventually get your machine hacked. And who wants to be without the latest features? But you probably don’t have time to micromanage that update process. Even if you try, inevitably, you’ll be burned by package dependency problems. All those small packages that count on each other are being updated simultaneously, and which versions are safe and stable and play nicely together?

That’s where package managers come in. They determine the latest stable package updates and install them for you, typically while you’re sleeping. Some very helpful folks work very hard to keep packages synched up like that for us all. These sites of updated and synchronized packages are called repositories. All you have to do, at the top level, is select your target repositories, see what’s available in them, and grab what you want – everything you want will be installed and kept up-to-date, with all the dependencies calculated for you. Sounds like nirvana, right? Well, we’re getting closer anyway…



The best CVS client for Winblowmynose is TortoiseCVS. TortoiseCVS has to be the best designed software ever – it just works like you expect it to. And now I’ve discovered that it’s scriptable, most excellent. There’s an executable in the install directory called TortoiseAct.exe – it actually does all the CVS work. It was apparently designed this way to facilitate different front ends. All you have to do is pass it a “verb” and it fires TortoiseCVS into action. There are tons of things you can do this way, but the docs are scarce – “the source is the documentation”. See it here.

(Editor’s note: see the wiki for a more structured and updated version…)

I wrote an object-oriented database a few years back using “C++ Database Development” from Al Stevens as inspiration, and I’ve always wanted to dig it out and get it updated. I’m also working on ShareTheDJ, which needs cross-platform object serialization. Robert Ramey implemented boost::serialization and it looks like an excellent way to serialize my objects in a more STL-friendly way. Here’s how to set up under FC3/FC4, gentoo and Windoze…

UPDATE: Sourceforge root changed from [cvs-pserver.sf.net:443] to [boost.cvs.sourceforge.net]. Instructions were updated.

(continued…)

Includes some important bugfixes (you can now safely edit a bunch of list items at once, geesh), UI improvements (small/large view toggling should work well now), etc. From the installation warning:

New development version, lots of bugfixes and improvements, lots more to do, but still should be fun. Back up your database first! You want to upgrade now?

Development: Version 0.25 zipfile
Stable: (old!) zipfile

Here’s a good article that explains how well the Visual Studio 2005 compiler can optimize .net managed C++ code. To me, it’s just further argument that “unmanaged” (“native”) (read: portable, non-MS-proprietary) C++ code is far superior. Is there anything in the .net API that is really really necessary that would be more difficult in straight C++? MS is committed to
making an effort to ensure that there is, so you go with their proprietary solutions. But I will always make an effort to code everything I can in portable clean C++, and link to .net managed C++ only when necessary.

And to follow up, here’s an article from Paul DiLascia, who’s been kicking a$$ with his C++ Q&A articles for decades, explaining how to link in .net code with unmanaged C++ code, on a MODULE-BY-MODULE basis! Excellent.

Update: There’s no stopping him, in his next article he shows how to “wrap (.net) Framework classes in a native way so you can use them in any C++/MFC app without /clr”.