Older blog entries for redi (starting at number 75)

hacker, your diary entries are still there, as are your certs.

See returnoftheredi's diary for more info.

It's been blamed on a bug in the mod_virgule code that doesn't handle disk full errors, but I'm skeptical whether the disk fills up often enough to account for the frequency of the problems.

While I'm here, might as well mention I made a new release of PStreams at the weekend, which includes streambuf::in_avail() support and a close-on-exec trick to detect when the child process fails to execute, courtesy of slamb.

Oh, and it seems that by upgrading to a newer /etc/modprobe.conf.dist I've cocked up my sendmail config so that SMTP AUTH no longer works. Damn.

7 Jun 2005 (updated 7 Jun 2005 at 16:52 UTC) »
rmathew, my girlfriend and I are often dumbfounded by the claims that cosmetics adverts make, but the best one recently has to be BosweloxTM - which is as close as I've ever seen to admitting that the whole industry peddles snake oil and that the marketing names are complete BollocksTM.
6 Jun 2005 (updated 6 Jun 2005 at 13:50 UTC) »

I agree with yeupou's comments on the "racism" issue. I think the US "patriot act" and "homeland security" laws are moronic, ill-conceived and harmful, but you can't blame Google for following the laws of the land. Do you really think Google employees should risk imprisonment in Guantanemo Bay to protest those laws?!? The Summer of Code is not intended as a political platform to campaign against the neo-cons. They are a US company and have to abide by US law, no matter how silly. Would you expect them to pay out for an open-source project that violated Microsoft patents? Or helped tap phones?

(Update: on second thoughts, that loaded second example is a bit misleading, since tapping phones is legal if done in the name of anti-terrorism ... maybe I should have used a less controversial subject like DeCSS ;)

roozbeh, Google's contribution to the Open Source community should not be overshadowed by this "racism" issue, which is not Google's fault.

31 May 2005 (updated 1 Jun 2005 at 14:58 UTC) »
Good: The French, particularly their referendum vote.

Bad: Hardware. A Dell Poweredge 2850 should not be this slow, and it certainly should not stop accepting HTTP and SSH connections but still allow remote MySQL connections. WTF?!?!

I will only target non-existent platforms from now on, to avoid disappointment when the hardware fails to perform.

Update: the only books that should be burned are Herb Schildt's.

AlanHorkan, I've always been a fan of the Doctor and was very pleasantly surprised by the new series. They have got the mix of fun, silliness and cheese just right. The first episode had a moment of pure genius where Billie's boyfriend was replaced by a plastic automaton who (having had his head removed) turned his hands into huge shovels and flailed around blindly smashing the place up. Sounds stupid, but it was done really well so you couldn't help laughing - I couldn't anyway. Dr Who always had that element of childish fun and I'm glad to see they haven't tried to go all serious and grown up.

I want to kiss Julian Seward for Valgrind, but I want to marry David Rabson for making it work on FreeBSD (which I use for most development work.) I don't care that it doesn't seem to work on our servers with >1G RAM, he can get that working after our honeymoon!

This week I have been mostly causing Word2000 to hang and use vast quantities of virtual memory simply by misusing the \intbl RTF control word. What a stunningly good piece of software Word is. Abiword, takes-forever-to-OpenOffice, even WordPad and other RTF readers recover OK and display the document almost perfectly. I wonder how many more RTF writers I'll have to write in my lifetime. Today we launch, so this should be the end of working 16+ hours a day, 6 days a week. If not I'll be working frantically from the ACCU conf, which I'd like to avoid.

Re-created this account (again) to stop it being squatted.

It's interesting to note that when my account is deleted my certs are still present in the trust graph. This means that although no certs are visible on my account page, I'm still a Journeyer. This could be used to compromise the trust model: find a "deleted" account with the cert level you desire and create a new account in that name, then abuse the trust that "your" account has.

Even my previewed diary is retained when my account vanishes, it's just the account info page itself. Maybe the file lives in a rough neighbourhood.

Oooh, let's see ...

Recently I have ported boost::shared_ptr to libstdc++, adding various race conditions in the process. I've been learning about lock-free data structures, relaxed memory consistency models and all sorts.

But mostly I've been busy at work, and buying festival tickets.

oubiwann, <input> elements default to type=text, so advogato is not broken, your software is.

mchirico, is such a disorganised list of unrelated tips really very useful? I think once it reaches 300 items it will be impractical to skim read it hoping to pick up something useful. I guess it depends on your level of experience, personally I only found one useful thing I didn't know in the first 60 or so items, so got bored at that point. That wasn't because already knew everything, but the ones I didn't know aren't something I'll rush to use in the near future, so I ignored them. (If movement wasn't offline a.t.m he'd be amused to learn it was TIP 23 that I found useful, of course.) It might be more widely useful if you said what commands are Linux-specific and what are generally available on UNIX/POSIX systems.

31 Jan 2005 (updated 31 Jan 2005 at 15:20 UTC) »
tk, what would you expect to happen when a non-owning nice_ptr holds a dangling pointer? Consider this:
nice_ptr<int> p1(new int);
nice_ptr<int> p2(p1);
p1 = p2;

Does p1 destroy the object it owns, then store an unowned copy of the same address (which might now be invalid) ?

You can guard against the above problem by considering "self-assignment" to be assigment from a nice_ptr that shares ownership, but the general case is more difficult:

nice_ptr<int> p;
{
  nice_ptr<int> tmp(new int);
  p = tmp;
}
*p; // is this valid ?!?

Note that if p is not valid in the code above, you probably can't even do this safely:

nice_ptr<int> p = new int;

I think Boost's shared_ptr/weak_ptr combo solves the problem better than a class with optional ownership.

The Guardian newspaper wound up undecided voters in Ohio, eliciting hilarious and thoroughly frightening responses. I'm constantly watching out for those Navy Seals coming to get me now *shudder*

Included a nice little trick from slamb into PStreams. Got permission from everyone concerned to include Boost.SmartPtr code in libstdc++. Got a few ideas for simpifying mysqlcppapi, but better make a release before I start messing it all up.

18 Oct 2004 (updated 18 Oct 2004 at 13:31 UTC) »

Spent last week adapting boost::shared_ptr and boost::weak_ptr for inclusion in libstdc++ as tr1:shared_ptr and tr1::weak_ptr, which are part of the (Draft) Technical Report on Standard Library Extensions.

Got a mail saying someone's packaging PStreams for Debian, which prompted me to make a new release so he can work with recent code.

I need to get spend some time on mysqlcppapi and MyMySQL too, especially if there's interest on the Boost list in database connection libraries and people might look at them. Exposing myself here is bad enough, no need to invite even more embarassment by releasing MyMySQL ;-)

Idea for advogato: on recentlog.html include an "id" attribute on the username anchor, so you can jump to a user's last diary with recentlog.html#redi Since each user can only occur on the recentlog once there's no problem with duplicate IDs. Some usernames would not be legal ID attributes, but this could (possibly) be circumvented by prefixing it with "user_", at a small cost of having to say recentlog.html#user_redi. No, this is a stupid idea. Forget it.

66 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!