On 4 Mar 2009, at 10:56, Matthew King wrote:
[ Assuming you meant to send this to the list and now find some
combination of your MUA and the list software more hateful than you
did previously. ]

[ Correct. Reply-To: munging considered less hateful than not doing so. ]

[...]
[1] As an aside, I was tasked with moving dp from one server to another a while ago. I thought I'd upgrade at the same time but the new version
made thousands of SQL queries opening the post-login page (this is not
an exaggeration. Actually it could have been in the 10s of thousands. I can't remember.) and took some 10 seconds to open. On a brand new server doing nothing else in a small company. I stuck with the present version
which makes 'only' a few hundred SQL queries for the same page.

*twitch*

Reminds me of Movable Type. Now I need to go and start drinking to make the pain go away, and it's not even lunchtime yet.

After successful login - not that this was in any way guaranteed - MT would bring up a front page. The particular kind of hate depended on the version number:

In MT 3.34, this page contains a list of all blogs you're allowed to poke at, and the count of posts and comments in each. This is done with the ObjectDriver ORM, a whole world of hate in itself. Anyway, it basically does "SELECT COUNT(*) FROM mt_entry WHERE entry_blog_id = ?" and ditto for comments.

This is fine if you've got a tinpot personal blog. Not so great if you've got a multi-gigabyte PostgreSQL database and you've just told it to do a full-table scan across the two largest tables umpteen times for each login or return to the bookmarked front page.

(There are rumours that I hacked the MT core to skip the count and just generate random numbers. These are false, although I did jokingly suggest it. I actually wedged in a ten hour cache on results, so only one poor sucker per day had to suffer.)

MT 4 found a new way to suck. Instead of this COUNT(*) malarkey, it has a dashboard thingy. Which by default includes a RSS reader so you can read "important" announcements from SixApart. So on every visit to the home page, there's now an outgoing HTTP request, which is nicely blocked by the corporate firewall and stalls MT until the TCP connection times out. Sure, you can delete this widget but the fucker always seemed to reappear again at an inopportune moment.

Surprisingly, some of the users did actually manage to log in before their browser timed-out the request.

[2] MD5($plain_string) - yay PHP namespaces!

*shrug*

It's not too much different to "use Digest qw/ md5 /;", really, except that it's imported whether you want it or not. Sometimes procedural interfaces are just what you need. Zealously avoiding it gives you something like Java.

[3] I despise web forums.

*twitch*

No, I shall stick to just one hate per post, except to note that the blasted things are, of course, inevitably written in PHP.


Reply via email to