Saturday, December 27, 2008


Sarah and I got back from our two week trip to Nicaragua visiting my Aunt and taking in the sights. I'm hoping to get photos online soon, but am still waiting for a little DNS magic before the new photo site goes live.

In the meantime, just to make it even more internet official (as if posting it on Facebook wasn't good enough), on December 20th I asked Sarah to marry me, and to the hushed surprise of everyone, she said "yes." The engagement will probably be about three years, which we realize is a tad long... but makes sense given Sarah's academic schedule.

Thanks to everyone who provided assistance and advice to the planning and execution of the proposal, I will see you at the wedding!

Wednesday, December 03, 2008

No, amazon cannot decide you're a felon, but...

The Don--who came up with these names?--asked me if I would comment on the Lori Drew verdict. Instead of posting on his blog, I figured I'd post here and link from there, thus keeping all the juicy page views for me and my Google AdWords empire (I kid, I kid).

The general story here is that person did something most folks agree was bad, but since none of our existing criminal statutes really fit the action in question, the prosecutors in the case used the Computer Fraud and Abuse Act to seek conviction for what amounts to a violation of the MySpace Terms of Service. The Don expressed understandable apprehension to the idea that a corporation like Amazon could wield their TOS in such a way as to make site visitors into felons. But first a little context might assist in seeing if this is really a sign of the end of the world, or just another day in America.

Let's start with the concept of trespass law. Now, there are some folks who say trespass law is stupid and people should be able to go where ever they like. If you fall into this group, you can just stop reading now, because I can't help you. But assuming you agree that trespass law is good and proper, you have to ask yourself some questions. Consider your personal dwelling. If someone comes into your house uninvited they are obviously trespassing. It's a clear cut case and criminal prosecutors will have no problem getting a conviction. Let's change the fact pattern slightly and say instead of a house, it's a store with a large public area for browsing the merchandise, and an employees' only area in the back. Now, if someone goes into the public space, they aren't trespassing, right? They have been invited into the space by the owner and are what we in the legal business would call an invitee. But once the visitor goes into the employees' only space, they move from the invitee column into the trespasser column.

The question then is what makes the distinction between the public space where you're an invitee and the private space where you're a trespasser? The answer is private law. In the case of the store it's enforced by a little sign posted on the door to the employee area that says "Employees Only." Two little words, perhaps, but two words backed by the power of the state penal system. Essentially what we've done is say in the law "we think there are some places you shouldn't be able to go, but since we can't specify all those places, we are going to empower private law to specify on a case-by-case basis." Now, of course, there are limits, like clear notice and the moderating force of a jury. I realistically can't imagine a jury convicting someone mistakenly entering into an employee area, no matter how well marked it may have been.

These same principles apply to the internet just as well as they do to the physical word. In fact, there is a rather famous example of this sort of private law backed by criminal law that is clear as day... it's called the DMCA. I wrote a post years ago on this very topic, feel free to read it if you have a moment. Owners of copyrighted materials can seek federal criminal prosecution if you break a "technological measure," which could really be just as simple as a little button that says don't copy me. The slashdot crowd goes crazy over this... how can it be a crime to break such a stupid technological measure, they demand to know! To which I ask, is it any more or less of a crime if I break into a locker with a tiny pad lock instead of a huge deadbolt? I certainly shouldn't think so.

Which brings us back around to the Lori Drew verdict. MySpace makes clear that you are an invitee into their online space so long as you conform to their Terms of Service. The moment you stop conforming to their TOS, you become a trespasser... just as if you had entered into the employees only area. This isn't to say that every violation of an online TOS is going to result in criminal prosecution, because we have prosecutors, judges, and juries all in the business of continuously evaluating what is and isn't worth prosecuting on a day-by-day basis. Just because you engage in felonious acts doesn't make you a felon, or we'd all be in the slammer. What it does mean is if you engage in activity that you know is wrong--even if that activity is solely online--and it ends up with someone dying, you'd best get yourself a lawyer.

Saturday, November 22, 2008


Seven days ago marked my year anniversary with Articulated Man, which Sarah and I celebrated with a bottle of wine we have been saving from her trip through the Champaign region in France. It was most delightful.

On Wednesday I flew into Chicago for a week long Development Sprint, which is serving as the kickoff for a large internal development project that will hopefully be the engine of the company for the next couple of election cycles. I had requested an annual review to go over whatever stuff I might be able to improve upon, and since I was going to be in town we figured we could just do it in person, which we did last night.

The good news is that I seem to be doing well and got positive reviews. The better news is that I am receiving a raise and a title promotion to reflect the job I actual do, as opposed to the one I was hired for. Which is not to say I don't still do that job, which was "Developer", but that I really do a ton more stuff on a day-to-day basis that Developer really doesn't encapsulate. The cool part is that I get to select my own title.

The current list of possibilities include:
  • Lead Systems Administrator
  • Systems Director
  • Information Systems Director
  • Information Technology Director
  • Information Technology Manager
I'm not a big fan of the first, since "Systems Administrator" evokes images of a dude working in the basement... and while I don't really have a problem with that image per se, it really isn't the sort of title I would want to use as a platform to go other places. Don't get me wrong, I expect to be with AM for many years to come, but someday I'd like to go into policy and sysadmin doesn't exactly scream policy proficiency. But the term director and manager are certainly more sexy and can mean some cool things going forwards. I'm open to suggestions if there are others out there, otherwise I plan to make my decision in a couple of days.


I went with Information Systems Director.

Tuesday, November 18, 2008

No Longer the Loyal Opposition

Obama won... yay! But wait, wasn't that like two weeks ago? Why am I just posting this now? Well, in part because I had wanted to wait until we had a solid electoral count against which I could compare my predictions, and silly Missouri is too close to call and the Obama campaign won't just concede it, so folks who call things things are unwilling to put their ass on the line. Which is fine, except there are other things I want to write about, but not before my loyal opposition piece I've been writing in my head the past two weeks. So, here we are...

First, predictions. Let us first assume that Obama will not win Missouri, because the vote count is heading that way and it hasn't changed since election night. Which gives McCain 173 electoral votes and Obama a whopping 365. I had predicted a 355/183 split, so I was only off by 10 votes... also known as Indiana. Silly Lake County broke more for Obama then I had expected. It was actually very surreal, after Ohio was called for Obama and the race was essentially over, that I started rooting for McCain in Indiana, because that was the one state that my prediction was heading the wrong direction. But, I suppose if I have to be wrong on a state, I prefer to be wrong in the way that gets more votes for my guy. Also, bonus points for having called the electoral vote coming out of Omaha, Nebraska for Obama.

Next, a little ethnographic film about that fateful moment when the polls on the west coast closed and the election was called.
Yes, that's me in the white shirt and the American Flag tie. Exact same outfit as 2004. I think we have the start of a good little tradition.

And now, a special comment. I realized the day after the election that my relationship with my government had radically changed. Since my political inception, there has either been a Republican President or a Republican Congress... and for five years we had both! (And one crazy year we had a Republican President and a Republican House with a Democratic Senate.) This is the first time when my party is truly, and unapologetically in power.

That really changes how you relate to what's going on in Washington. Until now, if something bad happened it was all too easy to say, yup, that's bad... silly Republicans. It also meant that ideals I supported were generally in opposition to the majority ideals. In such instances you take up the mantle of the loyal opposition. You may object to the outcome, but as a loyal American you recognize the political process for what it is. Obama's election and growth of Democratic majorities in the House and Senate change everything.

Now it's not enough to just say, "silly Republicans", because they aren't the ones doing the bad things. It's going to be us. And don't give me the line about the Senate filibuster... by the time Alaska and Minnesota are resolved, I fully expect a 59 vote majority in the Senate. Even if we fail to pickup the runoff in GA, as I expect will be the case, it should be trivial to pick up a single republican vote on all manner of issues, assuming we have unity among the caucus.

And that's the whole issue. Now that the Democrats are in charge, will be have unity? I'm not talking about the sort of unity where we all go jump off a bridge together, but the kind of unity where members vote as a governing coalition for the betterment of America, not just their own personal political prospects. What of us rank and file Democrats? Are we going to become the ditto heads of the Democratic party, walking around as if our newly elected leaders can do no wrong? Maybe we'll swing the other way, and demonstrate that liberals really are never satisfied.

I honestly don't know what happens next. I'm excited for change and I'm excited to have a voice that matters. But there's a lot of scary stuff out there, and it will take more than just a really smart president (though that's certainly a prerequisite). I don't doubt Obama will rise to the task... but will we?

Monday, November 03, 2008

Predictions: 37 Hours Out

Just spent some time on the Washington Post "Pick Your President" tool and put together my final predictions for tomorrow. Final tally: 354 for Obama / 184 for McCain.
<p><strong>><a href=''>2008 Election Contest: Pick Your President</a></strong> - Predict the winner of the 2008 presidential election.</p>
Should be a fun night of watching the results come in.

Wednesday, October 22, 2008

My First Rails Application

Last week Articulated Man launched my first solo Rail's application, a voter's guide for New England federal races. The site was sponsored by the New England Alliance for Children's Health, whose site we did earlier in the year as just a standard site. The voter's guide required a bit more functionality, thus the decision was made to develop in Rails and use it as my first stab at Rails development.

The site turned out great, mostly because we have outstanding designers who can make anything look good. I also learned quite a bit about the nuts and bolts of a Rails site, which is something you don't really get from just reading the book.

While it's still too soon to make any firm declarations about Rails, I will say it was very nice to have some provided structure when building the application. With LegSim, and pretty much any other project I've done, I had to build everything out of whole cloth... thus, LegSim is rather amorphous, having changed throughout the years and never following a clearly defined structure. With Rails you get that out of the box... perhaps more structure than I would prefer, but I think I'd prefer too much structure over too little, at least at my current stage as a developer.

Speaking of LegSim, the UW Congress course has started up again this quarter, giving me a boost of excitement to get developing again. Already some good stuff happening there as I integrate what I've learned since doing web development full time. Sadly, Archon and LegSim v5 have been put on hold until later, as I need to have a finished product well before either of those technologies will be ready for prime time. But some day--some day soon--LegSim will be rewritten and be better than ever!

Thursday, October 16, 2008

A Dutch Experiment

While visiting The Netherlands earlier this year, Sarah introduced me to Bitterballen, a dutch snack food traditionally eaten with beer. They were so good that all of us visiting Americans insisted on ordering them at every meal where it made sense. After leaving the country, I figured I wouldn't get to eat them again until I returned. But this weekend I decided nuts to that and went about researching how to make them myself.

After checking out several different recipes on the internet, I settled on the following:
  • 4 tbl. butter or margarine
  • 1/2 lb ground beef or veal
  • 1/4 cup carrot, finely diced
  • 1/2 cup onion, finely chopped
  • salt and freshly ground black pepper to taste
  • A grating of fresh nutmeg
  • 1 tbl. fresh lemon juice
  • 2 tbl. parsley, finely chopped
  • 5 tbl. flour
  • 1 cup beef broth or milk
  • 1/2 cup dry bread crumbs
  • 1 egg, beaten with 1 tsp. water
  • Oil for deep frying
Heat one tablespoon of the butter in a large skillet over moderate heat and cook the meat, carrots, and onions until the meat is browned and the carrots are tender. Drain the meat in a colander, then place in a mixing bowl. Add the salt, pepper, nutmeg, lemon juice, and parsley and stir to combine. Set the meat mixture aside. Heat the remaining 3 tablespoons of butter in a saucepan over moderate heat and stir in the flour to make a roux. Cook this for 2 to 3 minutes, then add the beef broth or milk. Continue heating, stirring constantly, until the sauce boils and becomes quite thick. Combine the sauce with the meat mixture, stirring to combine them thoroughly, and chill this mixture for at least two hours in the refrigerator, until it has become solid. When the mixture has solidified, roll it into balls about 1 inches in diameter, using your hands. Roll the balls in the bread crumbs, then in the egg and water mixture, then in the bread crumbs again. Fry a few at a time in a deep fryer with at least 2 inches of oil at 375 degrees until golden (about 2 to 3 minutes). Drain on paper towels and serve immediately.
I chose my friend's final debate watching party as the testing grounds, hoping that a wide group of people could give feedback. Sadly attendance was far less than the previous debate parties, but overall the reviews were positive.

Preparing for construction

I made the constituent elements the day before. The green bowl there is a three times the recipe above and took several hours to prepare.

Ready for frying

Each of these balls has a double coating of breadcrumbs. In retrospect, I wish I had made them a bit smaller.

The deep fry!

It was not easy to keep the temperature constant. Poor Mike was constantly checking the temperature and adjusting the heat.

The first batch

I feel this was the best batch in terms of color. I didn't have a proper timer to count the frying time, leading to uneven cooking.

Ready for muching

This is the first 16, but I would end up making 13 more, for a total of 29 delicious little balls. I also have easily half of the filling left over. Looks like I'm going to have to make more this weekend.

Saturday, October 11, 2008

These Voters

During the end of the Democratic Primary, as Obama was narrowly loosing states to Hillary Clinton after a series of victories that put him so far in the lead it was virtually impossible for Clinton to catch up, the talking heads had a lot of fun declaring Obama was having difficulties with these voters. These voters were generally poor working white voters in West Virgina, Pennsylvania, and Indiana, but sometimes these voters referred to women, seemingly, in general. The "proof" behind these assertions was that Clinton had done better in those demographics, often by as much as 10 whole points! And so the conventional wisdom went that someone who supported Clinton must not like Obama... and thus electoral doom awaited him come the general election.

Here we are, less than a month away from November 4th, and Obama is leading nearly every contested state and in every demographic--except racists and the deeply conservative--and is on his way to an electoral landslide of 340+. Obviously all these voters didn't end up having as many reservations about Obama as original prognosticated. Could it have been these voters just generally liked Clinton more, but in a race between Obama and McCain there really is no contest? Did anyone actually expect those traditional democratic voters to switch party? Honestly?

What strikes me is that for all the punditry's willingness to advise the Obama campaign about these voters, you don't ever hear similar advice directed at the McCain campaign? Where are the commentators mentioning that Obama has a mortal lock on voters with a college education and that McCain just isn't connecting with smart people? Or that Obama has a huge lead among those worried about the economy, implying McCain doesn't resonate with working people? How about his inability to persuade those who live by major bodies of water? (McCain's message just isn't hitting home with people who understand what it means to be really wet!) Why isn't anyone being so blatantly condescending to McCain as was so in vogue with Obama just three months ago?

Tuesday, October 07, 2008

Truer Words Never Spoken

I read a lot of Washington Post stories, in particular their editorials, which is really the only way to get analysis these days since reporters are so afraid of being called biased they can't just come out and say "so and so is telling a lie". Today I read the first editorial I've seen of one Anne Applebaum, who is a native Washingtonian (not of the state variety) talking about the supposed "Washington" that we hear politicians claiming to represent middle America are always railing against. She's got an all-star list of politicians who (a) run Washington and (b) are from middle American... and yet, Washington still seems to be this thing that middle America hates. She brings her editorial to a finish with the following paragraph that every one should read.
Washington, however stuffy it may once have been, is no longer in need of "a little bit of reality from Wasilla Main Street." Washington is in need of expertise, management experience, long-term thinking and more political courage -- from wherever in the country it happens to come. More to the point, Washington needs people who think like national politicians and not like spokesmen for the local business executives who fill their reelection coffers and the local party hacks who plan their campaigns. Let's be frank: The "bailout" bill was passed last week not because members of Congress decided it would work but because it was stuffed with the pork, perks and tax breaks without which no piece of legislation, however important to the nation as a whole, can now pass. Maybe it's unfair to call that "small-town" thinking, but it sure is small-minded. And small-mindedness, not snobbery, is the dominant mind-set of 21st-century Washington.
I wish I could write like that.

Thursday, October 02, 2008


While I wait for the Vice Presidential Debacle--I mean, Debate--to start, I figured I'd drop a quick post about Marked-to-Market, for those trying to make heads or tails of the bailout business up on the Hill this week. Let me start by saying I have not made up my mind about the bailout, and one of the big advantages about not being being a member of Congress is that I'm not required to. I once heard a Congressional Chief of Staff observe that Congress people are paid to have incredibly well informed opinions. And it's true, with a staff of at least six people and all the time in the world to think about issues, I should expect their opinions to be infinitely more informed than my own... not that this makes them right.

Anyway, as everyone knows, the House Republicans killed the bailout bill on Monday saying that government intervention into the market is (a) always bad and (b) unneeded. I don't buy (a), and that certainly makes me wonder about (b), but they seemed so darn certain... and seeing as how these are the people that Wall Street Fat Cats got elected for their "pro-growth" policies and thus should be first in line to give money to their corporate overlords, I wanted to know more about (b) before I dismissed it out of hand.

Members of the Republican Study Committee argue there are a set of non-interventionist options available to unfreeze the currently frozen credit markets. Besides ever popular policies like more tax cuts, their chief proposal is to abolish the Securities Exchange Commission's Marked-to-Market rule. Here's the rule in jist form:
When reporting assets, as all publicly traded companies do, assets must be valued at what they would fetch on the open market
Which is to say, if I have 10 head of cattle which I could sell today for $1000, then I report $1000 worth of cattle as my assets. It also means that even if I believe the cattle will be worth $10,000 in two months time, I cannot state that today... because it's not the current fair market value.

The RSC argues that the Marked-to-Market policy is what has frozen the credit markets because there are no buyers, of any kind, for the toxic securities backed by foreclosed mortgages that started this mess. As a result, financial institutions holding these assets must report them as being worth ZERO dollars. Which, if you think about it, is absurd. Even if the mortgages are in foreclosure, there is a house underneath all that paperwork that is worth something. It may not be worth what it was originally sold for, but it's sure worth more than zero. However, because the SEC requires assets be marked to the current market value, and no one is buying the securities, that's exactly how it is valued.

So, the RSC has a point... maybe if we eliminated the Marked-to-Market rule, the banks could post healthier looking balance sheets, with higher capitalization, and things could start getting better. It just might work... but lest we forget, there was a reason the Marked-to-Market rule exists at all. If estimating the value of something based on some potential future sounds familiar, that's good--means you are paying attention--because that is what Enron did. They valued their various energy trading deals based on a projected value of assets that didn't exist. As a result, Enron looked great on paper, but in reality, it had nothing.

The question then for our well informed Congress people is this... how do you allow holders of these toxic securities to estimate their true value while avoiding Enron type behavior?

Tuesday, September 30, 2008

Renaissance Faire

I accepted an invitation from Brett and Timber to attend this year's Northern California Renaissance Faire. It was my first time attending a Faire, which is considered a bit of a cultural necessity in geek circles, so I felt it was time. I took some pictures, which I uploaded to Flickr as an experiment.

I didn't take very many photos of the attendees, though they were by far the most interesting aspect of the faire. The costumes came in a wide varieties, from the simple to the ornate. The only unifying theme I could find was the obsession with corsets on the female form. Since I'm entirely too shy of a photographer to take personal shots, here is one I took of a large group.

Later on this group would setup a life-size game of Janga which they played blind folded...

We took in two different jousting events put on by the Knights of Avalon, a full contact jousting troupe that is also a 501(c)(3) rescuing horses. Interestingly, the Knights of Avalon are sponsored by Monster Energy, if the stickers on Black Knight were to be believed.

Dudes had some serious armor

They actually hit each other with sticks going very fast

Of course, no Faire is complete without food. I purchased a roast beef sandwich that proved unexciting. But Timber purchased bread and cheese, seen here.

You could also purchase this with a sausage, in which case the entire thing was served on a stick

While eating we enjoyed minstrels and players on stage. In addition to the Irish music and dance group shown below, we also saw a rather clever 30 minute bit about Shakespeare that was rather intelligent. You needed to know a decent amount about Shakespeare to appreciate their humor.

The photo of the players was totally lit wrong, so you get this far less exciting photo of music

Perhaps most critical to truly appreciating the event was to join in with the costuming. Brett, as is traditional, was a bump on a log. But Timber got into the act with a garland that matched her dress.

Who wouldn't want ribbons flowing off their head?

I decided to take the whole concept a bit further and made a true investment in ridiculousness. Behold, my new fluffy hat:

Now my Bowler Hat has a friend

It's worth noting that I got a deal on the plumage, talking them down to just $15 for the three extra feathers, which apparently was quit a bargain. Here's another shot of me standing in a rustic setting, with the hat.

Now I have something for Halloween

Tuesday, September 23, 2008

Blood Money

The past couple of weeks have been a real eye-opener for ardent believers in the infallibility of market investment. It's not that stocks of actual companies are in trouble, it's that the so called financial sector appears to be in the state of some sort of meltdown. I'm no economist, and I don't follow the market like I follow other things, but I certainly can't say I'm surprised at the situation. For me this goes back to human nature and the basic concepts on which capitalism is based.

Capitalism, as opposed to say, socialism, seems based on the notion that humans are self-interest maximizers. Given the option we will always do what's in our own best interest. Which is a really positive way of saying we are all selfish bastards. In my limited travel of the world, I think that's fairly accurate. But capitalism had the brilliant idea of saying that so long as everyone is acting in their own self-interest, the outcome will be beneficial for everyone. Again, put more brutally by famed economist John Maynard Keynes, "[c]apitalism is the astounding belief that the most wickedest of men, will do the most wickedest of things for the greatest good of everyone."

Underlying all of the market economy is the notion of risk, and in it's purist form, the individual who takes on the most risk has the greatest potential for profit. I borrow $50,000 to start a business, I've now taken a risk, but if it pays off I'll be much better for it. Of course, if it fails, I'm out $50K. This concept supposedly scales all the way up to the Fortune 500 companies who routinely borrow billions of dollars in the name of investment. At that high level of play it's called leveraging. A company may have $5 billion in fixed assets, but only 10 million excess cash with which to invest. But, it can borrow against those fixed assets and leverage the company millions more. As long as the return on investment is higher than the interest rate on the loan, then it's a profitable deal for the company.

What the past few weeks have demonstrated rather clearly is that the above concept of risk is simply not operative. When a bank buys securities backed by junk mortgages, on the hope that the risk will pay off, the bank is not the the only actor taking on risk, they are just the only one doing so voluntarily. Turns out that the entire financial system takes on risk, from the lowest bank depositor, up to the federal government, all the way back down to the lowest taxpayer.

The result is that risk takers are not, in fact, risk takers... they are risk distributors, with the added bonus that all of the benefits of the risk flow to just to them, while the negative fall out will be distributed. This creates a perverse incentive for risk takers to assume more risk than the profit margins would suggest, because the full weight of the risk is not theirs to shoulder. Suddenly the idea of buying complex securities with shoddy accounting backed by junk mortgages doesn't sound so bad. Suddenly the idea of over-leveraging your company begins to make market sense. Suddenly approving mortgages to risky borrowers in order to cash in on the soaring housing market is the best way to meet quarterly earning projections. The next thing you know we've got a system stuffed full of so much unwise risk that it simply cannot hold under its own weight... and that brings us to today.

I entitled this post Blood Money not in reference to the funds these risk takers extract from us as depositors, pensioners, and tax payers, but rather as a proposal for the reverse. We often hear pure market advocates say taxes on the rich--though, generally in this context they are referred to as "risk takers"--should be cut to encourage investment. The thought goes that these rich folks won't be sufficiently self-interested if they know the government is going to tax their income. I've never really been convinced by this argument, seeing as how if I have the opportunity to make $100, and in one universe the government is going to take $40 and in the other the government is going to take $45, I will still go for the $100, because in both universes the residual earnings is still greater than zero. The only situation where I wouldn't act is one where the risk of failing is so great that the $5 profit margin is actually determinative. But I digress :)

The point is that lowering taxes on the highest tax bracket has always been justified because these folks are the so called wealth creators, through their clever risk taking strategies, and that if we tax them, we will destroy their ingenuity. But now we find ourselves in a situation where the rich are asking for a $700 billion bailout, financed by taxes, because they assumed too much risk... and we, as tax payers, are probably going to give them an amount in that neighborhood because the risk takers figured out a away to ensure that we already bear the risk, even though we were never in line for any of the profits.

Students of history will note a bit of a cycle here... whether with the Savings & Loan bailout, or the auto industry bailout, risk takers are always figuring out ways to trap us regular Joes with the risk, while pocketing the profits during good times. My suggestion then, is that it's time for us to claim our share of the profits. Here are a few ideas just off the top of my head: we could go back to treating profits from investment just like normal income, ending the preferential tax treatment of those whose entire earnings come from their own existing wealth; we could enact windfall taxes on industry in boom cycles (I'm looking at you, oil sector) which has the added bonus of cooling off those boom industries so they don't overextend and then crash out, leaving us holding the bag; we could even revisit the assumed knowledge that lower taxes on the high income bracket somehow benefits us all. That way, when times are good and the risk takers are rolling in the dough, so are we... and when times are tough and the risk takers come groveling for a bailout, there won't have to be a discussion about Wall Street vs. Main Street, because we will have the money on hand and know that by helping the risk takers out today, we will be getting all that money back from them tomorrow.

Monday, September 22, 2008

Pushing Algebra

Today I was going to write about market stabilization, moral hazard, and top bracket taxation... or maybe I was finally going to say something about Sarah Palin... or maybe just a quick post about Nginx to follow up on my much maligned posting from some months ago. But all of that is going to have to take a back seat because today's Washington Post has brought to my attention a new crises in American schools... the rush to teach algebra.

First, a bit about my experience with math. I was privately schooled through seventh grade, where I excelled in math... and a good thing to, because I was awful at spelling at the time... for that matter, I still am awful at spelling. When I transfered to public school in 8th grade I was placed in a remedial math class, which is to say it was behind what was traditionally taught to 8th graders and even more behind what was taught in the advanced 8th grade math class. After a few weeks of acing every test and answering every question in class, I was given an aptitude test where I did well enough to advance not just to the traditional class, not just to the advanced 8th grade class, but all the way to the advanced 9th grade class... the highest level of math offered at my junior high. (I often wonder why this test was not administered before school even started...)

I chose to go into the advance 8th grade class (quit frankly, I was having enough social integration issues as it was, the last thing I needed to do was take a math class with a bunch of folks a grade above me). This began my journey through public school math. As I said, I was good at math, and got either As or high Bs in Algebra I and Geometry (which I eventually became a 9th grader). I also did quite well in Algebra II / Trigonometry in 10th grade. But by 11th grade the ranks of advanced math were getting pretty thin. We still had enough students to support two full classes of advanced math, but that was down from four full classes at the junior high level. 11th grade advanced math, known as Pre-Calculus, changed everything. This class was extraordinarily challenging. In the one class I can truthfully say I always did my homework and always studied for tests, I also received the only C in my entire high school career. The number of people competing for valedictorian dropped to one, and the eventual saluditorian would only be eligible because she was not even at Woodinville High School in 11th grade to have her GPA washed up against the rocks like the rest of us. In 12th grade I excelled once again, getting straight As through Calculus and doing very well on the practice AP tests (though I never actually took them).

The point of retelling this story is that I was good at math, one of the best in my class of 400 or so students, and yet even I struggled through the Algebra to Calculus track that one begins by taking Algebra in 8th grade. Students who took Algebra in 9th grade, which was the norm at my school, had a much easier time and a more gradual progression into advanced mathematics. So I'm left wondering why, in God's name, are we pushing algebra on every 8th grade student? Is this some new arbitrary standard we have decided to push because it sounds catchy? Has anyone figured out what we are going to do with all of these students when they get to Calculus, having left a trail of Cs behind them? I'm all for having a system that pushes students to excel, but math is a foundation based learning experience, and advanced math in junior high and high school requires
mastery of advanced math in elementary, not happy wishes and talk of the "new civil right."

Seriously folks, America has always resisted tracks as anathema to our egalitarian sense of education, and I generally agree. But the response shouldn't be an arbitrary decision that this particular level of math is right for everyone just because it makes for good headlines.

Wednesday, September 17, 2008

"Just listen to the music of the traffic in the city"

This week marks an new chapter in my employment with Articulated Man. As of Monday I have my own office situated in downtown Santa Cruz. The office is actually part of a larger office space housing the venerable Stone Soup literary magazine. It's amazing how many people I've mentioned this to know who/what Stone Soup is. But truth is the office culture doesn't provide much opportunity for me to interact with them, so it's really just me.

The space is roughly that of a Haggett Hall double room, sans beds and hexagonal shape, so it's not exactly spacious. But, there is more than enough room for a desk, some shelves, and most importantly, my still relatively new bike that I'm always worried will be stolen when I lock it up on a bike rack. I think all those years on the UW campus have put the fear of bike theft into me. On the plus side, it has windows overlooking one of the major streets in town and on Wednesdays it looks right over the Farmer's Market.

I made the move for several reasons. First, Sarah is back from Holland and will be spending more time around the apartment when she is not at school. While I love her dearly, two people shouldn't occupy such a small space 24 hours a day... a little separation does, in fact, make the heart fonder. More importantly, I feel like I've been drifting at work recently. Not that what I've been doing is uninteresting, but that I haven't been really focusing the way I feel I could be, or the company deserves from me. The hope is having an office will provide a dedicated place to concentrate and dig into what I've got to do.

Making the switch isn't going to be easy. Before the relocation, my morning consisted of getting out of bed at 8:55am, stopping in the kitchen for a bowl of cereal, and then the arduous 30 second commute to my desk in the living room to be "at work" by 9. Now things are a bit different. I'm up before 8am to check email and make sure there are no emergencies. Then from 9am to 10am I'm exercising, showering, and biking to my new office. Then I'm at the office until 5pm or when I get done with what needs to be done. It's quite a bit more regimented, which was sort of the point.

Currently I'm working off my laptop, which I bought three years ago as a note taking device for law school, not as a web development platform. So far it has not been up to the challenge. The hope is some added RAM will fix things, but expectations are not high and I'm mentally preparing to relocate my desktop over there until I have a better solution. I did get a fancy new monitor and keyboard, so that's exciting.

For those who made it all the way to the bottom of the post, I have a little treat for you. Starting this week I'm going to be doing a little more political blogging than I have been, probably going through until the elections. Handful of topics have arisen that I feel the need to talk about, and since Sarah hears from me every day, I guess it's time I blab to you all.

Tuesday, September 02, 2008

Chrome: Speculation

If you are a geek and you haven't heard about Chrome, then you've been living under a rock since Monday when it was first leaked. If you aren't a geek, your failure to notice the news is acceptable, understandable, forgivable. But now it's on my blog, and you have no excuse, so get wise.

There are more than a handful of interesting things to say about Chrome, and none of them require me to even have tried Chrome, since it's not yet available for Linux uses... here are each of those interesting things in no particular order.

1) The Comic Book

Google used an unorthodox approach to explaining the technology driving their fancy new browser. Instead of your standard, boring white paper, Google released a freaking comic book! It's still a point-by-point review of the problems of current day browsers and Google's proposed solutions, but it goes a step further with use of clever pictures to describe complex technical problems. It reminds me of an excellent video on Trusted Computing circulated years back (worth a watch if you haven't seen it before). Now, let's not fool ourselves, the Chrome comic book is not for the faint hearted... processes versus threads, memory footprint, hidden class transitions, incremental garbage collection... this isn't kids stuff and certainly not for public consumption. Were it excels is communicated complex ideas to folks with a shared vocabulary but without shared expertise. I don't develop browsers, and probably never will, but I still understood the message. A contributor to Debian Planet quipped, "I think it would be good if we had a set of comics that explained all the aspects of how computers work," and I couldn't agree more. I suppose that's one advantage of having serious cash to throw around.

2) Open Source as Market Motivator

It's my belief that Google has zero interest competing with the likes of Firefox and Internet Explorer, giants that they are... or even the lesser three: Safari, Opera, and Konqueror (being the origins of WebKit... KDE for the win!). Chrome will never be as big as those browsers and Google doesn't care. Google's purpose, stated in various press releases, developers conference, and in the freakin' comic itself, is to improve the ecosystem in which they operate: the web. Google wants more content online, and more users searching for that content, in order to feed the growing advertising business on which Google's billions are based. Chrome isn't about challenging FF or IE for market share, it is about challenging FF and IE to be better.

To accomplish these goals they have open-sourced the browser and all of its fancy doodads. Some clever things here. First, they used WebKit as their rendering engine, and as I mentioned, I love WebKit because it is based on KHTML, which was one of the first good open-source HTML renders and is still in use by Konqueror. What's unique about WebKit is that neither FF (which uses Gecko) or IE (which uses something I will refer to simply as the suck) use it. So, here you've got an entire implementation of a radical new way of building a web browser, with all sorts of cool features just begging for adoption and neither of the big players have a leg up... both will have to tear out parts and re-implement based around their rendering system. And re-implement they shall! If Chrome can deliver on all of Google's lofty promises, then users are going to gravitate to whichever browser can best deliver the same results.

3) Process vs. Threads

This is the big thing that Chrome is supposed to offer. Modern day browsers utilize tabs to allow users to visit many pages at once, which is handy... but in order to visit multiple pages like that, the browser has to be able to do many things at once. Until now, that was down with threads.

To help visualize a thread, imagine you have a fourteen year old kid and you tell him to deliver newspapers along a street. Off he goes and does his thing and he does it very well. Then, the next day, you tell the kid while he's delivering the papers you'd also like him to compose an opera. So, he goes and delivers a few papers, and then stops and jots down a few notes, maybe a harmony or two, then back to paper delivery. He gets it done, but all that bouncing from one to another causes him to do it a bit slower. The next day you ask him to do all those things he was already doing and do your taxes (does anyone else get a cat on the second result?!). This time, when he switches over to doing your taxes, his poor little fourteen year old brain can't handle it and the whole operation goes to hell... no papers get delivered, no opera is composed, and certainly not tax returns. That's threading... one "person" switching between various jobs.

Now, with processes, it's like you have THREE fourteen year old boys to do your bidding... one goes off to deliver the papers, one composes the opera, and the final does your taxes. Even if the third kid can't deliver, his epic failure doesn't impact the performance of the other two. You may still get audited, but at least you'll know the papers are delivered and opera lovers can rave about the latest wunderkind.

IE and FF use threads (though, rumor on the street is that IE8 beta is process based)... so if one thread goes wonky, you probably lose the entire browser. Chrome is different, it uses separate processes for each tab, that way if one has a problem, the others aren't impacted. If, at this point, you are saying "big deal, how often does my browser crash?" you are right where I am. I use my browser for everything all day... 10 - 15 tabs at once is standard operating procedure for me. Maybe I'm not visiting the nefarious parts of the internets. But here's what is cool about their concept. It's not one process per HTTP request or page fetch, it's one process per tab/domain. Which means that so long are you are browsing around, you operate within a single process, sharing memory for various javascript fun within that domain. But once you leave to visit, say,, the old process is killed and a new one, with fresh uncluttered memory, is spawned. Which, if you don't know much about the AJAX security model, is really a clever approach. AJAX is sandboxed by design, meaning AJAX scripts running on a page at can ONLY talk with servers... it cannot make a request off to or whatever... it's all isolated. So now, when you go to and sit there for HOURS, with its memory consuming javascript, it is all washed away the moment you move to a new domain. Now that, my friends, is good news.

Of course, it comes with a cost... those processes each need their own memory, and while it may be virtual memory at first, once they start doing a lot of writing, and you get all those page faults, it's gonna be real memory... and then we'll see what happens on less-than-modern computers that don't have 2 GBs of memory to throw around just to read their daily web comics.

4) Javascript: V8

I like javascript and have no patience for its detractors. If you haven't used the likes of prototype or jquery, you have no concept of what javascript is capable of or how it can be extended to do whatever you might possibly want to do. Having said that, Javascript can be slow... painfully slow... on underpowered computers (like my laptop, now three years old). You can hear it chugging away on some javascript code. It's my observation, however, that it's not the javascript engine at fault, it's the javascript itself... folks relying too much on their framework and object oriented design and not enough on smart coding.

For example, I recently retooled a javascript library that reordered a sequence of pulldown menus (known as select elements in HTML lingo). The previous version of the library iterated through the list of selects SO many times, it wasn't even funny (and I find most HTML/javascript base conversations to be hilarious!). So, although I had to sacrifice a bit of encapsulation to do it, I was able to rewrite the library to be significantly faster... and my CPU thanked me for the effort. So, what does this have to do with Chrome?

Well, Chrome has a new javascript engine, V8, which is supposed to be a lot faster for various reasons. I guess that's great... but, at least for the vast majority of javascript code out there, the real problem isn't the engine, it's the code. Google has an answer for that too, but the day I choose to learn Java is the day I choose to dust off the law degree.

5) Gears Out-of-the-Box

When I first learned about Gears, I wasn't excited. Then I went to Google I/O and I got a little excited so I tried it out... Firebug threw so many errors, and everything ran so slow, that I lost all my excitement the threw it out. I will say that the idea of a more robust javascript interface to the filesystem and to other hardware resources is a great idea... as is a persistent data storage system beyond cookies. But Google's got an uphill battle here. Until the majority of users have Gears installed, or a browser with Gears like features, no web developer is going to utilize those tools, thus there will be no incentive for users to actually install them. I honestly have no clue how Flash managed to get installed on nearly every browser out there... but I don't see how any plugin that is as invasive as Gears is going to be able to repeat that miracle a second time. So, Gears out of the box?! Yeah, just another browser with propriatary extensions that are tempting, but should not be used.

6) User Interface

I haven't seen it yet, so I don't know... one friend says it's really hard to get used to. I reserve the right to be obstinate.

In Conclusion

Hell if I know... Google is a complete mystery. But, by and large, they haven't steered me wrong, even if some believe what they are doing is more like sharecroping than software development. I'll be the first to try Chrome soon as they release that Linux version... and while Google's at it, maybe a Linux Picasa client?

Saturday, July 19, 2008

Netroots Nation 2008: The Good Side

I'm still drafting a post about the Bad Side of Netroots Nation--and trust me, there's lots to say--but I wanted to post about a very positive experience I just had, and it's name is Lawrence Lessig. Regular readers already know about my love affair with Prof. Lessig, and I told my company (who paid to send me here) that I was attending for the sole purpose of declaring my undying love to the professor. I just left his keynote speech and it was so good that I plumb forgot to prostrate myself before the entire liberal blogger community. But that's okay, because his speech was just damn good. I'm hoping he will post the slides and audio, but (a) he probably won't for months and, (b) you probably won't take the time to watch it. But that's okay, because I'm going to summarize his point, which is both simple and powerful.

He argues that the recent 9% job performance rating for Congress is a product of trust, or a lack thereof. Which stands in contrast to the claim that the rating is a product of policy outcomes. If you had asked me yesterday why Congress rating is so low, I would have pointed to their failure to end the Iraq War. But that answer never really seemed to be complete to me. Every vote has winners and losers, and there is no way that Congress is voting such that 91% of the entire country is losing. There's something more fundamental than policy outcome going on here, and whatever it is, it crosses the the isle to include an ultra-super-majority of the American population. Trust, it seems to me, fills in the gap. I buy the idea that 91% of the American people simply don't trust the product coming out of Congress, regardless of which side they fall on a particular issue.

Which isn't to say that Congress deserved our trust back when the rating was higher... more likely, we simply didn't have the needed information to "build" our lack of trust. But with the advent of blogging and increased political access of all stripes, it's becoming all too painfully obvious.

What I found most compelling about Lessig's presentation about trust was not that members of Congress are undeserving of our trust. In fact, he went so far as to say that this decade's Congress is far more deserving of our trust than any Congress before... not that this Congress is good, but that the past was so bad. What he pointed out is that there is culture in Washington, an accepted culture, whose byproduct is untrustworthiness. As an example he pointed to the bankruptcy bill, which in the late 90s First Lady Hillary Clinton opposed... but then in 2004 Senator Hillary Clinton supported. Clinton received significant donations from credit card companies during that time, leading to the claim that her vote was bought. She says the money isn't responsible for her changed position, and as Lessig said, "I believe her." The problem, he says, is that it creates the appearance of being bought and lessens trustworthiness. Hence the 9%.

He went on to pitch a new organization,, which has become his new passion, having put his free-culture crusade on hold. Which is not to say the free-culture fight isn't important, or that so many other issues aren't important. In fact, he's willing to say all these other issues are more important than the issue of trustworthiness. What makes trustworthiness worth his time, and I agree everyone's time, is not that it's the most important problem, but that it's the first problem. It is a pipeline problem that must be overcome before anything else can be really solved.

So, to Prof. Lessig, I was originally very disappointed when I heard you were leaving the free-culture fight, but now that I've heard your argument and see your direction, I applaud your decision, and I'm excited to start working on this, the first problem.

Tuesday, July 01, 2008

Don't be Fooled by

I got an email today from Network Solutions declaring "Is the .COM Domain You Want Taken? Get the .US.COM & Save" and thought to myself, "wow, they are finally starting to advertise the .us TLD!" Here in the States we sort of take the .com and .org top level domains for granted. But in much of the rest of the world websites use their country code TLD... so, in the United Kingdom you will see lots of .uk domains. Personally, I prefer this, as it helps identify the site's situs (to use a legal term)... don't believe the hype of pure virtual existence, websites have tangible form in the physical world.

Trouble with this advertisement from Network Solutions is that they are not, in fact, advertising a .us TLD... they are advertising subdomains of the domain. Note the .com is at the end, not preceding the .us like with (I just set one of these up yesterday, nothing special about Australia). So, what we've got going here is somebody (presumably Network Solutions or a subsidiary) spent the $20 necessary to register process that is no different than when I registered is now going to sell subdomains of their domain for $20 per year and are passing it off as a ".COM Alternative!"

Now, I can't speak for anyone else, but the idea of giving $20 to some dude who happened to buy the domain when I could just as easily purchase a .us domain for the same price through a legitimate registrar, seems awfully silly. To further bolster my claim, have a look at the actual site... looks like a google link farm to me. Having said that, if anyone wants to purchase subdomains for, I'm offering them at the competitive price of only $15/y!

Friday, June 27, 2008

Political Roundup

Lots of stuff in the news recently that I wanted to offer my two cents on in the interest of totally destroying my political credibility when I seek political office in 20 years.

2nd Amendment Ruling in District of Columbia v. Heller

I will come right out and say it that the Court got this right. The traditional theory to explain gun control in light of the 2nd Amendment is that the right is a collective right given form through state militias (or what we might call today, the State Guard). I've been searching for words to help describe why I feel this just didn't cut it for me, because it runs counter to the usual liberal song and dance that, in general, I subscribe to. Thankfully, I found those words today in an OpEd by Eugene Robinson.
I've never been able to understand why the Founders would stick a collective right into the middle of the greatest charter of individual rights and freedoms ever written -- and give it such pride of place -- the No. 2 position, right behind such bedrock freedoms as speech and religion.
Makes you think... what if the 4th Amendment (restrictions against unlawful search and seizure) had been interpreted as a collective right... or Freedom of Speech? I may not agree with the 2nd Amendment, but it's on the books and it deserves the same constitutional force as all the other amendments.

Obama Campaign Pledges

There are three at issue... a commitment to stay in the Public Campaign Finance program, a commitment to engage in a different kind of politics vis-a-vis the general election, and a commitment to filibuster any FISA amendments that included retroactive immunity for telcoms. I give a thumbs up to getting out of public financing. Obama is raising tons of money across the spectrum of donors and he should continue to do so. The Republicans have fought dirty in the past and I see no reason to believe 2008 will be any different. I give a thumbs down to the Obama campaign's refusal to engage in Town Hall meetings with John McCain. I don't care if they are McCain's best format... they are formats where you have actual discussion and are tons better than traditional debates found in previous Presidential elections. And as for FISA... well, I suppose that's politics and everyone can changes their mind sometimes, which brings us to...

Telecommunications Immunity in FISA

I've thought long and hard about this since it became apparent that immunity for the telecommunication company's involvement in the Bush Administration surveillance program was all but a sure thing. For a long time, I was really upset. I even watched most of Sen. Dodd's floor speech where he railed against the decent from the Rule of Law into the Rule of Man. In theory, I agree... but in politics, I think theory must give way to the practical.

So I asked myself to try a little thought experiment... what would I do if I was an executive of a major telecommunications company? Lets assume I'm your standard executive whose primary concern is the financial well-being of my company, it's shortly after September 11th and representatives of the President of the United States shows up in my office saying "for the good of the country, we need your help." I, of course, ask the question any good executive worried about the financial well-being of my company would ask, "what are the legal implications?" to which the representatives say, "the President has authorized this under his Article II powers to defend the country as Commander & Chief." What, realistically, is the chance that my follow up is going to be, "you know, I think we should go to Congress and get explicit approval" or "how about we draft up a brief and ask the Courts to weigh in?" No, I think the most realistic response is going to be, "if you provide my company with a legal document from the President authorizing this activity, then we will provide assistance." To do otherwise is to tempt the wrath of the President and the ire of the American people just after the largest terrorist attack in the country's history.

Now, of course, I don't agree with the President or his advisers. The program itself goes too far and the President lacks the authority to authorize the violation of the law. But there are specifically delineated tools at the disposal of the Congress and the American people to restrain, and if necessary remove, the President for such violations of the law. The telcoms, in my view, are less-than-innocent bystanders in this case. Did they break the law? Probably, yes. Did they do so under what amounts to duress under Presidential order? Seems like, yes. Is the one who we should be going after sitting in the Oval Office? Absolutely, yes. Which is why the immunity provision in the FISA amendments is actually a sort of poetic justice. Every time one of the telcoms gets a suit against them dropped, they must produce documented proof, in open court, that the President specifically authorized the activity in question... every time the public will hear, the President told us to break the law. Whether or not that leads to any legal ramifications for the suits against the government, I'm unsure. But I think in the political/historical context, it will mean a lot to have the world hear, over and over again, that the Rule of Law was put aside because the President said so.

So now we will turn to the proper tools, whether that is individual suits against the government or political actions by the Congress, is up to those who wield those tools. But I think these sorts of approaches go after the true villains of the piece and are preferred over attacking the middlemen.

Tuesday, June 24, 2008

Getting Back Up...

The server is starting to come back from the dead. I took down the slice following my recent hack and awaited instructions from my hosting provider. Sadly, this experience made them reconsider entering this business and they have terminated the beta slice program that in which I was a part. They pointed me towards slicehost, which is a competitor with Linode, which we use at work. Anyway, I thought it would be a good opportunity to try something new, so I signed up for a slice and got the ball rolling on a new server.

Remember kids, security first...
niles@zion:~/exploit$ ./exploit
Linux vmsplice Local Root Exploit
By qaaz
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x2b7638001000 .. 0x2b7638033000
[-] vmsplice: Bad address
Now I just need to restore my Subversion and Apache servers and I'll be rocking and rolling once again!

Wednesday, June 18, 2008


Today I received a very unhappy email from a fellow saying my webserver had launched an attack against his FTP server and that I needed to stop it or he would contact the Federal Authorities. I was unbelieving at first, to be perfectly honest, and asked him to produce logs verifying the attack. But then I went and checked my server and discovered it was running a script named ftp_scanner, which seemed to be attempting brute force attacks against random FTP servers. ack.

I quickly killed all the ftp_scanner processes, found the offending script on the server (cleverly hidden in /tmp/.../ so as to be both hidden from a standard 'ls' and appear like a system file when running 'ls -a'). The immediate problem addressed, I tried to figure out how this could have happened. To my horror, I discovered that Thursday of last week someone had run a brute force attack against my SSH server and happened upon one of my users whose password was the same as her username. double ack!

A little back story is useful here... on Friday my server went down in a sort of funky way. I could still ping it, but http and ssh access were denied. It took all weekend working with my provider to get it re-enabled. They said it was because CPU usage had spiked, and since it's a virtualized server, my slice was shutoff to prevent damage to the larger system. I should have investigated then, but I just figured the detection systems were borked and thought nothing of it. Bad idea.

Two days later, the intrepid attackers struck again... and I would never have known if not for the email from the poor guy whose server my server was attacking. But that's not the worst of it. While cleaning things up, I noticed an SSH login to the 'news' account, which is a system user account that you cannot usually log into. It was then that I discovered the /etc/shadow password file had been compromised to enable a variety of logins that should not have been. This, unfortunately, was the worse possible news. If the attackers could change /etc/shadow, it meant they had manged to obtain root level access to my server. ack, ack, ack.

I went back to the /tmp/.../ folder to poke around the contents. It was then that I discovered the Linux vmsplice Local Root Exploit. And indeed, running the tests described my system was vulnerable, and the entire slice had been compromised. Since I don't run tripwire, or anything like that, I was pretty much screwed. oh, ack...

All user data is now backed up onto my local desktop and the slice is scheduled to be cleared. Once the kernel is secured I will have to start building the system from the ground up all over again.

Oh, and if "Not Rick" is out there, I'm sorry to have caused you any trouble... but contacting me via means that prevent me from replying makes it difficult to apologize or explain the situation.

Sunday, June 15, 2008

On Citzenship, the 14th Amendment, and Political Discourse

Unless you live in a some sort of political cave, by now you know the United States Supreme Court ruled that the denial of Habeas Corpus to detainees held in Guantanamo Bay by the Military Commissions Act of 2006 is unconstitutional. It was a 5-4 split decision with the dissenters saying some very nasty things that makes one think they were not talking to the legal world at large, but rather trading in fear mongering so often employed by those convinced of the "Islamofascist" threat. However, it is not my intent to quibble with either side of the decision... I think it's pretty clear I support the majority's approach here. No, my problem is with the political discourse that has emerged since the decisions announcement.

Republicans in Congress, in particular Senators who have enough personal clout to actually matter, have declared they will do whatever it takes to undo this "harmful" decision. John McCain and Lindsay Graham have both spoken of legislative efforts to narrow the scope of the decision. This, in of itself, is fine. In fact, it's what is supposed to happen. The political branches make a law, the Court review the law with facts, rules whether it passes Constitutional muster, and if it doesn't, the political branches go and give it another try. The problem is when these Senators craft their words as combative... that they will fight for the little guy to see justice done in the face of an evil, overbearing Supreme Court. It makes it sound as if the Senators are white knights out to rectify deep wrongs inflicted upon the helpless, regardless of the consequences. Passing over the obvious fact that it is the Courts, not the Congress, that is trying to grant some small level of humanity to the helpless, this sort of dialog only serves to tarnish the view of the Court in the public eye. The long term consequences of that tarnishing is no worse that the presidential reputation destroying effects of the last eight years of the Bush Administration. The Courts are our courts, and when we tear them down, we do ourselves no service.

This, however, is just a minor quibble... my real objection is to the language used to vilify not the Court itself, but the decision they rendered. Here is a typical example from John McCain, "[the detainees] are not citizens, they do not have the rights of citizens." This is a true statement. The detainees are not citizens, and ergo do not have the rights of citizenship. So what?

Implicit in Sen. McCain's language is that the rights granted by the Constitution are to be enjoyed by citizens, and citizens alone. Three interesting observations emerge from the language.

First, a simple word frequency analysis (a common tool of political scientist) of the United States Constitution reveals that the drafters and subsequent amenders were not very interested in the concept of citizenship beyond the right to vote. The term appears in the Constitution (including amendments) a grand total of of nine times. Five instances are in relation to the federal and state privileges and immunities clauses (more on that in a moment) and the other four times relate to voting rights or apportionment of representatives.

Second, the Constitution is not a positive rights document. Meaning the rights are not granted to citizens... the First Amendment does not say "you have the right to say whatever", it says (paraphrasing) "the government does not have the right to stop you from saying whatever." Our Constitution is a negative rights document, by which power is taken away from the government, not granted to the people. You can read through nearly every clause and you'll find they are all phrased as "the government can or cannot do X". So going back to the first point, when we talk about "privileges and immunities", there really aren't any constitutional privileges or immunities beyond the right to vote, most are defined by statute.

So, let's take a look at the language of the Constitution that relates to Habeas Corpus:
The privilege of the Writ of Habeas Corpus shall not be suspended, unless when in Cases of Rebellion or Invasion the public Safety may require it.
And here we find yet another negative right... "shall not be suspended." The clause is found in Section 8 of Article I, which is a big list of the things Congress is forbidden from doing. In other words, Congress may not suspend Habeas Corpus, except under specific circumstances (which the court, in other cases stemming from the Civil War, has made clear cannot be a case-by-case basis... either the writ is entirely suspended for everyone, or it is not). Note there is no mention of citizenship, simply that the Congress may not suspend. I admit I'm glossing over some interesting bits of Federal Con Law here... like could the Congress abolish the writ altogether forever? Many suggest that the Congress could do that, but that's different from denying the writ to just a subset of the population.

Finally, conservatives have been increasingly pushing this notion of citizenship. It is part of the dialog surrounding immigration rights and so called "illegals." The concept of citizenship infers a right to be here, and all others walk a fine line... heaven help you if you upset us, or we will deport you in a flash. The next step in that project seems to be to redefine the what it means to be a citizen. As I already demonstrated, the Constitution is primarily concerned with the right to vote... but now we see state legislation stripping illegal immigrants of their right to access social benefits, deny access to state colleges, even attempts to discriminate against their children. Some have gone so far as to propose altering the Constitution such that being born in the United States is not enough to establish citizenship.

So far these efforts are targeted at those who come to the States illegally... but it seems only a matter of time before the citizenship discourse gets to the point where we turn a suspicious eye to the legal immigrants who are not citizens. What then? Will John McCain declare that the First Amendment only applies to citizens?

Tuesday, June 10, 2008

Pillars of LegSim: Naming

This is a technology posting, but I'm asking a question to my political science readers, so I'm going to keep it simple. Future "Pillars of LegSim" postings will be more technical.

I am presently in the think of redeveloping LegSim, but in a way I would never have contemplated even six months ago. The current version of LegSim (v4.1) is what's known as a CGI application, which means each and every time you ask LegSim to do something, it loads the whole program, executes, and then unloads. Sort of like if you had fire up your email client every time you wanted to send a single email. This is silly and making it better is, as David would say, "a solved problem." And indeed, there are all manner of pre-existing web development frameworks that could be made to do what I want to do (Ruby On Rails, CakePHP, Zope... just to one from each of the big languages). Thing is, I like Perl... and at the risk of sounding like a language snob (not the Sarah kind of language snob mind you), I would like to stick with Perl, the original Perl language.

Of course, there are frameworks in Perl... like Catalyst, which actually got it start at the University of Washington back when I was an undergraduate. But, bottom line, I don't want to have to learn someone else system and I don't want to have to fight when it tries to tell me how things ought to be done. I would just use Rails if I wanted that experience. So, I'm writing my own. Which is exciting, I've enjoyed it so far. Done right, I can use the framework not just for LegSim, but for other projects I might want to take on. But I'm getting ahead of myself...

Faithful readers, I turn to you to ask a simple question... what should I call this thing? My first thought was to name it after the first Speaker of the House of Representatives... but that turned out to be Frederick Muhlenber, and I'm not naming my framework after no Muhlenber. We are working on a CMS system built on top of Rails at work, which is codenamed Pericles (a name my boss will likely change). I like Pericles, having come up with it myself, but I'm not sure if I want to reuse the name.

The current leader in this contest is Astraea, the daughter of Zeus and Themis who would eventually ascend into the heavens and become Virgo. She's also the Goddess of Justice, with the scales and stuff. While I like the sound, I'm not thrilled with the mythos. I'm looking for something more "governmenty" than justice (hence my initial interest in Pericles). Anyone have suggestions... needs to be a cool sounding word, cannot be in common use (to avoid confusion), and has some sort of tie in with government.

Drop me a line via email or a comment if you have any good ideas.

p.s. If anyone recommends Perl on Rails, I will ban you forever.

Updated - 6/11/2008

A friend wrote to suggest Solon, one of the fathers of Athenian democracy. The wikipedia page makes him sound like a pretty cool guy. But while reviewing the background I learned Solon eventually became an Archon of Athens, which was a sort of executive position within the Greek governmental system, both during it's tyrannical and democratic days. But here's the really cool part... the years in which no Archon was appointed where known as anarchy, meaning, literally, "no Archon." How cool is that?!

So, bonus points for Solon, but at the moment, the top choice is Archon.

Monday, June 02, 2008

Google vs. Privately Owned Community

This isn't really a story about Google, but I was tipped off by a tech-legal blogger about the story because of Google's involvement with the St. Paul suburb of North Oaks, Minnesota. The basic story boils down to (1) North Oaks residents actually own the roads in their town and have a trespassing ordinance, (2) Google violated that ordinance when it took photos of the town for its Street View program, (3) North Oaks city council requested the photos of the entire city be removed, (4) Google complied.

From a Public Relations standpoint, I have no argument with Google's decision... however, I do think there is a dangerous first amendment precedent waiting in the wings here. In Marsh v. Alabama the U.S. Supreme Court ruled that First Amendment activity was still protected in the town of Chickasaw, Alabama even though every square inch of the town was private property owned by the Gulf Shipbuilding Corporation. The company had baned religious leafleting and the Court said the company was the State in that situation and thus must abide by the First Amendment.

I think the situation in Chickasaw, Alabama is analogues to North Oaks, Minnesota... except, instead of a for-profit company owning the streets, individuals bound by their deeds through the North Oaks Home Owners Association own the streets. But the situation is otherwise the same in that a private entity is attempting to get around the State Action doctrine by abolishing the State. But in so doing, they create a new State in all but name, and thus under Marsh must allow First Amendment activities. There remains the question of whether taking photos from streets is a First Amendment activity, a question I am not immediately familiar with, although I believe it is protected.

Either way, I imagine Google complied for the same reason it complies with requests from private citizens... it doesn't have to under the law, but it does out of respect for privacy. My question now is what happens if a "citizen" of North Oaks, Minnesota writes to Google saying they wish to opt back into Street View?

Sunday, June 01, 2008

Why is this so upsetting?

Regular users of Google properties will have noticed that the Google favicon has changed. Here's a side-by-side comparison from
Side By Side comparison of Google Favions
The old icon reflected Google culture as I saw it, colorful, yet professional. This new logo drops the color scheme and switches to a lowercase "g". It's the sort of favicon I would expect on a kids-oriented site. If their goal here is to appear as an "underdog"--as suggested by the article--then they are seriously misreading their audience.

Maybe this will grow on me, but it had better start growing soon, 'cause at the moment it is nothing more than an eyesore on my bookmark toolbar.

Saturday, May 31, 2008

Putting Ruby into Words

Since I've started learning about Ruby and reading some of the community blogs and books, I have this sense. I am the first to admit that it's a poorly defined sense, but somewhere deep inside of me, something was wrong with the community. Thankfully, there are Debian Developers out there with the same feelings who have a better way with words. To lazy to read the link? No problem, here's the critical bit:
What's troubled me for some time about the post-Rails Ruby community is that it has a distinct bent away from its Free Software roots. I understand Matz actually used to use (not sure about today) Debian Unstable, and Ruby traditionally displayed its roots quite strongly, with a Perl heritage and a community consisting largely of hardcore *NIX people. With the advent of Rails, the move has been towards things like TextMate and OSX. Software like Gems (no relation to Gemstone) fits in fine with one of these systems, but not so well with modern Free Software systems, and I think it's symptomatic of the change. Given this propensity in the Ruby community, and given the numbers Gemstone is posting, I'd be surprised if lots of Rubyists don't move that way as soon as it's available.
I couldn't agree more! When I first learned the preferred editor for Rails development is an OS X only commercial app, I was literally speechless.

There are other examples of this divergence from the Free Software world. For example, Rails recent decision to abandon Trac, a reliable ticketing system used by a whole set of large FOSS projects. Rails now uses Lighthouse, itself a Rails application, that is decidedly closed source. If this sort of behavior continues, I think you'll see a spike in useful stuff coming out of commercial shops followed by a slow decline as the ecosystem that comprises free Ruby code begins to shrink and eventually die off. At which point you've got a free language whose community and ecosystem is more about commercial interests than free software.

Tuesday, May 27, 2008

Voters' Intent Vindicated

Time for a political posting, boys and girls... I actually have a second political post in the works, but I'm still waiting for all the facts to trickle in on that one.

Today I was excited to read in the Seattle Times that Washington State's top-two primary system is going to produce as many as a dozen single-party races in the general election. Huzzah! This is great news for many districts who would generally face a very boring general election. First, here's a little history.
  • Washington used to be the home of the Blanket Primary where voters could vote for whichever candidate they wanted in each race regardless of party alignment... so, they could vote in the Democratic Primary for governor, while voting in the Republican Primary for their local legislative races. Everyone was happy.
  • In the late 90s (I think), California adopts a similar system, which is then challenged in court by the state parties. The suit goes all the way to the U.S. Supreme Court which ruled the Blanket Primary is a violation of the 1st Amendment Right of association... in this case, the Party's right of association.
  • Washington State parties, realizing an opportunity to gain more control over their own nomination process, launch a similar lawsuit, which inevitably leads to the invalidation of Washington's long practiced Blanked Primary.
  • In 2004 Washington State voters adopt I-872, an initiative that institutes a "top-two" primary, where the top two vote getters in an essentially non-partisan primary advance to the general election... meaning in liberal Seattle, two Democrats could appear on the general election ballot, and in conservative Eastern Washington, two Republicans could appear on the general election ballot.
  • Washington State parties again sue, and win, in Federal District and the 9th Circuit Court of Appeals, blocking the rules from going into effect.
  • The U.S. Supreme Court overturns the lower court's ruling, reinstating the top-two system... this is something I had totally missed, as I guess I'm not as plugged into the Washington State political machine as I once was.
  • Now, in 2008, Washington State will have it's first top-two primary vote!
So why am I, an avowed Democrat, excited about the prospects of a top-two primary system?! First, lets address the sole remaining challenge to the top-two system, that voters have a right to vote for their chosen party in the general election. I don't see how anyone has the right to vote for someone specific... I didn't have the right to vote for Bill Clinton for President in 2000, nor did I have the right to vote for Barack Obama in 2004. I get to vote for who appears on the ballot as determined by fair and open rules. Anyone can run in the primary and try to get on the final ballot, so I don't see that as a valid criticism.

On the positive side, for the first time in a very long time, there will be actual general election challenges in what would otherwise be considered "safe" seats. Take, for example, Frank Chopp of the 43rd District (my old district). He's a good man, and Speaker of the House, and I was always happy to vote for him. But if he were to go off the deep end, there would be nothing I could do about it, because as the Speaker of the House he would dominate any primary challenge by local Democrats attempting to replace him. But, with a top-two system, come the general election a centrist democrat challenger has a legitimate chance against an entrenched force because conservatives, who would normally rally around a doomed Republican challenger, now have the opportunity to vote for the centrist Democrat in the general election. If a majority of the voters back Chopp, then clearly he didn't go off the deep end after all, but in the previous closed primary system, voters would have the dubious choice between an "off the deep end Democrat" and whatever crazy Republican had decided to mount a quixotic challenge in one of the bluest districts in the State.

Good luck to those candidates who find themselves in a one-party race come the general, I know it won't be easy... but it's for the best when you consider the alternative we see in places like Chicago. Don't get me wrong, parties are good, but not an absolute good.

Monday, May 26, 2008

NGINX... why?!

Anyone who has any relationship with Rails development has, at this point, heard of Nginx. The point of Nginx is to replace the Apache, a the definitive global webserver that Rails devs feel is simply too slow for their lightening fast development framework. It's not the first time the Rails community has snubbed Apache, nor will it the last. Those Rails devs are simply fickle folks.

So, fine, let the Rails devs frolic with their uberfast webserver... what about the rest of us mere mortals? Is Nginx a good route for you? Let me say here and now, the answer to that question is almost always a strong, resilient, and durable no. The reasons for the rejection are many, so let's start with the funny ones first and proceed to the more technical ones.

First, it behaves in inexplicable ways for different browsers. Check out this screen shot of Penny-Arcade loaded in Firefox (on the top) and Konquerer (on the bottom) at the same time.

Click to see full resolution
This happened with multiple reloads (cache disabled)... it always worked with Firefox, always "failed" with Konqueror. Oh, and that "Bad Gateway" message is a something you should get used to if you are thinking about deploying Nginx, because it's an all too common sight (more about that later on).

Second, the primary documentation is in Russian. Yes, Русский. From what I can gather, the primary developers are Russian, which is great... yay global open source development! But, a webserver is a complicated beast, hence the great forests that are clear cut each year to produce the necessary library of books on Apache and MS Information Server. Let me be clear that when I say primary, I do mean to imply there is secondary documentation. This is secondary documentation in the same way that warning labels will list sixteen life threatening things you could do written in English, followed by a single warning in Spanish that translates to "Danger."

Third, nginx does not support .htaccess files. Anyone who spends much time building custom websites knows the power of these magic little files that alters the way Apache treats a particular folder. Securing a folder with basic authentication is two line simple lines and a password file. Nginx takes a different approach, where different means stop bugging us to add .htaccess support. Instead, every directive, for every folder, regardless of it's scope, must go into a master configuration file. You can split the conf file into many smaller files, but they are all loaded when the server starts and given global effect. The common approach here is to split each hosted domain into a conf file... but that only helps keep things organized, because in the end of the day, every conf file has global implications.

Third and a half, nginx requires you to have apache support tools lying around to do stuff. This really isn't worth a whole new point, because everyone already has apache lying around... but lets say you wanted to create a password file for basic authentication. There is no nginx utility to generate those handy hash values, you have to use htpasswd, available from your apache distribution.

Fourth, Nginx doesn't actually do anything beyond serve static HTML and binary assets... which is to say, it doesn't run php or perl or any of the other P's that you might find in the LAMP stack. What it does is take requests and proxies them to other servers that do know how to execute that code. This is great in the Rails world, which long ago decided to have Rails be it's on little server that you submit requests to and get responses back. Even under Apache, the standard approach is to run Rails as a cluster of Mongrel servers that Apache talks to via a proxy connection. In the world of PHP and Perl, this approach is somewhat counter-intuitive. Apache's mod_php loads a php interpreter into Apache, allowing Apache to do all the heavy lifting for you... ditto with mod_perl. Even ruby has a mod_ruby (although, it's still premature). With nginx, everything is it's own standalone server.

So, what if your php project needs to know something about the webserver (like the root folder, or a basic auth username)? Well, you need to know that ahead of time and setup the proxy (which you defined in that global conf file I mentioned in #3) to pass those variables to your application server, otherwise it won't be around for you to use. Better yet, what if the proxy server is down? Nginx will great you with a handy "Bad Gateway" message and no further information. Good luck debugging the underlying server, since it really only knows how to talk in http requests... perhaps you can code your own debugger with LWP.

Finally, I am left with the question why? The ostensible reason is that it's faster and can therefore handle more requests. Even if we accept that as true (*grumble, grumble*), it only accomplishes that speed by passing the buck off to other servers. When you find a non-responsive site it's not because the static assets like images and HTML text are being served slowly... it's because the dynamic content generated by php/perl/python/ruby/whatever and the underly database from which the data is drawn cannot keep up. Nginx suffers that same failing... while requiring just as many resources because you now have to run so many different servers for each of the languages you want to code it.

If you are developing Rails, then by all means, enjoy this flavor of the month until some new exciting technology comes along and all the little Ruby lemmings go marching off in a new direction. For everyone else writing applications that are meant to stand the test of time, stay with Apache, it hasn't let us down yet.