To say I’ve been slacking on blogging would be an understatement, but I’m back on the horse. It’s been a busy year, we sold StyleFeeder and now work for Time, went through the adventure of purchasing a house, stopped exercising then started again, and a number of other things.
Author: Eric F. Savage
Internal Brain Error
I saw the 500 bus this morning, and was surprised that it had people on it. Then I realized that my brain had subconsciously translated 500 to out of service…
Fortune smiles on those who smile back
I’ve always considered myself a pretty lucky person, whether it’s spotting opportunities, avoiding bad ones, getting good jobs, etc. This article claims that you actually do make your own luck, and the way that happens jives with how I go about things. Some snippets:
- Lucky people tend to respect hunches
- Lucky people try to introduce variety into their lives
- Lucky people tend to see the positive side of their ill fortune
So, if you’re feeling unlucky, take a deep breath and try something new.
How to keep attendance down
- Hold an expensive wine tasting … at McDonald’s
- Hold a Yankees rally … at the Cask & Flagon
- Hold a cloud computing seminar … at 8 A.M.
All time favorite television characters
- Jimmy James, News Radio (Stephen Root)
- Al Swearengen, Deadwood (Ian McShane)
- Omar Little, The Wire (Michael K. Williams)
Yours?
P.S. Tubalcain
Buying a car
I won’t say I’m some kind of genius buyer or that I have a bulletproof system, but I think I’ve done pretty well when I’ve gone shopping for a car, and this article backs up some of my ideas. I don’t think any tricks or deceptions are really going to help you, your opponent in this game is likely to be much more experienced than you. My rules:
- Make it clear to the dealer that under no circumstances, no matter what, will you be making any decision today, and that you need real numbers, in writing. This is not a trick, you really do need to walk away and sleep on it. The pressure will mount when he realizes you’re serious, and it’s hard to resist, but it’s well worth it. You’ll have real numbers to review, show someone else, fit in your budget. If you get the “I can’t hold this car for you for any longer” line, ignore it. Either he’s bluffing or he’s going to sell the car to someone else. Either way it’s no big loss for you, there are always other ones out there.
- Say as little as possible (not difficult for me). The article mentions not talking about credit or how you’re going to pay for your car, which seems obvious to me. Don’t talk about trade-in (if pressed, be indecisive, “my sister might buy it off me”) or how long you’ve waited for this model to come out, or anything like that, until you get the numbers from #1. Do your research, but don’t go in with a bunch of stuff you found online about invoice cost and think you’re going to get the guy to sell the car and not make a profit, you’re not.
Other tips: If you’re leasing, buy early in the model year. If you’re buying, buy later. And try to take something off the lot, you lose alot of wiggle room when you need to order it.
Contrary Opinion: Code coverage by checked exceptions
Conventional Wisdom: Unit tests are great, you should have lots of them. More code coverage is better.
Conventional Sentiment: Checked exceptions are a hassle, more trouble than thier worse, promote sloppy coding, etc.
On a scale of 1-10 of using and advocating for checked exceptions, I’m probably an 11. I completely disagree with pretty much all of the conventional complaints against them. They do not promote spaghetti code, they actually clean up your normal logic and neatly compartmentalize your error handling. They do not promote sloppy behaviors like exception swallowing, that’s entirely the programmer’s fault. Adding or removing exceptions breaks client code. Yes, it does, why is this a problem? You added additional error conditions, meaning you changed your contract with the clients, and they should be revisited. If you didn’t have this obvious way to signal a change, chances are that the client would handle things incorrectly. Even some of the major voices in computer science have fallen out of love with them, but usually the reasoning is based on people using them wrong (or being too hard to use right).
On a scale of 1-10 of using and advocating for unit tests, I’m probably a 2. They absolutely have their uses. A straight-up algorithm, especially things like math and parsing, should be unit tested for various input values to assure they’re returning the proper value. However in most modern business/consumer software these represent a very small portion of your code. There are far more lines of code dealing with things like authentication, user inputs, file loading, database and network operations, etc. These are complex activities. Even simple CRUD applications can end up invoking hundreds of functions across dozens of libraries for every operation.
The crux of my argument is that if you use exceptions properly, you don’t need to test if an operation completed properly. If the operation completes, it did so properly, all other conditions would fail to complete. Since you want to be using exceptions properly anyways for cleaner code, unit testing this code is redundant but a waste of time and energy to write and maintain. Not only that but exceptions give you code coverage at compile time AND error handling at run time, which unit tests cannot do.
If you disagree, please tell me why!
Blog posts come to life: Marginal Revolution edition
As I entered the 7-11 in Central Square the other day, there was, as usual, a man seated outside the door. The unusual aspect was that another man was challenging his right to use the spot, threatening violence. As I exited the store, the two were discussing how much the new man would pay the old man for the spot. The asking price was at $0.50.
Choosing your Choices
A popular theory of the past few years that has worked its way into the web/business/usability spheres is that more choices are worse. Essentially the idea is that people get stressed out and balk at making choices. If you order a chicken salad and you’re given one, you’re happy. If they ask you if you want your chicken from California or Canada or Mexico, and your mayonnaise from Vermont or Cape Cod, you get less happy. The idea was largely popularized by the book Paradox of Choice, which I haven’t read but apparently goes over the theory ad nauseam.
The result is that many people posing as knowledgeable on various matters have latched onto this and now add “too many choices” to their canned list of “insights”. I don’t buy it, and others are going so far as to disprove it. I think the real lesson is that choices decrease happiness when you don’t understand them. Asking me if I want my chicken from California or Canada doesn’t mean anything to me if I don’t have strong feelings about those two places, but if you said “would you like your chicken from California, which tends to be more tender, or Canada, which has lower fat”, the choice is now very valuable to me. I’m going to happier than I was without any because I know that I got the tastier or healthier one and made a good choice for me.
You can, of course, have too many choices (televisions, CPUs, wines), and you can also have too few (cable/internet service providers, political parties). When you’re deciding what to offer your current and prospective customers and users, you need to decide what makes sense for your business and them, and most importantly, you need to articulate the difference. If you can’t do that, then you can say that you have too many.
What Startups are Really Like (Really!)
Paul Graham has issued another missive about startups called What Startups are Really Like.Obviously YMMV but based on my experience at StyleFeeder, he’s about 1/2 right, and 1/2 wrong, which is par for his course (the 1/2 right part usually redeems the 1/2 wrong part).
1. Be Careful with Cofounders
True. A piece of advice my dad gave me was that you should always try to avoid getting someone else involved if you can.
2. Startups Take Over Your Life
False. You can let it, you can also let a job at a billion dollar company take over your life. You can not let it take over your life. People at StyleFeeder have moved, had kids, done the normal “life” things.
3. It’s an Emotional Roller-coaster
False. You can let it be one, but you’re not really serving anyone’s interests if you are. You might succeed wildly, you might fail miserably. Your life could change for the better, but it’s only going to change for the worse if you’re dumb and you put yourself in that position.
4. It Can Be Fun
True.
5. Persistence Is the Key
True, but this applies to life, not just startups.
6. Think Long-Term
True. Keep in mind that long term means profitable. No matter what’s in the bank if you’re not profitable you’re dying.
7. Lots of Little Things
True. Details matter. Alot. Spend the whole day shaving 10ms off your average response time. Spend a night picking out a font. Argue with your designer over ridiculous things nobody else will notice.
8. Start with Something Minimal
True. Note, this doesn’t mean you should put out unfinished crap and call it “Beta”. Just get it to the point where it’s useful and cohesive.
9. Engage Users
True.
10. Change Your Idea
True. More accurately “be willing to change your idea”. Ideas are cheap and plentiful. I could keep a dozen people busy building things at StyleFeeder that are great ideas, but that’s not how we run things so we need to chart our course thoughtfully and constantly.
11. Don’t Worry about Competitors
False. Feel free to define your competition, but you need some or nobody will take you seriously. Then worry about them because they’re trying to take everything you have.
12. It’s Hard to Get Users
False. Users are easy to get, if you have something worth using. Probably not as many as you want, but that’s why they call it work.
13. Expect the Worst with Deals
False. Be realistic, not pessimistic. Most deals will suck, some will cost you money, some will work out, but without them, you’re likely dead.
14. Investors Are Clueless
False. They can be, but they can also provide valuable perspective.
15. You May Have to Play Games
True. You might, but you shouldn’t. If you’re weak on something, fix it or do something else. Don’t hide it.
16. Luck Is a Big Factor
True. Not everyone founds a company on the right side of a stock bubble and sells it for far more than it could ever be worth. Luck is also a reason not to be pessimistic about deals and opportunities.
17. The Value of Community
True. Overrated, but true.
18. You Get No Respect
False. I get the same or more respect as a key employee at a company trying to do something new than I did as a cog in the corporate world.
19. Things Change as You Grow
True, but if that’s surprising you probably shouldn’t be doing this.
“Unconsciously, everyone expects a startup to be like a job, and that explains most of the surprises.”
False. I’m actually surprised by how much like a job it is, just better.