- Jimmy James, News Radio (Stephen Root)
- Al Swearengen, Deadwood (Ian McShane)
- Omar Little, The Wire (Michael K. Williams)
Yours?
P.S. Tubalcain
Good stuff, updated weekly(ish)
Yours?
P.S. Tubalcain
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:
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.
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!
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.
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.
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.
Valve Software has a distribution platform called Steam. It’s very simple, and very nice. You buy a game through Steam, and download and install it. When you get a new computer, you sign into steam, and re-install all your games. Don’t play a game much anymore? Delete it, you can always go back and get it. No CDs, no need to back stuff up, etc.
Dropbox is a relative new service that let’s me have a folder on my computer at work, and at home. I can put a PDF I want to read later in the folder from work, and it automatically uploads it, and my home computer automatically downloads it. Dropbox also lets me share folders and is starting to integrate with other services.
Both of these services have other features that are nice, but what I’d like to see is something that would basically let me buy a new computer (or reformat my current one in the wake of a virus or spyware or disk failure), and just go through and download the things I want on it. It would also keep things in sync, maintain checkpoints and versions. So my photos are in a folder, but they’re also on Flickr. Changing it in one place changes it in another. My music is there, and can be streamed when I’m at a friends house. The possibilities are pretty open.
It’s basically the benefits of an X-windows remote environment I guess, though that could even be integrated if it had a thin client into a virtualized box you paid by the hour for… I’ve seen lots of pieces of this out there, but nobody that’s really working on the basic central component.
My venerable iPod had a bad run-in with an open sunroof and some precipitation, and my other one is still packed, along with my music drive. After a couple months of tinkering with Pandora and Last.fm, I needed to go out and find some good music the old fashioned way. That means without the benefit of a recommendation engine that thinks my affinities for various flavors of hip-hop and bands from France (Daft Punk, Air) mean I will like French hip-hop. Which I don’t. Because it’s horrible. French is well suited for poetry and indignation, but rapping … non.
So, I trawled the Amazon mp3 store for a while and ended up with a basket of albums:
1. Lily Allen’s “It’s Not Me, It’s You” – Decent but disposable pop, previous album was far more interesting.
2. Franz Ferdinand’s “Tonight” – Low expectations were met, I don’t even know if I’ve listened to it twice.
3. Andrew Bird’s “Noble Beast” – I haven’t really give this one a chance yet, it’s kind of wimpy and I haven’t really found the right situation to listen to it yet.
Then things started to get interesting.
4. Passion Pit’s “Manners” – As long as you skip the first song, this is a great, fun album. There’s hints of Michael Jackson, Daft Punk, some 70s and 80s pop, but it’s fresh, not retro. I was hooked on it for a week or so.
One of my favorite albums from 2008, though it was released in 2007, was Panda Bear’s “Person Pitch”, which might best be described as listening to a Beach Boys cover band playing at Arlington station while you’re at Symphony. I never realized that Panda Bear was a part of the Animal Collective, but when I found out, I bought:
5. Animal Collective’s “Merriweather Post Pavilion” – This is a complicated album, that I just couldn’t really get into at first, but after a while, I came back to it and enjoyed it much more.
Serendipity struck when I bought the final album in the list, thinking it was another Animal Collective member, which it’s not, but given the name you can understand my confusion.
6. Grizzly Bear’s “Veckatimest” – The first time I listened to this album I was picking on some Radiohead wannabe vibes, but then I tried again and picked up a couple things and liked it more. Then again, and again, and again, for my entire commute to and from work each day. Each day I have a different favorite song. I haven’t enjoyed an album this much in years, probably since Atmosphere’s “Sevens Travels”. If you want something interesting, a little outside of the box but not as weird as Panda Bear or as over the top as Passion Pit, you should definitely check it out.
This post makes a case for having a specialized “user experience designer”. The author makes the case that usability and interaction design is too complicated to be handled by someone responsible for other tasks. This is false.
If you are on a team responsible for a website or something similar, EVERYONE on your team should understand usability and interaction design. It’s not a special skill, it’s core competency, like communication skills and ethics. The real experts out are rare, and I mean “you’ll probably never even meet one” rare. Most people who specialize in it are just washed-up designers or coders.
You need your designers thinking about how people will interact with your program, or you’re going to end up with brochureware. You need you programmers thinking about it or you’re going to end up with a clumsy UI. You need your QA people to think about it or you’re going to end up with spotty test plans. You need your managers thinking about it to understand what’s important. You need your salespeople thinking about it to compare against your hapless competition.
Having someone responsible for it is a bad idea because not only are they probably going to suck at it, it’s just going to make everyone else lazy.
A moment of silence please. Not for Michael Jackson. Not for Farrah Fawcett, or Billy Mays, or Robert McNamara. No, this is far worse, a beloved piece of the American landscape has suffered a terrible blow.
The Slim Jim plant … the ONLY Slim Jim plant … has exploded.
It may take months to recover, but we’ll get through this.
Stay strong.
NB: My condolences to the families of the 3 heroes that perished in the incident.