2011-10-21

Why I like early-stage startups

Early-stage startups aren't for everyone, but they're certainly for me. There's always more to do than you have time for. Some find that overwhelming and frustrating ("I always fail to achieve the goals I set for myself!"), because they look at it this way:

I prefer to look at it this way: 

Every single day, every single hour even, you can point to something you did that didn't exist before.

Progress isn't measured relative to what goals you set for yourself so much as how much is there that wasn't there an hour ago.

And that's awesome.

2011-09-21

Leverage this


Slashdot post says (emphasis mine):

long-standing complaints about fraudulent purchases that leverage Apple's popular online music store

People seriously need to stop verbing that noun and start using normal words instead of trying to sound hip or edumacted.


The internets: you're doing it wrong

You can now rent Amazon Kindle books from your local library.

Does anyone else think this is completely absurd?

2011-08-18

The Roggr Rule

Idly chatting on IRC with other nerds, and reading stories about failed startups, this particular quote got me thinking:
  • Problem 1: Founders
We are two founders (business oriented). In a very short time, we ended up 6 people with various business areas of expertise (web marketing, communication, finance, legal, etc.) but no tech person. Wrong. Each one of my co-founders was a kick ass guy/girl in their own area of expertise but every tech/web startup needs a tech person. This tech person is actually the core of any startup, everyone else is expendable (early stage).
Mistake #1: Assemble a small (2, 3) team. Get a tech co-founder.
My first reaction was "duh", which is a little glib and facile. But then, looking back at my previous startups, I came up with the following completely baseless, arbitrary, unsubstantiated, and therefore awesome, rule of startups, which I modestly named The Roggr Rule:
Any Web startup that doesn't have 2-3x as many techies as business people until it has 15+ heads will fail
Expect to read abundant case studies in best-selling business school textbooks soon.

2011-08-11

Devs need to stop being such pampered whiners

The 37signals people are smart and have a lot of interesting ideas to make software development better.

The "Boycott A Meeting" movement, however, is bullshit and idiotic groupthink at its worst.

Bad, pointless meetings are bad and pointless and should be avoided.

Gatherings where people discuss features, ideas, implementations, etc. with a clear agenda at the beginning ("let's decide how to build X") and actionable outcomes ("you do this and that, I do this and that, we'll use technology A and B, and will have a prototype out by next Friday") are one of the best ways to foster good ideas, code quality, camaraderie, and productivity.

It's hip to be a contrarian and spout off against-the-grain blanket generalizations as facts, but when your blanket statements are complete bullshit, you lose a lot of your credibility and just come off as an arrogant opinionated mollycoddled sniveling little whiner. Being a self-centered opinionated impatient whining bratty know-it-all is not a requirement for cranking out lots of high-quality software.

2011-07-27

Single sign-on across the web? No thanks.

Since the mid-1990s, large corporations (primarily) have been pushing single-sign-on-everywhere as the solution to all the ills of the world. "No need to remember multiple passwords, just use our authentication system!" Microsoft did it with Passport / Live ID, AOL did it, Facebook is trying to do it, Twitter and LinkedIn let you do it, and Google does it across all their services.

That's a bad idea for a number of reasons. Some of us have different credentials on different services on purpose. When I use services for my current employer, I like to use my work email address; it keeps my accounts clean when I change jobs. When I blog here, I use a non-workplace-specific work email address. When I log on to less serious sites, like YouTube, I use different credentials still. Single sign-on makes this more difficult--the easiest way around it is to dedicate a separate browser for each purpose, and that's not really a good solution. There is some overlap between work-work, work-general, and non-work--I like to have all my bookmarks in one place, for example, and so I have to set up bookmark sync between all my browsers. Sure, it's a good idea to do that anyway so I can have the same bookmarks on all my computers, but it's an extra step I'm forced to take because of single credentials.

I know Google now supports multiple sign-on, but you can't be logged into one service and be entirely logged out of another without logging out of all of them. In many cases I just don't want to be signed on into their services at all--I value my privacy, and I don't want everything I do on all Google sites to be linked to my identity by default. That should be my choice.

The purported convenience of single sign-on is primarily a way for large corporations to gather enormous amounts of very specific tracking information about users, and to collect sign-ups so as to drum up their numbers for shareholders. Microsoft's Passport had over 200 million users as of 2002--but creating a Passport account was an apparently required step for using Windows, so the actual number of active Passport users is likely a lot smaller than that.

I've worked in internet advertising and tracking for a long time and I know what it can do. I don't have a moral problem with it--tracking makes advertising more efficient and allows sites to tailor their experience to each one of their users. But it's getting harder and harder to avoid, and that's what bothers me.

2011-07-12

Don't overload 404 please


Today I clicked on a Google Plus link in my email, which opened a tab in Firefox. I'm logged into Google Plus in Chrome, not Firefox. What did the link do?

404.

It didn't tell me "You need to be logged in to see this page" and prompt me log in. It didn't return 401 or 403. It just said "the server can't find this resource."

That's arguably wrong. The page does exist--I opened it in Chrome without a problem. So unless you're well versed in http status code arcana, a 404 in this case violates the rule of least surprise and feels like a bug.

The existence of a resource at a URI does not depend on the authentication state of the user agent accessing that URI. If a resource exists, but you're not allowed to view it, 404 is arguably not the right way to signify that--use 401, or 302 to a login page.

Sure, you could argue a 401 or 403 tells you too much--it may reveal that the page does exist, which you may want to hide from unauthenticated users, and 404 is appropriate for
[...] when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable.
In this case, 401 is arguably applicable, so 404 isn't right.

GitHub does the same thing. I hope this doesn't become a trend.

2011-04-27

The art of choosing fonts

Wells Fargo emails use a pretty wild array of fonts.




Reminds me of those vintage mixed-font posters (source).


This is why Apple wins on mobile devices

I recently switched to an Android phone because my non-evil carrier's data plan is not compatible with the iPhone. I like the MyTouch 4G fine--it's fast, and not hobbled by the same arbitrary restrictions Apple phones are. I like being able to install any email program I want and pick the best. But it's not as polished or slick as the iPhone, in terms of integration and general usability, and if the iPhone were available on non-evil carriers I'd seriously consider switching back.

This gauntlet of installation steps for the Amazon app store application is emblematic of the state of Android on mobile devices:

Download the Amazon Appstore app immediately by clicking [link] from your Android device, or follow the click-by-click guide below.

Click-by-Click Guide

You need to do this only once for each device. The clicks below should take less than 30 seconds.

Click 1

Open your device Settings and click "Applications".

Click 2

If unchecked, click "Unknown sources". If "Unknown sources" is already checked, skip to Click 4.

Note: AT&T Wireless does not support the Amazon Appstore for Android. See Help for more details.

Click 3

Click "OK" on the "Attention" dialog. "Unknown sources" will now have a green check.

Click 4

Open your notifications and click the e-mail message from Amazon Appstore.

Click 5

Click the link: [link]. The Amazon Appstore app will download to your device.

Click 6

Open your notifications and click "Amazon_Appstore.apk".

Click 7

Click "Install".

Click 8

Click "Open".

That's it! Sign in with your Amazon.com account and start enjoying thousands of apps for Android. You need to do this only once for each device.
"That's it"? Seriously?

Most of this is the price of freedom (in the free-software sense) and the all-purpose nature of Android, which is an "open-source software stack for mobile devices" (as opposed to a UI and operating system designed for exactly two devices, the iPhone and iPad): generic software is inevitably less integrated and smooth because it's meant to function in a wide variety of heterogeneous environments (think off-the-rack v. bespoke suits). What's sad is that most attempts at improving the native Android UI and integration seem to be driven more by silly branding and business deals than by a genuine concern for user experience.

Many of the most successful computing products have benefited from a (more-or-less) benevolent dictator making the hard choices about what is or isn't going into the final product: Apple, of course, but also Linux, MySQL and Python come to mind. Compare that to the confusing, inconsistent array of products (even open source) churned out by headless democratic nerd posses like the Mozilla Foundation with its multitude of browsers (Firefox, Camino, SeaMonkey), calendars (Sunbird, Lightning), extensions ("add-ons", "extensions", "plug-ins") and skinning engines (personas v. themes, which are "add-ons" themselves); or the Linux UI community, with Gnome and KDE and so many other options.

Maybe it's time for a strong leader to emerge and make the Android people focus on one optimal, uncluttered, integrated experience. Fat chance.