Older blog entries for redi (starting at number 134)

joey wrote about a problem with tools in the Debian world, and cites an IRC log where a fan of one of the myriad non-standard tools says
I need to get onto this whole revision control system bandwagon...

Wow.

Sounds like a problem with packagers, not just packaging tools.

Hmm, first adulau made the whole of recentlog bold and then etbe posts a diary entry that eats whatever HTML follows it! I was enjoying reading about using an Eee PC as a router and got very confused when I found myself in mjg59's diary!

I've been tinkering with libstdc++ and mysql++ some more. I'll state in public that I'm going to try to implement std::regex for GCC. I suspect either I'll come to regret that decision, or anyone who tries to use it will hate me for providing the world's slowest regex matcher. Or both.

Singletons make me want to dig my eyes out with a spoon and flick them across the room.

badoingg! *splat*
badoinggggg! *splat*

robocoder, I think evince now supports PDF forms.
PStreams now has an improved implementation of pstreambuf::showmanyc() which makes streambuf::in_avail() far more useful. Previously it only worked on some platforms and although it would tell you how many characters could be read from the underlying pipe without blocking, if that number was less than the pstreambuf::bufsz then there was no way to read only that many characters from the streambuf without blocking. This is because underflow will try to fill the whole buffer, blocking until sufficient characters are available. (That behaviour actually makes in_avail() almost useless, I probably should have been doing avail -= avail%bufsz in the old showmanyc() code.)

The new showmanyc() code will immediately read as many characters as are available into the buffer, in non-blocking mode. This means that if you always check for available characters using streambuf::in_avail() and ensure you don't read more than that (e.g. by using istream::readsome() or istream::get()) then the parent process should never have to block waiting for data from the child.

The next step is to generalise this by providing a select()-like function, so you don't have to poll the two pipes connected to the child process' stdout and stderr. This is more important for the development branch where there could be any number of pipes shared between parent and child.

Wow, not only is mentifex certified as Master, but all it takes is for him to cert someone else and they're a master too, e.g. bkode.

Yum upgrade for the win! I much prefer that to an anaconda upgrade, especially if you'll have to resolve some dependencies manually either way.

Finally committed my shared_ptr work to libstdc++, so GCC 4.3 will have a std::shared_ptr that corresponds to the current C++ Working Draft, N2461.

I've also been doing some fixes for mysql++. I maintain the mysqlcppapi fork started by murrayc when mysql++ was run by an idiot, but that fork is no longer actively maintained and is no longer necessary because mysql++ is well-managed now. If I'm going to deprecate mysqlcppapi and recommend that people use mysql++ instead I want to make sure it's of a suitable standard, so I've been improving exception-safety, reference-counting and memory-management.

Although I wasn't juicy enough to certify oshani, I am juicy enough to certify sriggs. Strange.

(At the time of writing sriggs has only one cert, a Master cert from me, which makes him a Journeyer.)

9 Dec 2007 (updated 10 Dec 2007 at 11:29 UTC) »

Been worked on this weekend: libstdc++ shared_ptr and docs.

Getting on my tits this weekend: GNU utils' docs as info, not man pages. The Debian man page for tar seems to be completely out of date and the Fedora one needs at least one fix. Reading info pages is tolerable with pinfo but I wish I could just say man tar without having to think whether I happen to be on a GNU or UNIX machine at the time. tar's man page might be an extreme example but it's not an obscure program you never use, nor one that's so trivial you don't need to check the man page. Rant 1 over.

I recently said to someone that having to manually find and install RPMs because of dependency issues on Red Hat/Fedora systems was a thing of the past, partly thanks to Yum. But then this weekend upgrading FC6 to Fedora 7 went pretty badly (yes, I know a fresh install is recommended.) The RPM package and everything that depends on it failed to upgrade so until I fixed that Yum wouldn't even start. Fixing it and getting all the package updates wasn't difficult, but it was slow and tedious. It was still a lot easier with yum than it used to be.

I think the problem is that updates to a version N system since the release of N+1 mean you have a newer RPM than the one on the installation disc, so those packages don't get upgraded. To avoid this I could not apply any updates from after the release date of a new version, but that means either ignoring security updates or upgrading to the new release immediately. I don't fancy either given that Fedora 9 might be built with GCC 4.3.0 and it might take a few weeks before any bugs are shaken out of the dot-oh release; remember GCC 4.0.0 in FC4. Ho hum.

Floating my boat this weekend: Mario Galaxy, Two Lone Swordsmen - Stockwell Steppas, anything by The Dexorcist.

Update: on the upside, fonts in F7 look very nice.

It annoys me when Wikipedia gives "alternative" Bowdlerized meanings for acronyms and other phrases. For example, the KISS Principle does not mean "Keep It Simple & Stupid." If they are listed in Wikipedia it should be pointed out they are incorrect versions due to ignorance or a pointless attempt to not upset anyone.

ingvar, so your conclusion is "yes, no matter how you slice it and even if you compare apples with oranges."

125 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!