Recently in hacking Category

New gig, exciting!

| | Comments (0)
Tomorrow is my first day as a full-time engineer at WeatherBill. I've been working there for a couple weeks as a contractor, but we all decided we wanted to snuggle a little closer together, so I'm going FT. I'm working with a couple old friends, which is pretty great, and for a still-early-stage startup, there's a pretty high percentage of people in the company that I enjoy getting drinks with after work. That hasn't really been the case since I worked at Critical Path in the late 90s, so I'm pretty stoked to be there.

This may be a surprising development to some, as the last time I discussed anything professional here, I was talking about joining Metaweb. Well, that job didn't last very long - a week, to be exact. It turned out that I didn't get a very accurate picture during the interview process of what my job would be like. Once I actually started, it became obvious very quickly that I hadn't understood exactly what kind of work I'd be doing, and I knew I wasn't going to be happy. This is not a comment on Metaweb; I have a lot of respect for them and hope they are successful. It just wasn't a good fit for me.

And so, after one smallish contract gig building a site in Rails, I'm back to Java land. For the last few weeks I've been doing some work with the most modern versions of Spring and Hibernate, learning FreeMarker, and even hacking on the browser side a bit with jQuery for remoting and DOM manipulation. Though Spring especially has come a long way in terms of embracing convention over configuration, Rails is still way ahead of it, especially in the amount of support Rails has for Ajax communication, at both the template and controller level. I've found myself more than once this week looking at the Rails API docs to figure out how to  build custom FreeMarker macros that are reminiscent of ActionView's form_remote_tag and friends. I've always been about stealing ideas from the language I wish I was working in to make the language I'm actually working in suck a little less, so this whole thing feels pretty natural to me, and I hope that I can eventually make some of this code available for other folks who might be stuck in Java land and not have time to explore Rails enough to be able to steal some of its treasures for yourself.
I got a bug up my ass this afternoon to figure out why Twitter was giving me a 406 response when fetching my updates feed. To recap, I could get the feed successfully from the browser but not from the command line.

Inspecting the request headers sent by the browser (thanks to Penny for turning me onto the Live HTTP Headers Firefox addon), I noticed that the browser was sending a shitload of cookies. Light bulb time. The browser had an authenticated session but curl did not.

After a bit of digging, I found this Twitter account setting: "Protect my updates - Only let people whom I approve follow my updates. If this is checked, you WILL NOT be on the public timeline." Unchecking this box allowed curl to receive a 200 response to subsequent feed requests.

My question to the Twitter people: why not a 403 response? 406 indicates that none of the media types indicated in the request's Accept header are acceptable to the server for use in representing the resource in the response. 406 has nothing to do with access control.

Anyhoo, my tweets should now be showing up in the action streams on the front page.

Twitter broketasticness

| | Comments (0)
What is up with Twitter lately? First it was giving odd responses to feed requests. Now its Jabber/GTalk bots seem to be offline. I got all hot and bothered when Penny clued me into the fact that I could funnel Twitter through BitlBee into Irssi, but since I can't get at Twitter with Jabber, I guess I'll have to keep ignoring it, since I don't need peoples' "I'm on the shitter" "status updates" sent to my phone.
Tonight I ran across this plugin that enables Movable Type to act as an OpenID server. I had been using phpMyID as recommended by Sam Ruby, but I never liked having a login process with separate credentials just for my OpenID. With this plugin installed, whenever I log into a web site with my OpenID, I get redirected back to my MT installation to log into it. I reuse the MT login system and credentials, and that little bit of PHP code is gone from my site. One less thing to have to track, upgrade and potentially report bugs on.

Assimilated by Metaweb

| | Comments (0)
I'm starting a new job on Wednesday at Metaweb. I'll be working on the data team building tools and applications that help make the data in Freebase better. This is a new problem space for me, which is one reason I'm excited; another is the sheer amount of ambition that these people have. They are talking about organizing and structuring all of the world's knowledge. I can't even begin to imagine what that really means, but they seem to have convinced some rich guys they can do it. So now I'll have to learn Python, and I'll have to work in an office again, but I guess I can use these changes of pace and scene. After working mostly at home for three years, I was starting to have conversations with the walls.

Who: bcm@maz.org on email; bcm on Evolve ICB and Freenode IRC; ixjonez on AIM and YIM; ixjonez@gmail.com on Jabber

What: computer programmer; MMOG player; marathon runner; lover of music and film

Where: San Francisco CA; Oakland CA; Brooklyn NY; Melbourne Australia; Ithaca NY; Rock Hill SC

Old blog
Amazon wishlist
Movies to see
Warhorn

World of Warcraft

Turrosh, orc warrior, Hyjal
Grazztt, troll shaman, Hyjal
Ferguson, dwarf paladin, Icecrown

Age of Conan

Qira, Cimmerian guardian, Dagoth
Locnar, Aquilonian guardian, Set

Lord of the Rings Online

Gruenwald, Man hunter, Arkenstone

Photos