Forward-Looking Statements

I’ve just started The Way to Win by Mark Halperin, the journalist whose early morning rigor allows me to read all the significant political news by 11 AM.

I thought, with the current elections basically over, this is the perfect time to begin looking forward to 2008. Within the first 100 pages, The Way to Win posits that without the approval of the Gang of 500 early on, a candidate will never gain the momentum necessary to win. In what the author refers to as the “Profile Primary” candidates are given sprawling 4000 word biography pieces that while of little interest to voters, are of tremendous interest to reporters and consultants who end up shaping public opinion among the early adopters of political cycles. I digress. Suffice to say, important stuff.

So we’re left with a few simple rules, I’ll submit a few for any readers with political aspirations.

Visit a supermarket in an average-sized Midwestern city. Check the prices of a gallon of milk, a package of diapers, a box of cereal, and a six-pack of beer. Memorize them.

As a side note, for gubernatorial candidates, if you’ve held the job of Education Commissioner, and build your platform around the FCAT, it pays to know a little bit about the test.

Social Networking that Matters

MySpace was popular for all of 30 microseconds before politicians and political strategists thought of using it for political gain. After all, it is part of the job of a good politician to have a giant social network for good constituent relations. In other words, a good candidate for public office knows you, and wants to meet your friends and family (and beg for money, but that’s beside the point)

My point is that MySpace was never designed for this. Most social networking sites were never designed for serious dialog, and MySpace in particular seems to be more of a stealth/viral marketing engine for the 15-35 demographic than anything else.

Well, there is now something designed for the politicians who want to reach a large constituency and the citizens who want to reach policymakers without the intervention of special interest groups. It’s social networking for the group of people known as Opinion Drivers or Influencers. Not sure if you’re an Opinion Driver? If you have a blog with decent readership, you are.

I’ve talked about this before, only now it’s officially open for discussion. Still sounds promising, check it out at

Bike without fear this Sunday!

A new law passed by the state legislature aims to curb the state’s shamefully high cyclist death rate by criminalizing the practice of “buzzing.”

“If a car is going slower than you want to go, you can’t just blow your horn, yell and cuss at them and expect them to move off the road so you can pass,” said George Martin, executive director of the Safe Bicycling Coalition of Palm Beach County. “Why should someone expect that of a bicyclist?”

I couldn’t have said it better myself. Now all that’s required is to have police officers willing to enforce such a law. Who’s up for a ride to celebrate?

Google Adds Transit Planning to Tampa

Either someone at Google or someone at Hartline reads my blog. (maybe both?)

Google announced today that it is expanding the Google Transit program to include Tampa. Hartline helped out Google at no cost except some extra time on the part of their technical staff, and will be promoting the program heavily over the coming months.

Go ahead, try it out for your own commute, or take a look at my commute. Apparently the system doesn’t use express routes so my commute time is shown as 46 minutes. Compare to 16 minutes driving. Ugh. Still very cool work on the part of Google and Hartline!

In the Soup appears to be attracting some large names from all over the political spectrum, as promised.

Their press release today drops a few names: John McCain, Lance Armstrong, Lloyd Hill, Bob Buford, and Mary Shull.

In case you don’t recognize that last one, Mary Shull represents the group that Hotsoup is targeting. Hotsoup calls them Opinion Drivers. They’ve also been called Influencers or Trendsetters. Mary is a stay-at-home mom who is also a political activist with a 1500-person contact list. Recently, candidates and committees have been contacting her regarding using this viral marketing/social networking thing to their advantage.

Mary has become an Opinion Driver. She’s influential, and now her name is part of a national story. Whether Hotsoup can deliver on its promise to connect Opinion Drivers with Policymakers and reopen a democratic dialog remains to be seen, but it’s a pretty cool concept.

Code Kata

It’s difficult to explain how to become a talented programmer.

Sure it helps to know some logic design, some common tricks and structures, and the theory behind what works well and why. Ultimately though, the ability to write elegant code, without making mistakes stems from the ability to write code for a non-production environment until you’ve made all the mistakes you can make.

For people who love coding, this is a non-issue really. We code in our sleep; we dream of data structures and clean algorithms. If you don’t code in your sleep, it can help to get some practice. That’s where Code Kata comes in. Practice KataOne in as many languages as you like, until you find the best and fastest way of solving the problem. Some tricks may reveal themselves that you haven’t yet thought of.

As you progress, try more advanced code and share your techniques. Without these, it could be possible to write only a few hundred lines of code before putting something to use into the real world. Why not use these and make it a few thousand? We can all use some practice now and then!

Thinking ahead.

Should we win the primary election in 31 days, life will get a good deal simpler for a while.

I will find myself forced to face the logistics of finding a reasonably priced apartment inside the beltway, for example.

I’m stuck at the moment between this one, which is rather nice, and this one which vaguely resembles a tenement, but is a brisk jog away from the Capitol.

Fun with the Neighbors

It’s a common enough problem. Broadband Internet access is everywhere. Wireless routers are cheap and commodified, and no one turns on encryption by default. When encryption is turned on, it’s trivially insecure. This naturally means that some piggybacking is inevitable.

It’s long been a solution of mine to divide wireless traffic into a separate untrusted subnet to deal with the security issues, and then take a lazier faire attitude to the whole situation.

Others, apparently, are BOFH vigilantes. I may pick this one up myself.

A Different Kind of Competition

Lest you thought that my 60+ hour weeks were purely altruistic, I thought I’d share a list of the 50 Most Beautiful People on Capitol Hill.

That’s right. If nothing else, working for peanuts in Washington as a congressional aide should at least give me a better dating pool. That is if I have any time at all. I suppose winning the primary should be my first goal anyway.

Okay. When we win, look for me on the 2007 list.

When using COMET, always remember to flush();

Okay, I couldn’t resist. Since I’ve been speaking so often on the wonders of HTTP Streaming in AJAX applications.

I posted recently about a technique to hold open such a connection using hidden IFRAMES and inline javascript tags.

Since a user agent executes javascript as it’s received, regardless of the rendering status of the rest of the page, one can create a server process that spits out inline javascript tags when a certain event happens on the server. The client interprets the javascript as soon as it appears and now you have a server process calling javascript functions! Kind of like the inverse of AJAX.

Combine that with some slick inter-process communication, and AJAX for client->server data, and you have a very low-latency client-server interaction.

Here’s the issue, if you’re using PHP, one must remember that PHP waits until a script is completed before it echos data to the client. Not very helpful in a streaming environment. Therefore, it is necessary to use a flush() call after every instance of echo that you want to be sent to the browser in real-time. You can configure PHP to behave this way all the time, but it’s seriously sub-optimal and should basically be used only for debugging.

So there you have it, client->server with AJAX, server->client with COMET, and server< ->server with traditional UNIX IPC.