Eating with Democrats

Through my newfound connections, I got myself invited to a dinner with the New Hampshire Democratic Party. Me and 2,999 other New Hampshire residents. It was amazing. Although let me start with one disclaimer: it used to really get under my skin when people would take jabs at Democrats for being disorganized. But between a Youth Democrats of America conference I went to with some college colleagues and tonight, I’ve come to the following conclusion: Democrats are great in government, but terrible at organizing conferences. It took us a good 20 minutes to find a parking spot. It wasn’t that it was crowded (it was), but it was that the people telling us where to go were utterly inept! They’d tell us where to go park, and we’d arrive and have someone else tell us that they had no idea why they sent us there, since we couldn’t park there, and send us somewhere else. So we zig-zagged across the Hampshire Hills complex for quite some time.

In typical style with these posts, I’ll probably mix political and event commentary with some comments about photographic conditions. All photos link through to the Flickr gallery, where I’ve uploaded 21 highlights from tonight.

Let’s begin with the trivial. It was held in a huge dome, newly built at the posh Hampshire Hills dome. Since I’d been there last (a couple years), they apparently built an enormous stadium capable of seating 3,000:

title=”The Stage by n1zyy, on Flickr”>The Stage

Media swarmed the place, since with Iowa done, we were the next big thing, second only to the news that Britney Spears was taken to the hospital…

title=”Newscaster by n1zyy, on Flickr”>Newscaster

So really, the whole nation’s–even the world’s–eyes were upon us. It’s our time to shine… or to embarrass ourselves:

title=”Crikey by n1zyy, on Flickr”>Crikey

We were all there to see the Democrats running for President, but they made us sit through an awful lot of other stuff. For example, who–or what–is this?

title=”Eh? by n1zyy, on Flickr”>Eh?

Carol Shea-Porter spoke briefly. While I think everyone in the room was to credit, I was secretly proud for having voted for her. Not only is she spot-on when it comes to the issues, but she’s an outstanding speaker.

title=”Carol Shea-Porter by n1zyy, on Flickr”>Carol Shea-Porter

A few photography notes… For one, if you ever find yourself in charge of lighting at an event such as this, please consider bringing a photographer in to give you some guidance. The flag had really strange lighting on it. The goal with the black backdrop and intense lighting on the podium may have been to ensure that the background was non-distracting. It’s surely better than the glossy poster behind Bill Clinton. But it threw my camera’s metering through a loop, and I ended up shooting in full-manual mode most of the night. It was so dark that I was using ISO1600 at f/3.5 (as fast as my wide lens goes) and getting exposures of 1/15 second. Terribly dark. But then I was using ISO800 and getting 1/500-second shutter speeds shooting candidates. This is good, except that the light was really harsh, and all the lights were of different color temperatures. So our beloved flag was maroon, white, beige with a hint of blue, and black, while the whitest of speakers had intensely red skin. If the speaker was properly exposed, the podium was underexposed, and the sign in front was overexposed.

title=”NH Governor John Lynch by n1zyy, on Flickr”>NH Governor John Lynch

John Lynch, New Hampshire’s (Democratic) governor spoke a bit, too. Here you can see another problem: my 200mm lens (effectively 320mm with the digital camera’s crop) was far too short… They need to make a 100-600mm f/1.4 lens for situations like these. (Such a lens would probably weight at least 100 pounds and cost as much as a house, but it would take great pictures!) I honestly don’t know a lot about what Lynch has been up to, but it’s the same way I felt like when Clinton was president: things seem to run smoothly. National politics is a crisis week after week. With both Deval Patrick (MA Governor) and John Lynch, I think no news is good news. (I forget whether it was Lynch or Shea-Porter that mentioned it, but 2008 marked the beginning of civil unions in New Hampshire. So it’s not all no news. I’m frankly kind of proud that what much of the country probably sees as a quaint old farming state is at the forefront of…. rights?)

John Edwards was a no-show. I’m not sure what happened. I’d imagine that he was doing something else, somewhere else, but I’m really not sure why, especially after the surprise of beating Hillary in Iowa, he’d chose to avoid a forum with 3,000 New Hampshire Democrats and cameras from every news network in the country.

So Kucinich went first. While the Caucus results show him having received 0.0% of the votes, he didn’t seem phased by trivial polls.

title=”Dennis Kucinich by n1zyy, on Flickr”>Dennis Kucinich

If you think this is an unflattering photo… You should have been there. I agreed with a lot of what he said, but it was how he said it that I think resigns him to getting 0.0% in important polls. He spoke about how it’s wrong to spy on our citizens (a reference to Bush’s wiretapping), and how we should end the war, etc. But he seemed almost as angry as on Hardball.

It seemed a lot like a fire-and-brimstone speech, except, instead of shouting about Jesus, he was shouting about the Constitution, and, instead of waving the Bible, he was frantically waving his pocket copy of the US Constitution:

title=”Waving the Consitution by n1zyy, on Flickr”>Waving the Consitution

What pictures can’t convey is that he was furiously pounding on the podium and began jumping around a bit. Hopefully one of the news stations that was there will broadcast that.

It was assumed that this was his wife:

title=”Kucinich and…? by n1zyy, on Flickr”>Kucinich and...?

…although she appears more like a giant than a wife.

We also got to hear from Howard Dean:

title=”Howard Dean by n1zyy, on Flickr”>Howard Dean

He was actually a great speaker, and has a quality I love in politicians: the ability to poke fun at himself a little bit. He started talking about the need for a strong showing not just in Iowa and New Hampshire, and then began to list a few more states with early primaries. “But they tell me I’m not supposed to do lists anymore,” he said, an obtuse reference to his infamous yell. And then he made the reference much clearer by pumping his fist and acting as if he were about to reenact it, drawing laughter and applause.

Tonight’s hidden gem was Bill Richardson.

title=”Bill Richardson by n1zyy, on Flickr”>Bill Richardson

I’ve liked him for a long time, and he’s a very close second to Obama on my list of preferred candidates. (An Obama-Richardson ticket would be incredible! Hint hint, Obama!) While he doesn’t always photograph well (or maybe I just have bad timing), he sure knows how to give a speech. But perhaps most powerful was what he said about the need to pull out of Iraq. He talked, with evident sadness in his voice, about how he looks forward to the day when he can stop taking down the New Mexico flag to honor yet another of his residents killed in action. It was a really powerful way to put it, and the way he did it was flawless: it seemed like he opposed the war not just for political reasons, or as a soundbite, but because it truly pained him as governor to see his citizens being killed. Wow. Just wow. I really can’t do his speech justice here, but suffice it to say that I think his was the best.

title=”The Family by n1zyy, on Flickr”>The Family

And, of course, Hillary Clinton was there. I didn’t get (m)any pictures of her, because her supporters were standing and completely blocking the podium. (More on this later.) Bill and the much-forgotten Chelsea were there, too. But she began something that left me feeling uneasy: throughout the whole thing, there’d been an awesome sense of compatriotism. Some of us were there for Obama, some were there for Hillary, and some for other candidates. We were all in it together, not for our candidate, but for our future.

Hillary let loose a verbal barb clearly aimed at Obama, saying that we need strong leadership to end the war, not just hope that it will happen. This really rubbed me the wrong way–this type of bickering is exactly what has so many people fed up with politics. I also started to pick up on a sense of animosity between the Hillary fans and the Obama fans. I mentioned earlier that the Hillary fans crowded the stage and remained standing. None of us could see the stage, but with two enormous screens projecting a live feed, it wasn’t a big deal.

The Hillary camp somehow also wound up with all their tables right in front of the podium, while the Obama fans were assigned to tables in the corner. It turns out I was far from the only one to find this a little strange, as the Obama organizers decided to have us all stand and walk up to the stage when Obama came out. This ended up being an utter disaster, though.

title=”Obama Signs & Fire Marshall by n1zyy, on Flickr”>Obama Signs & Fire Marshall

Since our seats weren’t anywhere close, we ended up blocking an aisle. This didn’t sit well with the fire marshall, who (emphatically) cleared the aisles. We were still standing, just with a big fire-safety aisle between us, but an announcer demanded that we sit down before the event would proceed. A number of Hillary supporters were also getting testy with us. While really just a minor thing, it seems to me to show a lot of deeper problems: Obama supporters ended up coming off as brash and obnoxious, and I think Hillary fans and Obama fans came to dislike each other a little bit more. This is what we can’t have happening.

Of course, not everyone sat down as requested, leaving those of us who can follow instructions to get some pretty lousy pictures.

Obama, as usual, gave a great speech. He talked a lot about hope (which sums him up well). But he indirectly had a great comeback to Hillary’s jab, saying that, while he acknowledges that he’s a “hopemonger,” it’s time for a President with a can-do attitude, as opposed to focusing on the stale ways of Washington that we’re all so fed up with. Unlike some of the other candidates, he really didn’t use the opportunity to give a basic “You should vote for me” speech, as much as a, “The time is now” speech.

title=”Laughing by n1zyy, on Flickr”>Laughing

I suppose it’s neat to have him framed by his signs, but I’d hoped for better.

title=”The Crowd by n1zyy, on Flickr”>The Crowd

We’ve got a few more days to go. I’m attending a house party tomorrow (Deval Patrick’s coming), and it looks like there’s a Nashua Obama rally. Sunday’s more phonebanking, and Monday’s a Manchester rally for Obama. And then Tuesday is the day. And then it’s all over for us, with the candidates and the news getting a few days rest before scuttling on to the next primary. And an incredibly awkward period of waiting will emerge, leaving us in suspense for months before candidates are finally chosen.

YouTube

One of the many things I try to shy away from is making generalizations. They’re often harmful and downright inaccurate.

But one generalization I do feel comfortable making is that the comments on YouTube are among the worst I’ve ever seen. Even the few that are coherent tend to contain egregious grammar problems. I’m not talking about a missing comma. im talkin about like riteing like this i mean its so dummm why do they do this its like their never lurnd 2 right

Those are the good ones. The bad ones are offensive, pointless (“i like this video so much1!111”), or just downright bizarre. (In the video to one of my favorite songs, you barely see The Killers at all, yet someone left a comment that they love videos like this one where you can see the band playing the whole time.)

I want to know why this is the case. There are some sites (Digg, Slashdot) where there are some dumb comments. But YouTube is notoriously bad. Hilariously so. Except it’s gone way past hilarious, to the point of being irritating and kind of depressing. Is it a demographic thing? Is it swamped by 13-year-olds? (With apologies to 13-year-olds, who probably far exceed the average commenter on YouTube.) Is it a broken windows type thing, where people leave stupid comments because everyone else does?

YouTube recently implemented a rating system, where you can give a thumbs-up or thumbs-down to comments. Good idea. Except it really doesn’t work! For one, they made my classic mistake, but in reverse: they clearly never tested in Firefox (well, Flock or Firefox 3, but Flock is basically Firefox with some more addons and a fancy theme). But that’s not my point. A comment might voted up or down a couple points, but that’s all. There’s no suppression of comments, and the comments remain in chronological order, so comment moderation is pretty pointless.

9/11

While I don’t believe Rudy is going to make it far in the campaign, and while I really don’t like the attack ad element of politics, I’m frankly pretty appalled with Rudy Giuliani. I think it’s immoral to try to use 9/11 to your advantage. But Rudy’s use seems particularly insidious. He keeps suggesting that we need to vote for him if we want to be safe from terrorists. Besides the fact that his is creepy fear-mongering, what bothers me most is that there’s an unspoken (in this ad) implication that his leadership on 9/11 is what qualifies him.

It was a really crass comment, but a political commentator someone said something to the effect of, “Giuliani is an expert on terrorism just like the mayor of New Orleans is an expert on flood prevention.” While it maybe goes a bit too far, the point remains the same: what, precisely, about 9/11 makes him a qualified leader?

The IAFF (firefighter’s union) asking the same question. And if there’s anyone people respect because of 9/11, it’s FDNY. The IAFF essentially blasts Rudy for mis-handling things. One big problem I’d forgotten all about was the radio failures. They knew since the 90’s that their radios didn’t work inside the WTC, but repeated attempts to get it fixed never occurred. (They mention an “upgrade” that was actually so bad that they went back to their old radios, which is what they used on 9/11.) Tragically, more than 100 firefighters, because of these communication failures, never got the signal to evacuate WTC and ended up losing their lives because of it.

Some have also criticized Rudy for his decision to locate much of the city’s emergency communications infrastructure in the World Trade Center. Even if his common sense / expertise on terrorism didn’t tell him that this was an intuitively bad idea, previous attempts by al Queda to blow it up might have.

And if you’re not offended enough, give this a watch. I keep wanting to believe that this is a farce, with a look-alike mocking him. Except that all indications are that this is real. A Parkinson’s victim calls into a program Rudy’s doing on the radio to ask him why he took his food stamps and Medicaid away. Rudy cracks up laughing, mocks him, and offers to send him psychiatric help “because [he] clearly need it.” While Rudy surely didn’t know he was mocking a Parkinson’s victim, why would he treat anyone that way?!

Moral of the story: if you’re going to try to exploit 9/11 to win an election, you’d better make sure your botched leadership didn’t kill our firefighters. And you might want to refrain from going on public radio and cracking up laughing, and subsequently mocking, people who call in to say they have Parkinson’s and can’t afford their medication. But that’s just my opinion. I’m no political consultant or anything.

Update: For those that don’t read the comments, you should at least check out the link in this one for more of Rudy’s radio program.

Iowa

Iowa Caucus today. I’m glued to my computer. But it hasn’t even started.

This article mentions some interesting scenarios. One is that Edwards has been campaigning like mad in Iowa for a long time, so some are suggesting that he might walk away in first place. But Obama’s camp is also expecting a huge turnout: if we can get a flood of young voters to go to the Caucus, Obama’s a shoe-in. The article even mentions that it wouldn’t really be so surprising if Hillary, generally considered the front-runner, comes out in third place. The polls have started contradicting each other. One December 30 poll shows Obama winning slightly, another shows Clinton winning slightly. It’s all within that margin of error, and, on top of the margin of error, you have to wonder about who’s going to show up at the Caucus.

Giuliani is playing his cards… strangely. It looks like he’s blowing off Iowa again. He’s behind even Thompson in Iowa. I’m still surprised that Huckabee is doing so well in Iowa. He and Romney are duking it out there. (And, while I have major issues with a candidate who proclaims that he’s going to recapture our nation for Christ, I think I’d favor him over Romney.)

New Hampshire’s a bit interesting, too. Averaging polls, and mixing gut feeling in, it looks like Clinton enjoys a slight lead over Obama, and both of them are out in front of Edwards. But I think Iowa’s going to play a big role. If Edwards does really well in Iowa, that may bring him success in New Hampshire. Of course I’m crossing my fingers for Obama.

The Republican front gets interesting here, because the candidates who are polling favorably here aren’t the same ones in Iowa. Giuliani isn’t doing too well here, either–and I recall a recent article suggesting that, the more he campaigned here, the more his numbers dropped–but he’s doing better than in Iowa. Huckabee here falls tremendously, though, to a mere 9%. The two big guys here are Romney and McCain. McCain was actually leading in the most recent poll, although a poll a few days earlier said the same about Romney.

South Carolina’s being called another bellwether state. They have split primaries: the R’s go the 19th and the D’s go a week later. The South Caroliners show no love for their neighbor to the North, John Edwards, who’s polling at 17% pretty consistently. Here, Obama and Clinton are also neck-and-neck, although what’s interesting is that it looks like Obama has been closing in: in previous surveys he wasn’t nearly as close. On the Republican front, they’re quite fragmented: Giuliani, McCain, Romney, and Thompson are all pretty close. Huckabee enjoys a significant lead here, with 28% of the vote. I’m thinking that Iowa and New Hampshire might shake things up a bit: Thompson and McCain aren’t looking viable in the first two, so perhaps their supporters will get behind another candidate.

Before South Carolina, though, we have Michigan. They haven’t been getting polled that often, though. It looks like Romney and Huckabee are the two big guys there. We have to go back to November to see Democrat results, but it looks like Clinton has a significant lead in Michigan. And then there’s Florida, where Giuliani leads, with Huckabee and Romney essentially tied for second. Hillary seems to enjoy a significant lead in the Democratic race.

Don’t get too caught up in the need for instant gratification watching who wins, though. The next week is going to be exciting, and then there’s Super Tuesday (or Super Duper Tuesday as it’s now being called), with over 20 states holding primaries the first Tuesday in February. But we can’t just wait until February to know: as the map shows, a sizable number of states have later primaries. Montana and South Dakota are off in the Twilight Zone, holding primaries in June. (Think they’ve had a lot of candidate visits? Then again, think they’re getting a lot of calls?) The DNC is at the end of August, and the RNC is the next week, starting off September.

Big Hosting

I tend to think of web hosting in terms of many sites to a server. And that’s how the majority of sites are hosted–there are multiple sites on this one server, and, if it were run by a hosting company and not owned by me, there’d probably be a couple hundred.

But the other end of the spectrum is a single site that takes up many servers. Most any big site is done this way. Google reportedly has tens of thousands. Any busy site has several, if nothing else to do load-balancing.

Lately I’ve become somewhat interested in the topic, and found some neat stuff about this realm of servers. A lot of things are done that I didn’t think were possible. While configuring my router, for example, I stumbled across stuff on CARP. I always thought of routers as a single point of failure: if your router goes down, everything behind it goes down. So you have two (or more) routers in mission-critical setups.

One thing I wondered about was serving up something that had voluminous data. For example, suppose you have a terabyte of data on your website. One technique might be to put a terabyte of drives in every server and do load balancing from there. But putting a terabyte of drives in each machine is expensive, and, frankly, if you’re putting massive storage in one machine, it’s probably huge but slow drives. Another option would be some sort of ‘horizontal partitioning,’ where five (arbitrary) servers each house one-fifth of the data. This reduces the absurdity of trying to stuff a terabyte of storage into each of your servers, but it brings problems of its own. For one, you don’t have any redundancy: if the machine serving sites starting with A-G goes down, all of those sites go down. Plus, you have no idea of how ‘balanced’ it will be. Even if you tried some intricate means of honing which material went where, the optimal layout would be constantly changing.

Your best bet, really, is to have a bunch of web machines, give them minimal storage (e.g., a 36GB SCSI drive–a 15,000 rpm one!), and have a backend fileserver that has the whole terabyte of data. Viewers would be assigned to any of the webservers (either in a round-robin fashion, or dynamically based on which server was the least busy), which would retrieve the requisite file from the fileserver and present it to the viewer. Of course, this places a huge load on the one fileserver. There’s an implicit assumption that you’re doing caching.

But how do you manage the caching? You’d need some complex code to first check your local cache, and then turn to the fileserver if needed. It’s not that hard to write, but it’s also a pain: rather than a straightforward, “Get the file, execute if it has CGI code, and then serve” process, you need the webserver to do some fancy footwork.

Enter Coda. No, not the awesome web-design GUI, but the distributed filesystem. In a nutshell, you have a server (or multiple servers!) and they each mount a partition called /coda, which refers to the network. But, it’ll cache files as needed. This is massively oversimplifying things: the actual use is to allow you to, say, bring your laptop into the office, work on files on the fileserver, and then, at the end of the day, seamlessly take it home with you to work from home, without having to worry about where the files physically reside. So running it just for the caching is practically a walk in the park: you don’t have complicated revision conflicts or anything of the sort. Another awesome feature about Coda is that, by design, it’s pretty resilient: part of the goal with caching and all was to pretty gracefully handle the fileserver going offline. So really, the more popular files would be cached by each node, with only cache misses hitting the fileserver. I also read an awesome anecdote about people running multiple Coda servers. When a disk fails, they just throw in a blank. You don’t need RAID, because the data’s redundant across other servers. With the new disk, you simply have it rebuild the missing files from other servers.

There’s also Lustre, which was apparently inspired by Coda. They focus on insane scalability, and it’s apparently used in some of the world’s biggest supercomputer clusters. I don’t yet know enough about it, really, but one thing that strikes me as awesome is the concept of “striping” across multiple nodes with the files you want.

The Linux HA project is interesting, too. There’s a lot of stuff that you don’t think about. One is load balancer redundancy… Of course you’d want to do it, but if you switched over to your backup router, all existing connections would be dropped. So they keep a UDP data stream going, where the master keeps the spare(s) in the loop on connection states. Suddenly having a new router or load balancer can also be confusing on the network. So if the master goes down, the spare will come up and just start spoofing its MAC and IP to match the node that went down. There’s a tool called heartbeat, whereby standby servers ping the master to see if it’s up. It’s apparently actually got some complex workings, and they recommend a serial link between the nodes so you’re not dependent on the network. (Granted, if the network to the routers goes down, it really doesn’t matter, but having them quarreling over who’s master will only complicate attempts to bring things back up!)

And there are lots of intricacies I hadn’t considered. It’s sometimes complicated to tell whether a node is down or not. But it turns out that a node in ambiguous state is often a horrible state of affairs: if it’s down and not pulled out of the pool, lots of people will get errors. And if other nodes are detecting oddities but it’s not down, something is awry with the server. There’s a concept called fencing I’d never heard, whereby the ‘quirky’ server is essentially shut out by its peers to prevent it from screwing things up (not only may it run away with shared resources, but the last thing you want is a service acting strangely to try to modify your files). The ultimate example of this is STONITH, which sounds like a fancy technical term (and, by definition, now is a technical term, I suppose), but really stands for “Shoot the Other Node in the Head.” From what I gather from the (odd) description, the basic premise is that if members of a cluster suspect that one of their peers is down, they “make it so” by calling external triggers to pull the node out of the network (often, seemingly, to just reboot the server).

I don’t think anyone is going to set up high-performance server clusters based on what someone borderline-delirious blogged at 1:40 in the morning because he couldn’t sleep, but I thought someone else might find this venture into what was, for me, new territory, to be interesting.

Geekostat

Disclaimer: I can tell right now that this is one of those late-night posts where I should be sleeping, not posting about a technical topic. But these not-entirely-lucid ones are sometimes the most fun to read.

I consider myself extremely tech-savvy. I can build a computer from parts, make my own Ethernet cables, run some performance tuning on interactive websites, write applications in numerous programming languages (as well as SQL and HTML), and much more.

But I still don’t get our digital thermostat. They’re programmed to go down to 58 at night, come up to 67 on weekends and from something like 6 to 9 a.m., and 3 to 9 p.m. on weekdays. In other words, when people are home.

Of course, me being home on vacation isn’t quite compatible with this. There’s a simple override, where you can hit the up or down arrows to set it to a temperature. While I use (and appreciate!) this, it’s also a pain. It’s really no fun waking up and having it be 58. I’d really like to reprogram it to automatically come up to 63 or so around 10:30.

I still don’t get why the whole thing isn’t on the LAN. This would have two obvious benefits right out of the gate–it’d be much easier to configure (even if you let someone with no clue about usability design the GUI, it’ll be better than the myriad knobs, switches, and buttons on our thermostat!), and it’d be more convenient in many cases to pull up a new tab in your web browser than to walk down the hall to the thermostat. (Plus, the thermostat is in my parents’ bedroom. I’d have loved to have turned the heat up a few degrees around 11 tonight, since it’s 9 outside and almost as cold inside. But something tells me they really wouldn’t have appreciated it.)

I’m also not sure that the ‘simple’ thermostat algorithm is that efficient. You figure it works something like:

while(1) { $temp = getTemperature(); $desired = readDial(); if($temp<$desired) furnace.enable; if($temp>$desired) furnace.disable; }

When we view it at ‘computer speed,’ I think we can see one of the basic problems: in theory, the furnace could start flapping, where on one loop iteration it turns the furnace on, and just a fraction of a second later, it turns it off. I don’t profess to know a lot about the overhead in starting a furnace, but I’d imagine that it’s most efficient to let it run for a few minutes.

I think a much better system would be to have a programmed minimum run time: if the furnace is turned on, we should run it for at least 5 minutes. After 5 minutes, we again evaluate the temperature: if it’s at the target, we turn it off. If not, we drop into a quicker polling, maybe once every minute. Incidentally, this is much better for the thermostat’s processor, but if its sole purpose is determining whether to turn something on or off, no one really cares about minimizing overhead.

So you give it a secondary purpose: handling a TCP/IP stack and a basic webserver! All of a sudden, instead of an infinite loop, you run a tiny bit of code every 30 seconds.

You can also generate some interesting statistics. For example, how long does the furnace need to run to raise the temperature one degree? How does this scale–if you want to raise it three degrees, does it take three times as long? How does the temperature of my house look when graphed across a day? How about telling me how long the furnace ran yesterday? And, given information about my furnace’s oil consumption and our fuel costs, it’d be cool to see how much it’s costing. And it could give us suggestions: “If you drop the temperature from 68 to 67, you’ll save $13.50 a month,” or such. This would require some storage, but a gig of solid-state media (e.g., a camera’s SD or CF card) is around $10-20 now. Plus, with the advent of AJAX, you can push some of the processing off to the client–let the client use a Flash applet or some good Javascript to draw the graphs if the thermostat is underpowered!

In conclusion, I’m freezing.

Transparent Government

As has happened in the past, it seems like the election has been reduced to 2 or 3 talking points–immigration, health care, and Iraq, to name the big ones.

I was brushing up on Obama’s stance on the issues, and found something that really excited me. Check out his page on ethics. It’s not vague talk about how lobbying is bad. He has an awesome plan:

  • A big database and Web frontend containing information on lobbyist activity, what they spend, and what bills are awarded.
  • Information on all federal contracts, how much they cost, who lobbied for them, and how the completion of the contracts is going.
  • Require that non-emergency bills be posted to the Internet for a few days before signing them, to promote “open government”
  • Do the same for earmarks, disclosing who added each earmark and why.
  • He also wants “21st Century Fireside Chats,” where Cabinet officials talk about what they’ve been doing periodically, streamed over the Internet for all to see.
  • Publicize meetings that shouldn’t be secret, such as “regulatory agency business.”

It’s ambitious, but boy would it be awesome! It’s funny: it almost seems like it’s somehow wrong that I should be able to see exactly what my elected officials are doing. And yet it’s really exactly what our government is all about: transparency. Wow-a-wee-wow!

Idea

Why isn’t there a really good “network appliance” as a network gateway? You can get a low-end firewall/router, or you can build your own machine.

Setting up OpenBSD is no walk in the park, though. I want to build an “appliance” based on OpenBSD, and give it a nice spiffy web GUI. You buy the box, plug one side into your switch and one side into your cable modem or whatnot, and spend ten minutes in a web browser fine-tuning it. I was really fond of the appearance of the Cobalt Qube, although it could be made much smaller. And throw a nice LCD on the front with status. You can run a very low-power CPU, something like the one powering these. It really doesn’t need more than 512MB RAM, but give it a small solid-state drive. And a pair of Gigabit cards, not just for the speed, but because GigE cards usually are much higher-quality. In building routers, the quality of your card determines how hard the CPU has to work.

There’s so much that a router can do. You can run a transparent caching proxy, a caching DNS server, priority-based queuing of outgoing traffic (such as prioritizing ACKs so downloads don’t suffer because of uploads, or giving priority to time-sensitive materials such as games), NAT, an internal DHCP server, and, of course, a killer firewall. You can also generate great graphs of things such as bandwidth use, blocked packets, packet loss, latency…You can regulate network access per-IP or per-MAC, and do any sort of filtering you wanted. It could also easily integrate with a wireless network (maybe throw a wireless card in, too!), serving as an access point and enabling features like permitting only certain MACs to connect, requiring authentication, or letting anyone in but requiring that they sign up in some form (a captive portal). And I really don’t understand why worms and viruses spread so well. It’s trivial to block most of them at the network level if you really monitor incoming traffic.

I’m frankly kind of surprised that nothing of this level exists. I think there’s a definite market for quality routers. A $19 router does the job okay, but once you start to max out your connection, you’ll really notice the difference! A good router starts prioritizing traffic, so your ssh connection doesn’t drop and your game doesn’t lag out, but your webpages might load a little slower. An average router doesn’t do anything in particular and just starts dropping packets all over the place, leaving no one better off. (And a really bad router–our old one–seems to deal with a fully-saturated line not by dropping excess packets or using priority queueing, but by reboot itself, leaving everyone worse off… I think this may have had to do with the duct tape.)