flip off, bird, angry

My Email to the FCC

[Cross-posted from my MovableType Blog]

 

Commissioners:

Over past 20+ years I have had the great fortune to make my living building both applications and the “plumbing” on the Internet and what has become the World Wide Web. I have seen first hand how innovation works in this industry. The disruption that takes the entire network by storm one day becomes the de facto standard the next. 

I am deeply concerned about the recent proposed rule changes regarding the neutrality of network providers. Allowing last-mile providers to charge for “premium” access to their subscribers will cause two separate, deleterious effects: It will harm innovation, and it will widen the digital divide in this country.

First, no one can predict where the storms of disruption will form. ISPs are trying to maintain a delicate balance providing the best service to their customers. Disruptions, by definition, wreck that status quo. Allowing the ISPs to pick winners (at best, and giving priority to their own offerings at worst) gives a huge advantage to entrenched incumbents. It would be disastrous to the innovation that has been driving one of the shining stars in our economy of late, and one that has been sorely needed.

This is doubly disastrous for the majority of Americans for whom their ISP is a virtual monopoly. They cannot vote with their feet and move to a provider more willing to allow the disruptive traffic the innovative service requires. They are stuck with whatever their ISP deigns to offer.

Second, allowing ISPs to double-dip and charge both subscribers and content/service providers for the privilege of connecting will exacerbate the digital divide in this country, and will mean that only the relatively wealthy consumers will be able to afford a decent Internet experience. It will also further widen the divide between the US and the rest of the developed world, where we already pay more for much slower connectivity.

You have the power to change all of this. For these reasons and more, I urge you to reclassify broadband internet as a telecommunications service, and keep access equitable for everyone.

Thank you for your time.

Erik Ogan
San Francisco, CA

/cc:
Diane Feinstein
Barbara Boxer
Nancy Pelosi
California, bike, Los Angeles, AIDSride

Golden Gate Social Ride (Special Edition)

[Cross-posted from my MovableType Blog]

[I know it has been a long time since I’ve done one of these, but this one is directed mostly at my wonderful colleagues at Change.org. Others are more than welcome, but I think most of you will find the itinerary prohibitive. Have no fear, I plan to do another one come September (when the weather on the bridge is less capricious, and they’ve reopened the western walkway).]

Folks! We’re meeting in Sausalito! It’s a perfect excuse to grab your bike and ride across the bridge!

When:
Friday July 29th. We need to be in Sausalito at 9am. We need to work the timeline backward from there, adding enough buffer so that nobody feels rushed.
Who:
Anyone who has a bike, can manage to stay (mostly) upright on it, and wants to ride across the Golden Gate (C’mon! It’s fun! You should do it at least once!)
What:
Riding a bicycle across the Golden Gate Bridge. Also, you might want to consult your doctor about ADHD, and/or cut down on the fine herb clouding your short-term memory.
Where:
The Bridge down into Sausalito, see below

Options on the Near End

  1. Ride with me from my house. (Ha!)
  2. Meet up at 16th St BART, ride to Church, across Market, through “The Wiggle,” and over to Baker & Fell. I could be convinced to meet folks along this route, if they’re concerned about navigating “The Wiggle.” Given that most of you are coming from somewhere in the Mission, this probably makes the most sense.
  3. Meet at Baker & Fell (the start of The Panhandle), through the Park, out to Arguello, through the Presidio, and out over the Bridge. I could easily be convinced to meet folks here.
  4. Meet at the office, ride to Embarcadero, pick up the Bay Trail after a few blocks, and ride up and over the Bridge. I don’t think this makes sense for anyone likely to go on this ride, but let’s weigh the merits:
    Pro:
    Most of the route is on a bike path, completely separated from traffic.
    Cons:
    1. It’s longer. Given the early start, this may be a major factor.
    2. It’s not as nice as the ride through the Presidio.
    3. The climb up to the Bridge is more extreme. I remember it being quite daunting, but admittedly I haven’t taken this route in many years.
    In the end, the decision comes down to how comfortable you are on the street. If someone is still considering this, ping me, and we’ll make this work.

Options on the Far End

For this ride there aren’t really any. The Change.org folks will be stopping just at the base of the bridge, before hitting downtown Sausalito. If anyone else is still considering this ride, it’s a very easy ride into downtown, and the ferry is a nice way home.

(Added!) Distances Involved

16th St. BART - Fell & Baker
1.9mi
Fell & Baker - Presidio
2.4mi
Presidio - Bridge
2.2mi
Bridge!
2.1mi
Bridge - Sausalito (Downtown)
2.7mi

Alternate Route Distances

4th/King - Ferry Building
1.6mi
Ferry Building - Blue & Gold Ferry Terminal (Pier 39)
0.9mi
Pier 39 - Bridge
5.8mi

Deviations from these options are encouraged! Any questions? ASK!

pilchuck, glass

MovableType 5 and PostgreSQL 9


[Cross-posted from my
MovableType Blog]





[Note to LiveJournal readers: this post is a week or so old, but I think I’ve finally vanquished the cross-posting demons]

When MovableType 5 was announced, there was a bit of a brouhaha about its lack of PostgreSQL support. Though it was completely unclear from the language of the announcement, all that meant was that PostgreSQL would not be officially supported and tested. The files would still ship with the distribution.
I discovered this fact just after the Slackers’ Network machine explosion, as we rebuilt from the ground up. Still, in the interest of the expedience of the restoration, we opted to install the latest version of MovableType 4, since our RDBMS of choice is still “supported.”



But when it finally came time to turn my attention to MovableType, I discovered it worked haltingly, throwing cryptic error after error (Can’t use string (“x42494e3a53455247000000000000000”) as an ARRAY ref while “strict refs” in use), with little else to go on. Well, that string is clearly not an array ref, but where is it coming from?
So, I rolled up my sleeves and dusted off the debugging tricks I’d learned when building my custom MovableType plugins (before there was much in the way of documentation for MT4)
…And I got nowhere fast. I figured out quickly that the string in question was ASCII (possibly UTF-8) encoded as a hexadecimal string. But the deeper I went, the more sure I became that this was some kind of decoding bug, because the data seemed to go into the database just fine, but it was being garbled on the way out.
A few weeks ago I sat down with Matt and we tried to puzzle it out. I'd done a lot of work to characterize the bug, but was stumped. With a fresh pair of eyes, rather than getting wrapped up in debugging MovableType’s own serialization logic, he had the epiphany to go look at PostgreSQL’s own encoding formats.
Lo, and behold! There is a new, improved output encoding format in PostgreSQL 9.0. So much improved it has been made the default. What's more, it looks suspiciously like the strings I've been looking at in the debugger.
Armed with that information, it didn't take us long to track down the means to revert a client connection to the old format, and apply it to our MovableType instance.
In our case, adding Setenv PGOPTIONS "-c bytea_output=escape" to the right portion of our Apache configuration was all it took.




TL;DR : PostgreSQL 9 changed bytea encoding defaults, if you’re having trouble with MovableType, try setting connection options for your client.
pilchuck, glass

…And Now For Something Completely Different…

Let’s take a quick break from my self-absorbed rambling about my [REDACTED] to say: Please consider sending a donation to The Red Cross, or another disaster relief organization.

Texting words to short-codes is an easy way to do so, but it also takes 60-90 days for the money to make its way through the system. Please consider making a donation at redcross.org now.

…Operators are standing by.

We now return you to your regularly scheduled drivel.
pilchuck, glass

Laid Up for a While

[Cross-posted from my MovableType Blog]

A lot has happened in the last month…

First off, it appears that this information has been unevenly communicated. For that, I apologize. But I hope you agree that I had a good excuse. (At least at first.)

I’m still midway through writing a very long-winded, exhastive account (with its own summary) of what happened that nobody in their right mind would actually want to read. It’s stalled. This is getting ridiculous.

In the immortal words of Inigo Montoya: Let me ’splain. No, there is too much. Let me sum up.

I was hit by a car.

The evening of Friday, February 12th as I crossed the street (in the crosswalk, with the light) to catch a bus home, a car turning left onto Market from Montgomery struck me at slow speed.

My knee was broken (x-ray). Everything else was fine. (Specifically, a portion of the tibial plateau was sheared off.) I was, in many respects, very lucky.

It was a long, painful, and story-filled night.

After a long, disagreeable week, the following Thursday I had surgery to fix the (skeletal) damage (another x-ray). My ACL was torn but not repaired (I’m told that many people live full, active lives without one). My MCL was stretched rather badly.

I was (IMNSHO) discharged too early on Friday evening. I spent a harrowing night at home. Too harrowing to be story-filled. The less said about it the better.

The convalescent prescription from here is rather high-powered narcotics (which work most of the time) and no weight bearing on that joint for 10-12 weeks! After that, the real recuperation begins: 6-8 weeks of physical therapy and rebuilding.

The reason 10-12 weeks is two-fold: primarily, it’s to give the cartilage in my knee a break (ha!) to prevent it from deteriorating further. Secondly, it is also hoped that this break will also give the MCL a chance to tighten back up (at least a bit).

This greatly increases the chances of arthritis in my knee (but there is no way to predict if it will be symptomatic or not.)

I am definitely healing. I have good days and bad days with the pain, but it’s reassuring (after the fact) that I’m healing even on the bad days. I’ve regained quite a bit of mobility, but as of right now, I am still confined to the upper floor of our house.

The outpouring of support and well-wishes has been fantastic and overwhelming. Chiara, too, has been a saint to put up with so much. I am humbled by it all.

There is more I want to say, but this is already starting to get long, so I’ll save it for another post.
pilchuck, glass

Authlogic

[Cross-posted from our Wedding Blog]

I have a project I call “Clubcar.” It had its genesis in my frustration at the pathological inability of a group of coworkers to chose a lunch destination, coupled with our general dissatisfaction with the day-to-day functioning of most other automated decision systems.

It was also a complex enough problem that it seemed a good way to learn Rails. Because it was my first Rails project I was as yet unfamiliar with many Rails idioms and practices. I reinvented a few wheels that really should have been patterns.

I am now going back and spending time cleaning up the code base and extending it to allow more than just the original group to use it, since several people have expressed interest in it.

One of the wheels I invented was authentication. Since a wider audience needs a much more robust authentication (and authorization, but that's a separate issue) system, now is a good time to rip out my simple implementation and use one of the off-the-shelf solutions with far more features, and far fewer bugs.

And here's the rub. By far, the most popular solution, acts-as-authenticated (and its REST-ful progeny: restful-authentication) are primarily code generators. The expectation is that you'll use them in a new project to generate the models, views & controllers that make up your authentication system. This has presented two problems, one practical, and one philosophical.

The practical: since my system already has all of these things, I tried to carefully shoehorn the generated code into my existing framework. It was a mess, I felt I'd painted myself into a corner, and the project stagnated.

The philosophical: while I was despairing and frustrated over the shoehorning, I began to wonder: why is the Rails community as a whole, which has “DRY” (“Don’t Repeat Yourself”) as a mantra so enamored with code generation? Even if it's not you writing the code, it is still repetition that makes the project harder to maintain, makes it harder to incorporate fixes and features from later version of the tool, and seems to fly in the face of not only DRY but good object-oriented design as well.

I set the project aside. In returning to it (now that I need to amuse myself on the train again occasionally.) I decided to once again look for alternatives.

I have stumbled upon Authlogic, a plugin that seems to be written by someone who shares my misgivings. It's also extremely well documented, highly configurable, and has a complete API for extension.

Fair warning: I haven't actually started moving my project to Authlogic, and I may yet find some fatal flaw. But I'm very much looking forward to trying it out, and if I do happen to find a flaw, perhaps I can patch it, and everyone using it can benefit immediately, not on their next project!

ETA: I just sent the author some fan mail, because it makes me that happy!
horus, cat

Horus 2002-2009

[Cross-posted from my MovableType Blog]

There are far too many words for me to write here, and I’ll never get it out if I try to capture them all. Keeping it short: The candle that burns at both ends burns twice as bright, but half as long. Horus succumbed to chronic renal failure today. Hoka Hey, little man.

Quality Time with Pepper
Quality Time with Pepper, originally posted by Erik
Sleeping Horus
Sleeping Horus, originally posted by Chiara
pilchuck, glass

On Some Level, We are Already Legal

[Cross-posted from my MovableType Blog]

Chiara and I are spending this weekend in Monterey / Carmel / Pacific Grove hammering out wedding details. To me this is poetic for on this day our relationship becomes “legal.”

18 years ago today, we had our first date. February 8, 1991 was the Snowball.

I don’t yet know if she realizes this fact, but I do know that she doesn’t expect me to remember.

Today will be fun!

ETA: She didn’t remember. I win! Off to taste some cake.