Towards Seed Tuition, Not Seed Investment for Startups

Back in college, I asked a friend why – even though they didn’t like the professor – they didn’t drop their painting class. Their reply – it gave them a space and a time to focus on painting, and their disagreements with the professor helped them better articulate the goals of the work.

Excelerate Labs in Chicago is now taking applications for their ~12-week mentorship program for early stage startup founders. Like the legendary YCombinator program, Excelerate provides a small amount of capital (< $20k) in exchange for a percentage of the company. It seems to me, the goal for the startup founders in either the Excelerate or YCombinator program, is to use the introductions, connections, and 3 months of focussing on their project's value proposition to transform that <$20k investment into much more through pitches to larger investors. The professional introductions, mentorship, and focus these programs offer are hugely valuable for any professionals on-going success. Though - at the <$20k level - the success of the specific project is mostly irrelevant. In fact, I'm guessing these mentorship programs make their money back for the entire program in 1 successful company. My 4.5 years of formal education was financed through a combination of loans, credit cards, friends & family, and part time jobs. During that time, my primary job was to focus on developing salable skills that I loved. My tuition payments purchased the time & space to do so. I left college with <$20k in loan debt and a monthly reminder to get a return on my investment as quickly a possible. Unlike Excelerate or YCombinator, my loan providers didn't ask for a percentage of my future earnings (which could be possible through an income contingent loan). Instead they opted for a fixed monthly payment – arguably a decreasing percentage of my future earnings.

Late last year, I figured building a prototype for a custom web-based software takes 12 weeks. If you’ve estimated the duration for building a website, I’m sure this is a familiar timeframe. I’m also sure it’s no coincidence both the startup mentorship programs mentioned above use this timeframe.

It’s extremely difficult to do anything new & meaningful in less time.

And <$20k is a relatively easy amount to raise for the time and space to focus on building a revenue-generating project. What if, rather than providing startup founders with this money in exchange for a percentage of their project - mentorship programs charged the startup $5k/month and took no percentage. Seed tuition rather than seed investment. The mentorship programs could still offer the same connections, introductions, workshops, and focus - but the founders' incentives would be different as would the stakes for the mentorship program. The thing that feels closest to is a Masters of Fine Arts program where the students enter with a project idea and spend 2 years executing it. Maybe that's just my BFA talking.

4 Startup Principles from Dave Winer

First off:

“Just do it — develop the products, and sell them and evolve them, and compete.” – Dave Winer

  • People come back to places that send them away.
  • Choose the best people to compete with.
  • Make products for geniuses.
  • Only steal from the best, and consider theft of your ideas the most sincere form of respect.

Read the whole thing, it’s easily one of Winer’s most inspiring and important essays.

My Proposal for an Open-Source Community News Platform

I wrote this up earlier this year and thought – maybe you know of a similar project that could get this idea off the drawing board….

This community news platform is designed to collect and disseminate information in the public interest for communities too small to be effectively served by a traditional daily news source and makes real-time community-based news reporting as familiar as picking up the phone.?

  • Messages are published and delivered via voice, email, web browsers, web feeds, and mobile applications.
  • These messages could communicate a real estate transaction, car accident, block party, garage sale, the current status of a major infrastructure project, show photos of recent storm damage, or document vandalism.
  • Each message published is automatically categorized by content and geographic location within the community.
  • Community members retrieve messages by location, content, or contributor.
  • Community members sign up to receive notification of a specific location’s messages in their preferred medium (voice, email, web browser, etc).

How is this different than something like Twitter, Facebook, or Yammer?

Like those services, it’s best when applied to a distinct community. Unlike those services – this system is open source (NEA) and a platform-agnostic (it receives input from and outputs to multiple mediums).

Rails’ Page Caching with Multiple Formats in respond_to

One of the apps I’m working on was using Rails’ caches_page to speed up performance and reduce server load.

It worked great until we added new formats via within the respond_to block. If there wasn’t a format specified in the request – the caches would get all messed up. Well sometimes. Making it a difficult issue isolate.

I found lots of articles on caching 1 format and not another – even Rails’ documentation illustrates how to do that.

But I wanted to cache all the formats.

The most reliably way I’ve been able to accomplish this is by explicitly declaring the format-specific location for the caches. Like this:


respond_to do |format|
format.html {
render :layout => 'application', :content_type => "text/html"
cache_page(@response, "/index.html")
}


format.rss {
render :layout => false, :content_type => "application/rss+xml"
cache_page(@response, "/index.rss")
}


format.iphone {
render :layout => 'iphone', :content_type => "text/html"
cache_page(@response, "/index.iphone")
}
end

Note the render lines, they seem to be required for the @response to properly populate.

This solves the correct creation of the format-specific page caching, there’s still the issue of the web server (Nginx, Apache) knowing which cached file to serve.

Whatever checks Rails’ is doing (i.e. Are you an iPhone?, etc) to generate the correct cache need to be duplicated in the web server and mapped to the corresponding cache file.

Personally, this seems like a overly-complex solution for an issue I hadn’t assumed would exist. What am I missing?

iPhone App Development Step 1: Hit a Brick Wall

This morning, I had an idea for a iPhone app. After drawing up a couple of sketches on paper – I dove into the internets to look for existing code, sample projects, or at least some tutorials that might get me started.

While I did find an extremely simple sample project that did something similar – the bulk of the research was:

Apple doesn’t allow that.

Just out of the gate and the answer is ‘No’.

So inspiring.

Combine this with all the stories of people struggling to get their application distributed by Apple – and there’s good reason for web apps were Apple’s first answer to iPhone development.

Garrick’s Web Technology History

Earlier this week – a message came through the web font mailing list referencing VRML. A painfully slow, barely usable, 3d modeling-for-the-web technology that I experimented with VRML during my time with Jeremy and da5d.

And I hadn’t heard of since.

Shortly after my adventures in VRML, CSS 2.0 supported custom web fonts as we know them today, and I did some early experiments with that technology.

These two memories made me wonder about the intervening years and the web technologies I’ve worked with since.

    Here’s what the journey looks like so far

  • 1996: HTML
  • 1997: VRML 2.0
  • 1998: Web Fonts in CSS2, more about designing with them, no tech development
  • 1999: —
  • 2000: Weblogs, more about the act of publishing with them, no tech development
  • 2001: WiFi & Tablet PCs, yes, these were some very hot Linux tablet PCs
  • 2002: —
  • 2003: RSS Feeds (more about reading them, no tech development)
  • 2004: Podcasting, First Crack Podcast, PodcastMN, etc
  • 2005: Weblogs – round 2, WordPress (WP-iCal, WP-GotLucky, WP-iPodCatter plugins)
  • 2006: RSS Feeds – round 2, Cullect
  • 2007: Twitter
  • 2008: URL Design & Shortened URLs
  • 2009: Web Fonts – round 2, Kernest

How to Make Safari Render Pre-GZipped Web Fonts

After too many sleepless nights, I’ve finally got Safari to render pre-gzipped fonts.

All the fonts in Kernest are pre-compressed on the server (in addition to saving a little bandwidth, it also saves a little disk space and a couple hairs of server performance).

I started with this post by Darren Rush on how to configure Apache to send pre-compressed files, rather than compress on the fly.

While most browsers don’t care if the server does the compressing or if the files are compressed ahead of time. Safari does. Particularly with front-end-oriented files like javascripts, stylesheets, and fonts.

If you take a look, Darren’s code – it ignores Safari (RewriteCond %{HTTP_USER_AGENT} !Safari ).

Turns out Safari just dislikes the idea of javascripts, stylesheets, and fonts using the ‘.gz’ extension.

Yep.

Pre-compress your files – just don’t name them ‘.gz’.

“you CAN’T use the ‘.gz’ extension when serving compressed CSS or JS files to Safari. It knows how to handle gziped files, as long as they don’t have the ‘.gz’ extension (it’s just that weird :)” – sopppas

The convention seems to be ‘.jgz’.

This change is fine – because all reasonable browsers look at the content-type and not the file extension. Unfortunately, the really fast Apache mod_sendfile module doesn’t pass content-type. Now those reasonable browsers now have no idea what they’re getting.

In my testing – the smaller file (~40% savings) and slower serving method is still faster than the larger file size and the faster serving method.