It’s rained for several days in a row now, and it’s getting really annoying. Between torrential downpours and high winds, driving was really hard.

I had the scanner on, and it turns out that my problems (getting soaked when outside and having to drive slowly on the highway) were nothing. This is just across town, and listening to the scanner Sunday night, I heard car after car getting stuck. The police had shut the road down, but people kept going by and getting stuck. They stationed an officer to use his cruiser to block the road in addition to the barricade, but someone still got stuck. The always-professional fire dispatchers eventually resorted to putting out calls like “You’re not going to believe this… But we’ve got another one on Linden Street,” until the road was blocked off so as to make it impossible to get around the barriers. (Aside: how do you squeeze by a barricade and a cruiser parked to make the road impassible?!)

I took an earlier-than-usual train home today (read: I left work shortly after 5pm for once), and had a window seat. The train started to slow as we entered Waltham, and the conductor made an announcement that we might move very slowly through some areas due to the weather. As the conductor came by, his radio squawked, “Reduce your speed due to water levels at rail height” As we inched along apparently-submerged tracks, the train got unusually silent as everyone stared out the window. We passed an industrial road, and passed several lots of cars with water up to their tires. (That is probably sufficient to let water creep into the floor of your car, and do some damage to your engine / underbody.) Then a dumpster that had been washed away into a ditch and completely submerged. And then a landscaping company with all of their trucks sitting in several feet of water. Their garage bay was open, revealing that the garage was flooded, too. (Something that looked like smoke was inexplicably pouring out.) And then a few more lots of cars, some with engines completely submerged.

I guess I can’t complain too badly about the weather, given how some in my town have fared. But still, sleet on my walk from the train to my apartment? Was that really necessary?

Best Sources for Desktop Wallpapers

I’m perhaps not typical, but I’m picky about my desktop wallpaper. It has to look clean and professional; photos of friends or family are horrible backgrounds. It has to be a native size, not stretched. It has to be non-distracting, because I don’t keep windows maximized. But after a couple weeks of sitting behind all my apps and never really being appreciated, I lose interest and want something nice.

Here are a handful of great wallpaper sites. Note that, although I’m not linking to anything racy, wallpaper sites tend to have NSFW images added a lot. Most of the links are good at keeping them walled off, but you perhaps shouldn’t browse these if you’re at a place where you could get in trouble for an image that slipped by a filter somewhere.

  • DeviantArt’s Wallpaper section. They vary greatly in quality.
  • WallCoo. This is the English version of a Chinese site. If you’re okay with not understanding anything — of if you’re fluent in Chinese — the Chinese version seems to have different content.
  • Stock photography site Crestock sometimes posts free wallpapers that are high in quality.
  • There’s a Flickr group called Wallpaper and Backgrounds. (Protip: search for something like “hdr,” “macro,” or “bokeh”)

On Time

I’ve ranted before about the fact that military time just makes so much more sense. Restarting the counter at 12 doesn’t make sense.

I started this thinking it was a really sensible critique of our horribly-broken system of time, but upon re-reading it, I’m starting to think that it may instead be a disturbing look into how my mind functions.

Aside from our broken 12-hours system, here are some more things that bother me about time:

  • Time is continuous. It does not shift forward an hour or backwards an hour based on daylight.
  • As someone developing code that uses timestamps and is used across many time zones, time zones are a disaster. If I wake up at “4pm” and eat lunch at “1am,” who cares? There is no need for us to shift our numbering to match that of others. UTC works great here, as it’s the standard from which timezones are calculated. I’m going to wake up at 12:30 UTC to get ready for work. Like everyone else on the East Coast, I have to start my day at 2pm. The argument about cross-continental telephone calls is nonsensical. Instead of thinking, “It’s midnight there, I shouldn’t call!” I should think, “It’s 9pm! They go to bed at 6pm over there, so my call wouldn’t be appreciated!” It’s actually the same calculation.
  • 60 seconds in a minute. 60 minutes in an hour. 24 hours in a day. Why are the numbers so ridiculous? We could at least use metric time, with consistent intervals, e.g., 100.
  • Why are seconds, minutes, and hours distinct counters? I once wrote a little script that would display time of day as a number, 0 (very start of the day) to 100 (very end of the day). As you wanted more specific time, you added decimals. As time was less important, you dropped digits. Significant figures — “50” is noon-ish, “50.0000” is exactly noon.
  • Worse than the 60/60/24 thing, there isn’t even a consistent number of days in a month. In fact, there aren’t even a consistent number of days in a year, thanks to leap years.

I think I need to get a 24-hour wristwatch and keep it in UTC. I’m used to making the conversion between real time and outdated 12-hour time, so calculating timezone offsets mentally wouldn’t be that much worse. But even this is outdated, since it still uses seconds, minutes, and hours.

Can we all get together and boycott Daylight Savings Time? The benefits are great, but in the mind of an engineer, it’s a crude hack put in just to accommodate certain special conditions. Time is constant, and daylight is cyclical. If the problem is that you’re sick of doing things in the dark, the fix isn’t to hack time, it’s to stop scheduling events in the dark.

Cleaning Up Posts

Most sites that allow HTML have some sort of sanitizer in place, so that when someone forgets to close a tag in a post, they can’t screw up formatting for the rest of the page. They tend to restrict what you can post to a reasonable set of tags, so that you can’t, for example, embed an iframe with Javascript to expand it to 100% width and height, as spammers have done in the past.

It’s very tempting for me to write a few filters though:

  • If the entire post is bold, remove the tags. Posting your reply in bold in the middle of a discussion is really pretty obnoxious. (As a passive-aggressive person, it’s tempting to replace <b> with <small> if they encompass the whole post.)
  • If the post is more than 8 characters and is entirely in uppercase, downcase the entire thing. It amazes me how many people just write in all caps as if it’s normal.
  • If a post is more than 50 characters and is entirely in lowercase, sentence-case it. This assumes that they used punctuation at all while disregarding capitalization, though.

I forget where it was, maybe Yahoo, but they have a little bit of JavaScript that displays a netiquette ‘warning’ if it sees you typing in all caps. That should be a standard feature.

Weighted DNSBLs with Postfix

For a really long time, I’ve been dreaming about the perfect mailserver setup. It would be almost perfect at telling spam from non-spam; it would include calendaring and a web GUI that actually looked good; it would be fast; it wouldn’t have issues sending mail to various ISPs…

My current — far from perfect — mailserver runs postfix-policyd, but the old version. It has a few features I love. I can easily set up spamtraps, for example, by just adding them to the relevant MySQL table. I have HELO-based restrictions: if you connect and say “HELO n1zyy.com” or “HELO” (my hostname or IP), your IP is blacklisted for a few days. If you email a spamtrap, your IP is blocked for a few days. It does greylisting, but I can do it per-mailbox — and even on the fly, it seems.

That’s not quite perfection, though. What I’ve really wanted for a long time is the ability to do weighted DNSBLs. Individually, trusting any DNSBL is bad. Even though most are reputable, if one person says you’re a spammer, that shouldn’t stop you. If multiple people say you’re a spammer, though, block away. Ideally, I’d be able to set per-list scores; if a conservative list says you’re a spammer, that counts a lot more than the lists that list whole netblocks.

policyd-weight turns out to be exactly what I want, and more. As the name implies, it computes a weight based on a variety of factors, looking at DNSBLs (and RHSBLs!) and also the HELO. I think I’m going to toy with this a bit, but it looks promising.

Tangentially, Atmail (@Mail) is the first webmail client I’ve ever seen that actually looks good. And it looks really good. It’s not only closed-source, though, it’s expensive. But it’s still tempting.