Thursday, October 16, 2014

AWS Redshift Presentation Notes + CTO Summit

On Tuesday I spoke about our experiences using the Redshift database at Staq. I experimented with using mdp to present the visuals, with mixed results (it's definitely good for writing presentations quickly, especially if you're conversant in Markdown syntax).

I posted my outline which includes links to additional reading on Github. Hope it's helpful!

Also, I've been accepted as a speaker at the DC CTO Summit on 10/28. If you use the code mike_online when registering you get a $200 discount. (For that talk I'm thinking about trying tpp though I am having some ncurses issues on OS X)

Tuesday, September 9, 2014

Baltimore Innovation Week Kicks Off Friday

Baltimore Innovation Week 2014 starts on Friday. The schedule is pretty spectacular - if you care about cities and technology and innovation, you gotta be there!

Our event Ignite Baltimore is one of the events; tickets are sold out but we release a lot of waiting list tickets.

Monday, May 12, 2014

Fixing "SocketError: getaddrinfo: Name or service not known" with Ruby's resolv-replace.rb

Update 6/3/2014: there are other advantages to using a pure-Ruby DNS implementation.

Recently we had a problem with DNS lookups for a particular API that only afflicted our Heroku-based workers (host name changed to protect the innocent):


irb(main):009:0> Socket.gethostbyname("example.net")
SocketError: getaddrinfo: Name or service not known

That line of code works fine in other places I tried, like my dev machine. The specific error had to do with a call that Ruby's net/http library was making. I filed a ticket with Heroku support using the above example, and they suggested I try using Ruby's Resolv library, something I had not encountered before. This post is a little breadcrumb to help others who may have the same problem.

Resolv uses Ruby code to do DNS lookups, instead of relying on the system's libc installation like gethostbyname does. Rather than having to monkeypatch net/http, all I had do to was add require "resolv-replace.rb" to our startup code which automatically added this fix. I never found out why the normal lookup process wasn't working on Heroku, but this worked. Thanks to the thoughtful soul who wrote resolv-replace.rb!

Friday, May 9, 2014

Looking for a Rubyist

Staq is growing fast. There is so much demand for our products that we need to add another developer to our team to keep up. If you are a Ruby programmer who has experience building large web apps, who is excited about working in a culture of delegated responsibility, who can help coach the rest of the team and help with system design, please get in touch!

We offer all of the usual startup perquisites: salary, plenty of equity, autonomy, and the opportunity to grow your career along with the company.

PS We also write a lot of JavaScript and even a smattering of Python.

Tuesday, March 25, 2014

How I Work

Technically Baltimore just did an interview with me about how I work. It was fun because I got to namecheck some of my favorite apps and practices. Check it out if you like to nerd out on tools and productivity! Excerpt below.

When you need to take a break, what are you turning to? 
My main escape is reading a lot of novels, especially science fiction. I also try to play a couple of the really immense AAA video games that come out each year (Arkham Origins was my winter obsession). Besides being really fun, there’s just so much creative stuff happening in games right now, I don’t want to miss out on the cultural moment (see my essay on the subject if interested and also Tom Bissell’s book “Extra Lives“). 
Oh also, if I get sick of reading, I try to get past level 15 of “Pixel Dungeon,” a truly excellent casual Android “roguelike” game. 
When driving or doing monotonous chores, I listen to a lot of comedy podcasts. My current favorites are Nerd Poker, Thrilling Adventure Hour, and The Andy Daly Podcast Pilot project.
The full interview is at Technically Baltimore.

Tuesday, March 4, 2014

Requiem for gb.tc

I'm a little late to write about this, but it's taken awhile to get my thoughts together. I'm so crazy busy with Staq right now that I'm going to write fast.

Last month we learned that gb.tc, one of my favorite Baltimore institutions, is going "on hiatus".  This news filled-me with sadness and I don't want the event to go by without remarking on it. gb.tc brought a lot of vitality to the city. It felt like a uniquely Baltimore institution, something that other cities would eventually import from us. I can't think of another institution that cares about helping Baltimore develop innovative industries and people. There are plenty of foundations and non-profits around town that could argue with that statement, I suppose, but my answer to all of them would be: "yes, what you're doing is important, but you're only focused on this one small piece of the puzzle", or "you are too slow-moving and focused on top-down solutions to ever make much of an impact". That, to me, was the special competency of the gb.tc - harnessing the grassroots/bottom-up energy of technologists and helping organizing it into a force for good in the city.

The general sense I get from my peers is "the tech community is self-organizing, so we didn't really need what those guys were doing" which I think is flat-out, dead wrong. It's true that Baltimore has many interesting, vibrant events, they're for the most part labors of love done by people who have other priorities besides making the city great, and they depend on the force of personality of a small group of hard-working volunteers. There still ought to be a team of people committed to growing these events and ensuring we don't lose momentum (something I called for back in 2011). For example, I helped run the first (and so far, only) RailsGirls event in Baltimore. I think we need to be doing 2 or 3 of those per year, given how long the waiting list for that event was...I just don't have the bandwidth to do it. Who is going to pick up that mantle? (Fortunately, Girl Develop It has come to Baltimore, but look at all the time that went by between RailsGirls and Girl Develop It).

gb.tc also developed deep relationships with different parts of the city - no one else was trying to connect the more entrepreneurial part of the tech community with the public sector, as exemplified by "Hack for Change Baltimore" which had strong city support. The city would not be trying to support more hackathons this year if not for gb.tc's efforts. They've also provided free startup mentoring,  the "Baltimore Weekly" podcast, amazing "Tech Crawls", and many other valuable services.

I'm not sure if I'm making sense here. Maybe go read that Innovation Community Manager post I wrote in 2011 to get a sense of what we've lost.

It sounds like Betamore is going to try to provide a soft-landing for gb.tc. I feel skeptical of the idea but I really want it to succeed - I just think there's an inevitable mismatch between the mission of a for-profit company (even a mission-driven company like Betamore) and the social-good mission of the gb.tc.

Thank you to Jason Hardebeck, Andrew Hazlett, and Sharon Paley for all of their hard work over the past few years (along with all of the other people who built gb.tc into what it was before their tenure). Your efforts made Baltimore a better place to do creative things, and we're poorer without you.

Thursday, February 20, 2014

Slides for Writing Clean, Concise, and Confident Ruby Code

Today I will be giving a talk at NET/WORK called Writing Clean, Concise, and Confident Ruby Code. Since it's very code-focused, I once again used Stefan Otte's presenting.vim. The slides (which include links to all of my references) are all up on Github.

I'm indebted to Avdi Grimm for providing much of the inspiration for this approach to Ruby, and to my Staq colleagues for letting me try out my armchair programming philosophy on them!