Sunday, July 26, 2009

What's an Ignite event like?

One of my favorite parts of Ignite Baltimore is getting to work with talented local companies and showcasing their great work. If you're wondering what Ignite events are like, a video production company in town called HYPE Online made a really great short hype video explaining what it's about, embedded below.



Thanks HYPE!

Friday, July 24, 2009

Conditionally using memcached in Rails development mode

Problem: sometimes you want Rails to use the MemCacheStore in development mode, but only when memcached is running. Otherwise you want to fall back to the regular memory store.

Solution: Drop this gist into your development.rb file. It checks to see if memcached is running on the default port on localhost and sets config.cache_store appropriately.

With this code in place, not everyone on your team has to be running memcached, and you only have to run it when you're testing something that involves memcached.

This saved me some aggravation and I hope it helps you too.

Saturday, July 18, 2009

Startup opportunities for programmers in Baltimore

An open letter to Baltimore hackers:

Because I put myself out there as a Baltimore-based startup person, I am regularly approached by entrepreneurs in this region who have ideas for software projects, mostly web apps, that they need someone to build. Most of these ideas sound awesome to me, and the people seem very compelling leaders (they all create what Eric Ries calls the "reality distortion forcefield "). I'd love to work on all of the ideas, but I'm busy with my own startup. Just in the past four weeks, I've talked to people who want to build:
  • a niche massive, multiplayer game
  • a workflow management system for the entertainment industry
  • a web news site CMS
  • iPhone games
I don't always know to whom I should refer these entrepreneurs. If the person has a budget and they are looking for a Rails shop, I send them to my friends (and long-time Ignite supporters) Smart Logic Solutions.

But some of these inquiries are from people who can't afford or aren't ready for the full-court press that SLS can provide. The projects are more prototypal and better-suited to a freelancer or moonlighter. That brings me to a dilemma.

I know many good programmers in different disciplines, especially through the Beehive. But I don't always know their tolerance for risk, willingness to work for equity, etc. I wonder if that's a consequence of being in a tech economy dominated by service providers and government contractors -- do talented creators get used to high hourly rates, and thus become unavailable to people who need their help to build disruptive, exciting products with a lean startup mentality?

If you are interested in this kind of work -- and I really encourage you to give it a try -- please leave a comment on this page or email me at mike@subelsky.com, because I'd like to have better answers the next time someone asks me to help them build an idea. I just need to know your specialties and what contact information I should use.

Side note to entrepreneurs: you should make an effort to get out there and meet the developers now, before that brilliant idea strikes you. Cowork with us at the Beehive, go to Bmore on Rails meetings, attend Outlet Baltimore and Refresh Baltimore, come to SocialDevCamp and Ignite, etc.

Friday, May 15, 2009

Undoing Your Social Training and Creative Inhibitions in Five Minutes

Last night, I was honored to be the first speaker at the first Ignite DC. My talk was called "Undoing Your Social Training and Creative Inhibitions in Five Minutes".  The gist of my talk is:
"Our culture inculcates several behaviors that harm creative, entrepreneurial people: we're taught to avoid conflict and real, open honesty with one another, and we're taught to fear failure. This may work for creating a polite, civil society, but it doesn't serve the individual who is trying to make a difference. But there's hope! Improv theater actors have devised many techniques for overcoming these tendencies which enables them to create inventive stories extemporaneously. Mike will share ways to combat creative inhibitions gleaned from six years of teaching and performing improv theater."
The slides are below.

Monday, May 11, 2009

It's Not Always Sunny in the Clouds

At RailsConf last week I gave a talk called "It's Not Always Sunny in the Clouds" where I shared all of our lessons learned with OtherInbox and cloud computing.  I tried my best to go beyond the hype and talk about our real world experiences.  The slides are below, but here's the raw list of lessons:
  • “Everything needs to be automated”

  • Autoscaling is the easiest part

  • Think carefully about credential management

  • You really could use internal DNS

  • It's maybe not that cheap

  • Launching servers is not that fast

  • You will become dependent on “glue” services

  • You will depend on a distant faceless provider

  • Use DVCS

  • You will spend a lot of time on monitoring

  • Your logs will runneth over

  • Write lots of “in-process tests”

  • Snapshots are slow

  • Rails will be the least of your worries

  • Cloud services involve subtle-yet-massive tradeoffs

  • SQS guarantees delivery at least once

  • Queue lengths inaccurate for <>
  • SQS not necessarily FIFO

  • So you may not want a cloud queue

  • SimpleDB optimized for writes, not reads

  • You must code defensively

  • There are no good "cloud sandboxes"

  • Pay attention to MySQL timeouts

  • "User account management is -not- ideal."

  • You are locked-in to your provider

  • Relational DB may not be the best choice

  • Is there a benefit?

    • Changes the way you write code

    • You can start right away

    • Pretty awesome redundancy



Monday, April 27, 2009

On Saturday I gave an "Introduction to SproutCore" talk at JSConf, the world's first all-JavaScript conference.  It was a great conference and highly recommended.  Videos will be posted over the next several weeks.  For now, for those interested, my slides are below. 

Friday, April 17, 2009

My tutorial at RailsConf 2009

I'm teaching a three-hour tutorial at RailsConf 2009 on SproutCore and Rails, called "Building Next Generation Web Apps with Rails and SproutCore".  Since three hours isn't a whole lot of time, I wanted to post some things that students can do to prepare to get the most out of the training.

See you in Las Vegas!

Prerequisites

We'll use the stable release of SproutCore (0.9.23) although I plan to address what's different about the 1.0 API which is currently in alpha testing.  So to be able to work in the tutorial, you'll need recent versions of Ruby and RubyGems.  Follow these directions to install SproutCore.

Note that the SproutCore gem depends on merb-core (>= 0.9.9), erubis, rubigen, and mongrel.

Before the tutorial starts, you must be able to view localhost:4020.  If that works, you know everything installed correctly.

This may go without saying, but you also need to have Rails 2.3.x installed.  Specifically you should be able to load the Rails startup page on your development machine at http://localhost:3000/.

Recommended Reading

I strongly recommend you complete the "Hello World" tutorial on the SproutCore home page. You may also want to browse the project wiki to get more of a sense of the framework.

The most helpful wiki articles to read include: