January, 30, 2004 archives
protected by spf
i’ve set up the dns entries for making the domains under my immediate control protected by spf.
this means that for mail transfer agents that pay attention to spf data, they will know that the mail is bogus if it claims to come from one of my domains but is not actually sent from my machine. (or any machine, for some of the domains that never send mail.)
the lists.mysql.com server has been checking spf info for a while, and it blocks a dozen or so messages a day. that’s a really tiny percentage of the 150,000 incoming messages per day, but it does show that the system works when people publish the data.
i guess the next thing to do will be to get entries set up for other domains not under my direct control, but under my influence.
there’s all sorts of interesting data i’m logging on both my own mail server and lists.mysql.com. some day i should really write some tools to help analyze it. part of the problem is that there’s just too much stuff making it through the front-line filters. the lists.mysql.com smtp server still accepts about 25,000 messages a day, and even my own mail server accepts about 500 a day.
i’m still seeing about 20 spam messages get through a day. about two-thirds of that comes via work addresses (like the webmaster address), another one-sixth to my address here, and the rest via various other addresses. (that doesn’t include worms or worm-related bounces.) i could eliminate some of that by refusing mails sent via my alumni.hmc.edu address that is spam-tagged but still forwarded.
i’m still holding the line on doing any actual delivery-time filtering. once mail is accepted by my mail server, it goes into a regular mailbox, not something that fills up with piles of crap that i only check every three months. so when you send a mail and i don’t reply, it probably means i’m ignoring you. (don’t be offended, i do that to everyone.)
(disclaimer: spf is not the ultimate solution to kill all spam. but it would serve to eliminate some classes of spam, and helps out on the joe job
front.)
i’ve been tying my shoes with an ian knot recently, which bills itself as the world’s fastest shoelace knot.
with practice, it probably is a faster way to tie your shoes, and it does seem to be at least as secure as the knot most people use.
the whole of ian’s shoelace site is fun to read, and quite attractively designed and illustrated.
a µ problem
planet apache does not handle utf-8-encoded content correctly. maybe it isn’t planet apache’s fault. it is trying to set the encoding in a <meta http-equiv="Content-Type" ... > header, but camino, safari, ie5/mac, and ie5.5/win all ignore it. i’m not sure what the rules are with regard to the content type being specified with different charsets in the response headers and in a <meta> element.
i’m not surprised it doesn’t work, there’s still a lot of gaps in being able to use utf-8 pervasively. i’m actually generating curly quotes by typing them instead of using something fancy like textile. (and since i’m always having to search to find this: source code for textile 2.)
in defense of connect by
something on the near-term todo list in the mysql manual is oracle-like
. every once in a while, someone drops a comment there to say that there’s no way that connect by prior ...
connect by
should be implemented, because the sql standard specifies another syntax for recursive queries, known as with
.
as it turns out, ibm’s db2 implements the with
syntax, and here’s a nice article on the difference between the two syntaxes.
i can’t see how anyone can look at that article and clamor for the with
syntax instead of connect by
. i look at the statement using connect by
and the results it gives, and can think of several ways i could apply it in applications i’ve built or want to build. i look at the with
syntax and get dizzy. the syntax of with
just looks incredibly un-natural, even for sql syntax, in a way that connect by
does not.
there are undoubtedly things you can do using the with
syntax that you couldn’t with connect by
, but nobody has been able to point them out to me. and as far as i can tell from the article on ibm’s site, getting the type of results i’m interested in requires a stored procedure and query that is at least four times as verbose as oracle’s syntax.
(disclaimer: i work for mysql ab, but am not part of the development team, have no special insights into when either syntax will get implemented. i suspect that both will eventually be implemented: connect by
as an aid to people transitioning away from oracle and because it is something a lot of people ask for, and with
as part of our commitment to supporting the sql standards.)
safari performance
a few seconds after what seems like every page load, safari stalls for two or three seconds. i wish i knew why. history too long? cache cleanup? too many cookies?