Chef Matt

Besides a passion for pouring Tabasco sauce all over food, I have another observation that I think qualifies me as a top-notch chef: crunchiness is an important quality of food.

Of course, you probably don’t want crunchiness on everything, but it’s worth considering.

Today’s Meat Sandwich? (Actually, a Meat Wrap, though it’s more because we’re out of bread than health-consciousness.) Pepperoni, turkey, cheese, Tabasco Green Pepper Sauce and…

A few ground-up corn chips. Incidentally, I think I nailed the perfect level of crunch the first time around. Too much and it’s like, err, eating ground-up corn chips, not eating a sandwich. But too few and it’s terribly bland.

I’m so totally going to open a restaurant. My food will come doused in Tabasco Green Pepper Sauce (maybe I can get sponsorship), and all of it will crunch.

About Time

My old LayeredTech box that’s been taken offline was a stratum 2 NTP server, and I kept upping the load until it was set at 100 Mbps in the pool, which had it handling about 15-20 queries/second. NTP was very light on system resources, so for a machine that sits in a data center and is allowed 1,000 GB of traffic a month, I was able to handle a lot of traffic. It was maybe 1-2 GB of bandwidth/month, though an instantaneous look would show a crazy amount of incoming connections. (It’s 75-80 bytes of UDP.)

So when we set up the new server (shared between Andrew and I), I conned Andrew into allowing me to run NTP in Dom0 (the ‘root’ domain, versus inside a virtual machine guest, as VMs, for probably-obvious reasons, aren’t allowed to manipulate the hardware clock) and put the server in the pool. (By some strange fluke, the geo-IP code saw the machine’s IP as being in Brazil… The server’s been added to the US zone, but also remains in the Brazil zone, as South America is very underserved: 17 servers in South America, versus 497 in the US alone.)

NTP is one of those things where the default configuration probably gets you 90% of the possible accuracy. Set up a machine and have it sync to pool.ntp.org and your clock will probably stay within 50ms of “true time.” (Assuming you use ‘real’ NTP, which polls up to every 1024 seconds, versus Windows’ conservative 7 day interval.)

However, you can squeeze more out of it. One thing is that, when you’re becoming a member of the pool, you don’t want to set your server as the pool, or you risk forming a feedback loop of sorts, in which you might ultimately look to your own server as its reference or whatnot. So you tend to hand-pick a nice array of servers.

NTP has a concept of stratums (“strata” is probably the correct plural). It essentially indicates the number of steps before you reach to a “reference clock,” which is something definitively setting time, such as a GPS receiver (which can be accurate down to the nanosecond level), or even an actual atomic clock. When you sync to stratum 1s, you serve time as a stratum 2, and so on. Stratum doesn’t necessarily point to decreased accuracy, but that’s kind of like saying that the number of hops on a traceroute doesn’t necessarily mean increased latency: in practice, it does, though with NTP the difference is typically very small. NTP is very good, though, at evaluating its clocks.

So I recently redid the server lineup, and pulled out the entries for a couple stratum 2 servers, so that our server is consistently stratum 2. A decent number of stratum 1s are semi-private, but open to those running public servers, which means we can get away with syncing to really nice clocks.

Another thing that makes a big difference is latency. Latency itself is actually not a big deal: NTP looks at how long packets take round-trip and adjusts, so that syncing to servers in Africa is really no different than syncing to local ones. At least in theory, though I’ve found that, in practice, it’s fairly accurate. But what matters is variable latency, especially uneven latency, such as if outgoing packets take a different route than incoming ones, which is increasingly common. (It usually makes no difference, as most people don’t need to calculate round-trip latency precisely…) This is where it helps to have more local clocks, as round-trip latency is small enough that differences between outgoing and incoming routing are minimized.

A less-common worry, though one worth looking into IMHO, is diversity of time sources, too. GPS is very commonly-used on stratum 1’s, because it’s cheap and very accurate. However, if it were to ever go down, it’s so commonly-used that some worry that NTP would become very degraded in accuracy. (Of course, if GPS were to go down, we’re probably have bigger problems than our clocks losing sync.)

So I’ve just redone our timeserver setup after a couple servers we used to use ended up being pretty crappy. (One was my old server, which is no longer online, and another inexplicably dropped to stratum 2.) We now sync to six different stratum 1 servers. All are geographically close, giving us about 30ms latency worst-case. A couple are set by CDMA (via cell towers, which get their time from GPS and tend to ‘filter’ it through a Rubidium reference), the PPS one syncs to GPS as I understand it, and two get time from ACTS, by dialing into NIST and syncing time over the phone lines, which apparently gives superb accuracy. (As you get much more controlled latency.) Oh, and the last server… It’s synced to the Naval Observatory’s atomic “master clocks.” (Somewhat to my annoyance, NTP seems to love the UDel server at the exclusion of the USNO clock.)

I’ll monitor things for a few days to see how things go, but I expect very good results. (Then again, we’ve had very good results in the past, too.) I worry that we might hop around between sources a bit, because we no longer have one server that stands head-and-shoulders above the others. Four of the six seem to be extremely local (in terms of latency) and extremely accurate (in terms of their agreement with each other). So far, though, I haven’t seen our root dispersion (rougly, the difference between the biggest and largest offsets, summed between all the servers in our path) go above 20ms. I am seeing a ~5ms spread between offsets between multiple “good” hosts, but then again, 5ms offset is very good…

Out of Touch

Sean Combs, better known as rapper Puff Daddy P-Diddy Diddy, recently complained that high gas prices have forced him to fly on commercial flights, instead of using his private jet.

“That’s how high gas prices are. I’m at the gate right now. This is really happening, proof gas prices are too high. Tell whoever the next president is we need to bring gas prices down.”

Somehow, I don’t feel an awful lot of sympathy?

weave.n1zyy.com

It’s currently butt-ugly, but Firefox users might be interested in weave.n1zyy.com and the Mozilla Weave plugin.

In a nutshell, Mozilla Weave as a plugin will periodically (and on demand) copy your data (bookmarks, cookies, history, etc.) to a server. The main audience is people who work on multiple computers: say a work machine and a home machine, or a laptop and a desktop, etc. Mozilla started offering this as a service, but its servers filled up. The server is basically just WebDAV + mod_auth, making it fairly easy to set up. So I set my own server up. (Of course, I currently only use one computer, but next time I boot into Linux, it’ll be nice…)

I have a page up on weave.n1zyy.com explaining how to set it up, but in a nutshell, you download and install the Weave plugin, but instead of letting it take you to the signup page, you hop into the Preferences panel and set it up to use weave.n1zyy.com instead of the default Mozilla one… And then you sign up for an account on weave.n1zyy.com and use those credentials to log in. (Even though I’ve never seen anyone have problems, it’s recommended that you back up your Firefox profile first.)

I do warn on the signup page that I make no warranties about service: I don’t expect there to be problems, and I expect the service to stay up a nice long time, but think it’s important to warn that things could stop working.

If I Made Software

If I ever start a software company, I’m going to have CD images of all of our products online. (Or just allow someone to download a little app that will install the whole thing over the Web.) You’ll have to enter your license key to get them, of course.

I’m trying to install a big application. I’m missing one of four disks, and thus can’t do it. I downloaded it from the web, actually (hey, it’s legal!), but it appears to be a cracked version, and thus the “legitimate” installer doesn’t recognize it as the right CD.

Argh!

News

I never signed up for Obama’s text message notifications, but found out about 8am the morning he picked Biden when I checked my e-mail and some ‘pseudospam’ had been sent to me selling Obama-Biden buttons.

I just got a text message that Sarah Palin is McCain’s pick. If I’m not on Obama’s text message roster, I’m definitely not on McCain’s. But I have something better: way too many political junkies as friends.

Much as the text message from a fellow Democrat friend reads, “Crap! That was a good choice.” Her Wikipedia page talks about her whistle-blowing on corrupt Democrats, has a photo of her visiting a wounded soldier in the hospital, and talks about how she’s conservative on issues like same-sex marriage, but doesn’t hate gays. (Which might cost her points with some uber-conservatives, but is probably exactly how a lot of the center-right feels.)

I can’t help but think that it’s no accident a woman was picked, either, given that ~20% of Hillary supporters that claim they’re going for McCain over Obama. Whether they’ll be foolish enough to think, “She’s the wrong party, but she’s a woman and Biden isn’t,” we’re yet to see.

I’ve said before that I thought this race was going to come down to the moderates, and I’m worried that Sarah Palin might just top Biden. But I haven’t read enough about either of them.

Something Delicious

In the midst of all sorts of crazy stuff, and with Obama set to take the stage in 15 minutes to give what some have already called an historic speech, I thought I would take this moment to post something equally as important.

Tabasco Green Pepper Sauce

Tabasco Green Pepper Sauce

You’ve almost assuredly had Tabasco sauce before. The distinctive red glass bottle with the distressingly-hot sauce inside. I think it was Andrew that suggested that it went well on otherwise-boring pizza. The stuff is good for giving kick to bland food.

But in terms of heat, regular Tabasco sauce is like reaching your head into the oven to try to fish your food out. There’s really nothing enjoyable about it, except that it adds a little excitement to something that was otherwise a dull experience. If you’re out to get the most heat possible, you can do better, yet it’s not terribly remarkable for anything besides the heat. Sort of the William Hung of sauces, if you will: only noted for one thing, and not even [warning: Youtube = video] at it.

Tabasco’s Green Pepper Sauce, though, has a heat that’s more like relaxing by the fireplace on a cold winter night: quite warm, but thoroughly enjoyable for more than its heat. Not only does does it add spiciness, but it adds deliciousness. It’s the Chuck Norris of sauces: awesome at everything it tries.

Whether you’re a gourmet chef, or whether you’re a college student starving at 11pm and conclude that a “Meat Sandwich” is a superb idea, Green Pepper Sauce is exactly what your dish is missing. Also, you can buy it by the gallon (in a stylish jug!), though it’s apparently not available that way on Amazon right now.

On RAM

So I’ve mentioned many times before that more RAM is arguably1 the most important upgrade you could add to your computer.

I’m the type that likes to have lots of things up, like iTunes, Photoshop (which consumes a lot of RAM when you foolishly open 20 images at the same time, each 10 megapixels), and Firefox (web browsers are more RAM-hungry than you’d expect)… All at once.

Today, a new recommendation: Eclipse is RAM-hungry. (Perhaps because it’s a Java app. I’m unabashedly convinced that Java is the biggest drain on system resources ever.) But with 2GB of RAM, Eclipse’s thirst for 150MB isn’t a big deal.

What is a big deal, though, is HP’s Web JetAdmin. I installed it to see what information it was able to receive from our network printer, kind of hoping for help in my search for MIBs. It’s taking 145 MB of RAM.

But also, it uses an SQL Server backend, and SQL Server is using 120MB of RAM.

So the net effect is that, with only Eclipse running, I’m using over a gig of RAM. (And that’s “using,” not “having the OS cache components in unused portions of”). I think it’s time for an uninstall party. (The good news is that Vista’s actually handling it really well. The system’s snappy as ever, even with massive background processes running on a desktop machine.)


[1] I say “arguably” since it depends on your usage and what you already have: in some cases, your CPU may be the bottleneck, and sometimes the hard drive is the bottleneck. But in my experience, RAM is the bottleneck 95% of the time.

fixAwkwardEntities

Mr. T’s recent “Would you like to…” post displayed terribly on the main page, but was properly-formatted on his page.

I’ve (crosses fingers) fixed it… For some reason, both Firefox and IE throw up an error ‘symbol’ when they encounter a character with an ASCII value over 128… They normally look better, except for when browsers don’t display them…

So I whipped this together:

        for($i=0; $i

Essentially, if a character has an ASCII value over 128 (which means it's one of the 'weird ones' that causes problems on some systems), it gets converted to the { syntax, which means it displays properly. And so far, so good!

Weave

Inspired by Kyle, I set up a Mozilla Weave server. (Link goes to directions, not my Weave server, since there’s absolutely nothing to link to or show about it…)

A quick bit of advice: Weave has a “password” (which is used to authenticate with the server) and a “passphrase” (which goes to the public/private key that’s generated). Not only is it important to understand which is which, but you also have to know that they can’t be the same.

A second bit of advice, to save you from pulling your hair out: “invalid password” seems to be its catch-all error message. Apache wasn’t able to create the directories Weave wanted due to a permissions error on my end at first, but I kept assuming Weave’s message about a bad password meant that… my password was wrong. But in actuality, it meant that I had to have Apache’s web user own the directory. (Which, in hindsight, makes sense…)

It’s currently highly beta, in that I just set it up and have no idea if it works… But if you’re interested in an account, let me know!