RSS Verzeichnis - Holovaty.com
Adrian Holovaty's blog.
I gave a talk yesterday at the Chicago Startup Forecast. Here's a rough transcript, with slides.
This is Daniel Burnham. He was a famous Chicago architect, responsible for some of our city's most beautiful buildings. He's known for his influential Plan of Chicago, which foresaw modern city planning, and he was a key organizer of the World's Columbian Exposition, also known as the Chicago World's Fair of 1893. Chicago beat out New York, DC and St. Louis for the privilege of hosting that World's Fair.
Back in those days, world's fairs were more common than they are now. In 1889, a few years before Chicago's fair, Paris held an Exposition Universelle. It was a big deal -- 32 million people visited! -- and its main attraction was the brand-new Eiffel Tower, formally introduced at the event. At 984 feet, it was the tallest man-made structure in the world, a position it held for more than 40 years. You might imagine how exciting it was for people to witness something so tall, in an era when the tallest man-made structure in a town was probably a church steeple.
Back in Chicago four years later, Burnham and his team were plotting: how could their World's Fair showcase something more impressive than the Eiffel Tower -- something that would "out-Eiffel Eiffel"?
The obvious answer was to build something taller. If they could build something 1000 feet tall, or 1100 or 1200, surely it would be more impressive than what the French did. But to Burnham's credit, he refused to play by those rules, pushing his engineers to come up with something genuinely new.
One engineer on Burnham's team had an idea: instead of a stationary tower, why not build something that moved? Something that people could ride around in, that was still tall but not tall for the sake of being taller than the Eiffel. The engineer's name was George Ferris; you see where this is going.
So Ferris and team built it: the world's first Ferris wheel. It was a huge hit, providing great views of the city plus a sense of danger ("This thing can't possibly be safe, can it?"). People all over the world immediately copied the idea. Even today, there are parts of the world where Ferris wheels are called "Chicago wheels."
Here's an important detail about the Ferris wheel. Its height was only 264 feet -- just over a quarter of the height of the Eiffel Tower. But it was still a huge success, because of how different it was. Instead of playing by somebody else's rules -- taller equals better -- Burnham, Ferris and team dared to change the rules.
Fast-forward to Chicago today, with our nascent tech startup scene. I argue the biggest problem we have is one of branding. What is the Chicago tech identity? What's our style? Why would somebody move here to start a company, or (if they're already here) stay here as opposed to moving to the Bay Area?
Let's try to understand the perspective of such a person. If a startup founder wants to find out what the Chicago tech scene is about, they'd likely stumble upon Built in Chicago, a site devoted to promoting local startups. Last week, Built in Chicago released its 2013 Chicago Startup Report. It starts with this:
"2013 was a good year for Chicago startups," it says. "The total funding raised in 2013 was 169% higher than 2012 and was distributed across more than 150 different companies. Dollars from exit events were up markedly as well, with an increase of over 300% from 2012."
It goes on to enumerate the amount of funding raised, the number of exits and the amount of money made from exits.
"78 companies raised $1M or more," it boasts. "Last year, 18 companies were acquired and one company went public. These exits totaled over $3B."
This, my friends, is Chicago playing by somebody else's rules. This is us trying to top the Eiffel Tower by building a taller tower.
You can imagine a startup founder's reaction to this Startup Report: "OK, so Chicago clearly values the raising of venture capital money. The goal here is to raise a lot of money, then either go public or sell your public for a lot more money." The Chicago Startup Report says that, loud and clear.
You can imagine the startup founder's follow-up thoughts, too. "How exactly is this different than Silicon Valley?"
The answer is, by those particular measures, it's unequivocally worse. I'm sure many of you saw this (admittedly link-baity) blog post back in June, "Chicago Is Not Going to be the Next Silicon Valley." CB Insights, a company that tracks investment data, ran the numbers and found that Chicago's VC funding levels have been flat.
Of course, if we're going to be the next Silicon Valley, we'll at least have to overtake New York in VC activity before we overtake California, right? Unfortunately, the numbers indicate that's not happening.
Granted, that blog post is now seven months old. But I don't think things have changed dramatically since then. Let's not fool ourselves. We're not a hotbed for VC activity.
Not only is Chicago playing by somebody else's rules, it's failing miserably. We're not only trying to top the Eiffel Tower by building a taller tower -- we're failing to build something even a quarter as high.
So let's think back to that fictional startup founder. "OK, Chicago doesn't have quite as much VC activity as the Bay Area, or even New York. Is there something otherwise unique about Chicago? Perhaps certain types of industries work particularly well there?"
Cities have reputations in the startup world. The Bay Area is great for consumer-facing Internet (among other things, of course). If you're building an entertainment company, you'd do well to move to Los Angeles. New York is a mecca for finance, fashion and media. Boston has carved out a niche in biotech.
What's Chicago's industry? And please don't say "group coupons."
You can't argue with Rahm. (In more ways than one.) We are diverse here, and that's great for our economy -- but not so great for marketing our city. "We're pretty good at a lot of things" makes people's eyes glaze over.
So what can we do to differentiate ourselves? There are many options, but here's one I think is particularly strong.
Chicago is great for bootstrappers. Let's take advantage of that.
"Bootstrapping" has a few different connotations, but what I specifically mean is: small companies with a couple of people, likely developers, who take no outside investment money. They build products because they love the work, the craftsmanship, the pride in building and creating.
They want to make a good living, but, just as important, they want freedom -- financial freedom, of course, but equally importantly freedom from people telling them what to do (bosses, investors, etc.).
They want to build solid, revenue-generating businesses without the need for an exit. It may be a hard concept for Bay Area types to understand, but for these types of people, building things, and serving customers, are themselves the reward. If you love building, why wouldn't you want to do it sustainably, for the long term?
They don't necessarily want to "change the world," as the cliche goes. Let's recognize Silicon Valley ambition for what it is, 95 percent of the time: exaggerated BS. Maybe this BS is designed to persuade investors, maybe it's designed to persuade potential employees, maybe it's for persuading users of your product. Either way, for an Internet startup to say "we're going to change the world" is likely phony. Odds are your company will improve a small number of people's lives. We're Chicago, we're honest people -- why are we falling for this?
Why is Chicago the best place in America for these people? Because the bootstrapper's mentality is precisely aligned with the temperament and style of Chicagoans (and, more generally, Midwesterners). We appreciate the satisfaction of a job well done, we eschew BS, we're realists.
Combine that cultural norm with Chicago's supportive community, its wealth of food/music/theater/comedy/architecture, and its low cost of living compared to SF/NYC/DC/Boston, and you've got a prime environment for bootstrappers.
And the thing is, it's already happening. Chicago is already home to fantastic companies that are doing their own thing, refusing to play by Silicon Valley rules.
The best example is 37signals. Not only is it a successful company, with great products and a team that's devoted to these ideals of craftsmanship -- I'd argue it's the most well-regarded Internet company from Chicago among startup types. And they're unabashed proponents of bootstrapping, even going as far as maintaining a series of interviews called Bootstrapped, Profitable and Proud.
A less conventional example is Cards Against Humanity, a wildly successful card game made by a group of friends who took no outside investment. Their game has consistently hovered at the top of the Amazon best-selling toys and games list, and their freedom from investors and refusal to play the VC "game" has let them do incredible things. I highly recommend Max Temkin's XOXO talk about company values; it fits the Chicago/bootstrapping philosophy perfectly.
Lots of other bootstrapped, one-or-two-person companies are cropping up here, including:
Draft, a web-based tool for writers -- made by one person, Nate Kontny.
StatHat, a great way for companies to track time-series stats such as server performance -- made by one person, Patrick Crosby.
Wizard, a Mac app that makes data analysis super easy -- made by one person, Evan Miller.
Soundslice, a modern approach to guitar tabs and sheet music -- made by me and PJ Macklin.
My friend Evan Miller jokingly made a great slogan for this new Chicago bootstrapper scene: "Chicago: Be your own Boss." (That's a tongue-in-cheek reference to our tradition of political bosses.) Evan also wrote a wonderful essay called Marketing Your Startup Hub that inspired me to write this talk.
I challenge you to consider how we should be defining our city in the Internet startup world. The Eiffel Tower has been built -- it's in Silicon Valley, and it's quite tall. Should we be playing by their rules, or changing the game?
POSTSCRIPT: I've been amazed at the positive reaction to this talk, both in person and after the accompanying Trib article. The main objectors are VCs and people running companies that have raised VC money -- which is not surprising.
It takes courage for a city to rally around one particular theme, and we're bound to alienate people who don't have the same view. Do we have the courage?
Since July 2005, when Django was open-sourced, Jacob Kaplan-Moss and I have been the two Benevolent Dictators For Life (BDFLs) of the project. Today we're both retiring from our formal BDFL roles, given that (1) we don't have the time for it that we once had and (2) Django is in great shape with a vibrant community of contributors.
A BDFL, a term originally used by Python creator Guido van Rossum, is basically a leader of an open-source project who resolves disputes and has final say on big decisions.
In the early days, circa 2004-2008, Jacob and I had to make a fair amount of decisions, and we spent a ton of time promoting the framework, fixing bugs and adding features. Over the last few years, the codebase has stabilized tremendously and many fantastic developers from around the globe have joined the effort, contributing code, writing documentation, helping with process (bug triage, managing releases), publishing books/tutorials, holding conferences and organizing user groups. It's an incredibly healthy, friendly and diverse open-source project/community!
At the same time, I've gotten a development "life" outside of Django. In the old days, I'd spend basically all of my free time improving Django -- I considered it my baby, and it would be entirely fair to call it an obsession. Then, in 2007, I founded EveryBlock and found myself with a new baby, a young Internet company.
For the last year, I've been building Soundslice, a modern approach to sheet music and guitar tabs that I've wanted to exist for a long time. Soundslice has become the thing that I'm constantly thinking about and writing code for, from morning into late hours of the night. (And I'm very comfortable with that. I've always seen Django as a means to an end -- building great web products. I'm skeptical of anybody who builds frameworks for the sake of building frameworks.)
So, given that I can't give Django the time that it deserves, it wouldn't be fair to continue as BDFL. At best, it'd be phony for me to keep calling myself that; at worst, it'd be doing a disservice to the framework by slowing down our decisionmaking processes and setting a tone of complacency.
If you're a Django user, though, have no fear. Honestly, this title seems like a big change "on paper," but in reality it won't change much. I haven't been deeply involved in day-to-day development of Django in quite a while, and I think Jacob would say the same thing -- so, if anything, this change in titles just makes official what had already been happening. I suspect nothing major will change in the Django community, except maybe some committers will feel emboldened to build great new stuff. (But please, no more Django Pony. It's stupid.)
I'll still continue to contribute to Django as I find things that it doesn't do that I want it to do. And of course I continue to use it in building web apps. It's been a fun ride as co-BDFL, and I'm looking forward to Django's next chapter.
UPDATE: Here's Jacob's post about it.
The Google+ / YouTube integration is a disaster.
Much has been written about this in the last few days, with people making great points about the value of anonymity and the poor new comment-ranking algorithms. Here's a good roundup of the various issues.
These are fantastic points, and I agree with them 100%. But they're fundamentally matters of philosophy. Whether real names are required in comments, whether a Google+ account is required to post comments/videos to YouTube, and how comments should be ranked/sorted â€” these are all judgment calls made by YouTube's developers and product managers. Though we may disagree with their philosophies, they have the right to build their products according to those philosophies.
Beyond that, it's important to consider that people don't like change. I've built web apps long enough to know that any time there's a substantial redesign or relaunch of a site, people will complain. They'll say "Version 1 was so much better than Version 2!" Then they eventually get used to it, and, ironically, when Version 3 comes along, they'll passionately defend Version 2.
But even accounting for these two things â€” people's normal resistance to change, plus Google's right to have its own philosophies/opinions on how their product should work â€” the YouTube changes still qualify as a disaster.
It's not that I'm upset things don't work in the same way they used to, or that I disagree with their philosophies on the product, it's that things don't work period. The implementation is just plain broken.
Here are three examples.
Connecting your YouTube channel to a Google+ account
I have a decent-sized YouTube channel, with 26,000 subscribers. (I post guitar videos.) I've spent several years building up this subscriber base and, naturally, I don't want to make any missteps that might mess up my channel or devalue it in any way. So I was super skeptical about linking my channel with a Google+ account, but I finally did it after YouTube made it too inconvenient/annoying not to.
Problem was, it didn't work.
When I bit the bullet and initiated the linking of YouTube/Google+ accounts, I got the following "YouTube is updating your channel" dialog box:
The dialog box contained nothing, and it was over a blank background, and...nothing happened. I initiated this several times, trying to narrow down the reasons it might be happening. I signed out of my other Google Accounts, I tried it in an incognito window, I tried doing it from the settings page as opposed to directly from the channel page. Each time, the same thing happened: only an empty dialog box with no response.
So it's some sort of cross-site frame problem. I looked in my browser's (Google Chrome's) preferences to try to disable whatever security setting was causing that, but I couldn't find anything. I finally tried it in Firefox, and it worked. Evidently Firefox (or at least my particular Firefox installation) doesn't care about that cross-site frame problem.
Google built something that doesn't even work in the company's own browser. And the problem is still happening, as of this writing, which means it's been like that for at least a week.
With my YouTube/Google+ accounts finally linked, I could finally post comments again. (YouTube is now requiring a Google+ account in order to comment.) I found a new video by one of my favorite YouTube guitarists, troubleclef, and I wanted to say some nice stuff. But commenting did not work.
I clicked in the "Share your thoughts" box. A new window popped up, immediately closed, and the page flickered a little bit. Nothing changed. Here's a video of the fiasco; it's begging to be mashed up with the Benny Hill theme song.
Chrome was telling me a pop-up was blocked, so I enabled popups for youtube.com. Same problem. I reloaded the page. Same problem.
I cannot post comments on YouTube videos now. It appears to be completely broken.
I get a fair number of comments on my videos (a handful each day), and I get an email notification each time I get a new comment. I haven't received a "new comment" email notification in a week or two, so I was wondering whether there was some new way to get comment notifications.
There's now a bell icon in the upper right of YouTube pages when I'm signed in, and it's the same icon they use on Google+ for its notifications, so I assume this is where I'll see YouTube notifications. I clicked the icon and got this:
"Please sign in to view your notifications"? Am I not already signed in? The fact that my username and avatar are being displayed in the upper right seems to indicate I'm signed in, no?
I have no way of knowing how many people are being affected by these three issues. But for me, using Google's own browser, it's resulted in a YouTube experience that's extremely broken. Beyond the social problems of requiring a real name, beyond the content problems of ranking comments in a bad way, the new YouTube simply doesn't work.
To me, that's the most unforgivable thing about this. Given Google's history with Google Buzz, we know they don't have a subtle view of real names and privacy, so the tone-deaf real-name requirement isn't a huge surprise. The comment ordering, though wrong in several ways, is ultimately their judgment call. But the one thing Google is good at above all else â€” technology â€” its failure here is disastrous.
Yesterday I saw some people online referring to my site Soundslice (a guitar tabs site) as "Songslice," so I registered songslice.com, with the intention of redirecting it to soundslice.com for the benefit of anybody who typed in the wrong domain.
In the past, I've done this sort of redirect at the web server level (nginx, Apache). But now that I'm on the nice Amazon infrastructure, I'm not actually using one of those servers -- requests are handled directly by gunicorn once they make it through Amazon's load balancers. So I needed to find another way of handling the redirect.
One option would be to tweak my application (using Django middleware) to detect requests to songslice.com and redirect them, but it seemed dirty to do it directly in my app.
Another option would be to use the domain-redirecting service provided by my domain registrar (Namecheap), but registrars don't always use proper 301 redirects, and I've gotten burned in the past by shoddy performance/downtime of registrar-provided services.
That left me with the option of doing the redirects directly within the Amazon Web Services world. I couldn't find a single document that explained how to do this, so here are my notes on how to set up a domain-level redirect with the current AWS tools. (Note that Amazon is adding new stuff seemingly constantly, so this may be out of date in a few years or months!)
The one-sentence explanation: point the new domain at S3 and use S3's "redirect all requests" feature.
Step 1: Create S3 bucket for domain
Go to the S3 console and create a bucket. For the name, use the exact, full domain, e.g., "songslice.com". (This is important!)
Once you've created it, edit its properties. In the "Static Web Hosting" section, select "Redirect all requests to another host name." In that section, enter the domain name to redirect to, e.g., "soundslice.com".
Step 2: Add DNS rules in Route 53
Go to the Route 53 console and create a Hosted Zone. The domain name should be your new domain name, e.g., "songslice.com".
Once you've created it, click "Go to Record Sets." You should see two records already ("NS" and "SOA").
Click "Create Record Set" and make sure the Type is "A". Leave the Name field blank, to indicate you're dealing with no subdomain. Change Alias to "Yes". Click in the Alias Target field, and you should see a dropdown including an "S3 Website Endpoints" section. Select the S3 bucket you created in the previous step. Save the record set.
Step 3: Give registrar Amazon's nameservers
Log into your account on the domain registrar's site (e.g., Namecheap), for the domain that you want to redirect (e.g., songslice.com). Find the place where you can change the nameservers for the domain. You might have to check something that says "Stop using registrar's nameservers."
Enter the four Amazon nameservers for your new domain. They're listed in the Route 53 record set you created in step 2 (next to "NS"). Copy and paste them from Route 53 into your registrar's nameserver UI.
Step 4 (optional): Do it again for www subdomain
If you want to support redirects for people typing in a www subdomain (I recommend this), repeat steps 1 and 2 using, e.g., "www.songslice.com" instead of "songslice.com".
The only difference is: in Route 53, instead of creating a new record set for the www version, edit the one you already created and add another "A" record. This time, type "www" in the Name field when you add it.
That's it! Depending on DNS, this could take a little while (a few hours?) to propagate across the Internet. Oh, and this will cost you around a dollar per month, for the S3 and Route 53 services, and there's nothing to maintain.
Some of you may know I moonlight as a guitar player on YouTube. I've been doing it since 2007, I've gotten millions of views over the years, and 25,000 people have subscribed to my channel (more than twice as many people as I have Twitter followers) -- but it's just a fun side thing for me.
I've often considered somehow supplanting my income through my YouTube videos, but the options have been limited. I was an early member of the YouTube partner program, which lets me include ads on videos and share revenue, but that brings in something like $50 annually, plus or minus.
I've thought about doing a Kickstarter, but the Kickstarter model of funding one-time, larger projects doesn't fit nicely with my workflow of posting a single guitar video every couple of weeks/months. I would like to do a Kickstarter campaign some day, but I'd use it for something other than my YouTube videos. Maybe an album.
Enter Patreon, which I just discovered at XOXO a few days ago. This site lets people be "patrons" for musicians/creators who produce new things on an ongoing basis. You can sign up to be a patron for my stuff and pledge $1 or more whenever I post a new video. This helps support my guitar-posting habit, and there are some nice benefits such as a blooper reel, guitar tabs of my stuff and even the ability to choose which songs I play.
I certainly don't expect to be able to live off of this -- I'm quite happy working on Soundslice full-time, and frankly I need computer programming in my life in order to be truly happy -- but every bit helps, and I'm already enjoying the fan interaction that Patreon helps make happen. The fans who like your music enough to pay for it are the best kind of fans. :-)
Have a look at my Patreon page, where I've recorded an intro video and written more details. Looking forward to seeing how this goes.