This is Steve Wortham's TypePad Profile.
Join TypePad and start following Steve Wortham's activity
Steve Wortham
Recent Activity
StackOverflow already has favorites. Just click the little star next to a question.
This Is All Your App Is: a Collection of Tiny Details
Fair warning: this is a blog post about automated cat feeders. Sort of. But bear with me, because I'm also trying to make a point about software. If you have a sudden urge to click the back button on your browser now, I don't blame you. I don't often talk about cats, but when I do, I make it co...
The sad thing is that in most cases you're going to be completely unaware of the little details that annoy your users.
It's only in the cases like StackOverflow in which you're reaching a huge audience that you'll actually receive sufficient feedback. So it helps to have UX experts on your team. I haven't done this yet, but it should also help to conduct some usability testing as Steve Krug demonstrates here...
http://www.youtube.com/watch?v=QckIzHC99Xc&feature=player_embedded
This Is All Your App Is: a Collection of Tiny Details
Fair warning: this is a blog post about automated cat feeders. Sort of. But bear with me, because I'm also trying to make a point about software. If you have a sudden urge to click the back button on your browser now, I don't blame you. I don't often talk about cats, but when I do, I make it co...
I guess this is a result of the same research, but Daniel Kahneman had a TED talk a couple years ago that I thought was interesting. After the talk is over (at around the 18 minute mark) he explains a bit about the correlation between income and happiness.
The video is here...
http://www.ted.com/talks/lang/en/daniel_kahneman_the_riddle_of_experience_vs_memory.html
Buying Happiness
Despite popular assertions to the contrary, science tells us that money can buy happiness. To a point. Recent research has begun to distinguish two aspects of subjective well-being. Emotional well-being refers to the emotional quality of an individual's everyday experience — the frequency and...
I think there's a difference between the truth and brutal honesty.
As the old adage goes, "If you don't have anything nice to say, don't say anything at all." I think Clickok mentioned the same concept in different words.
Trust Me, I'm Lying
We reflexively instruct our children to always tell the truth. It's even encoded into Boy Scout Law. It's what adults do, isn't it? But do we? Isn't telling the truth too much and too often a bad life strategy – perhaps even dangerous? Is telling children to always tell the truth even itself th...
Jeffrey, that's what I was thinking as well. You'll notice that the real-time simulation for each of Bret's demos are different and highly optimized for the task at hand. It'd be difficult to create a general-purpose IDE with all of this built-in. Maybe a good starting point would be a series of pre-configured simulators with certain behaviors which you can use to test your code.
Visualizing Code to Fail Faster
In What You Can't See You Can't Get I mentioned in passing how frustrated I was that the state of the art in code editors and IDE has advanced so little since 2003. A number of commenters pointed out the amazing Bret Victor talk Inventing on Principle. I hadn't seen this, but thanks for mention...
I watched Bret's talk when it was mentioned in the comments of your last article. It was truly inspiring.
Of course, this isn't a new idea. His demos are just particularly well done. In 3d programming it's common to find examples with built-in control panels and sliders so that a game designer can actually fine tune parameters and see the results in real-time.
The ability to instantly view your results is awesome. It's something I've done a few times now in some of my own tools. I built regexhero.net so that everything happens in real-time to drastically speed up the process of writing regular expressions. Regex Hero certainly wasn't the first to do this. There are several regex testers that at least have the instant highlighting capability.
I also built 060calculator.com to work without a "calculate" button. I realized adding a button to the UI is completely unnecessary when it's so inexpensive to perform the calculation on the fly. It's a simple idea but many of the tools we use everyday are still lacking.
Visualizing Code to Fail Faster
In What You Can't See You Can't Get I mentioned in passing how frustrated I was that the state of the art in code editors and IDE has advanced so little since 2003. A number of commenters pointed out the amazing Bret Victor talk Inventing on Principle. I hadn't seen this, but thanks for mention...
We used to use this technique at my last job a lot. Only we called it the dumb rock routine. Usually we'd walk another developer through the problem we're having and end up finding the answer ourselves half the time. In this case the other developer is the "dumb rock". But we could have just as easily substituted a rubber duck.
Or... nowadays I tend to talk to myself a lot. That works too.
Rubber Duck Problem Solving
At Stack Exchange, we insist that people who ask questions put some effort into their question, and we're kind of jerks about it. That is, when you set out to ask a question, you should … Describe what's happening in sufficient detail that we can follow along. Provide the necessary backgroun...
I sort of like Amazon's approach to this problem. They have a two-stage authentication setup which is a nice compromise between security, performance, and convenience.
Essentially, if you're a registered user and you return to Amazon.com to do some shopping, then you're half-way logged in by default. You can browse your wishlist, or look at Amazon's recommendations for you. You can even look at reviews you may have given.
But if you decide to make changes, view past orders, or do anything that reveals sensitive information, then Amazon forces you to log in for real.
However, after you log in for real, Amazon doesn't switch you over to HTTPS for the entire site. This might be a mistake, and is likely something they'll change in the future.
Should All Web Traffic Be Encrypted?
The prevalence of free, open WiFi has made it rather easy for a WiFi eavesdropper to steal your identity cookie for the websites you visit while you're connected to that WiFi access point. This is something I talked about in Breaking the Web's Cookie Jar. It's difficult to fix without making ma...
Jeff,
You inspired me to do a little testing of my own. I've been moving stuff over to Amazon CloudFront since I made a big website release yesterday. And one thing that's been troubling me is their lack of native gzip support. That, and the fact that they're still a little slow in some parts of the world motivated me to look around.
I found a good alternative that's also very cheap -- RackSpace Cloud Files. They use the Akamai network. I documented my findings, including my performance tests here...
http://blog.bucketsoft.com/2011/06/amazon-cloudfront-vs-rackspace-cloud.html
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
FYI, www.webpagetest.org allows you to select a location you want to test from. There are 28 locations to choose from worldwide. So you can get an idea of how your site is performing in different parts of the world.
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
Jeff,
What does the "check redirects" section of the code do? While it's only 50 ms, it looks like the 2nd slowest thing in the list. Is that by chance the MVC routing engine at work? And are you by chance using regular expressions in your routing? I just wonder if there's room for improvement there.
Steve
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
Brandon,
ASP.NET at its core is very good. It performs well and the tooling is excellent when you use Visual Studio. So with some practice you can be very productive with it, and crank out quality stuff.
ASP.NET Web Forms has had issues over the years though, essentially promoting a lot of bad practices on the web. The whole viewstate/postback methodology bled into many built-in controls. And that in turn led to usability problems with form submissions, and many websites have suffered. I know, because I built Web Forms for 8 years.
ASP.NET MVC, however, promotes a completely different way of thinking that is more web friendly in general... friendly URLs, no more viewstate/postback mess, and so on.
I wrote an article comparing the two in greater detail awhile back...
http://swortham.blogspot.com/2009/10/when-to-use-aspnet-web-forms-and-when.html
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
Very interesting post by the way. Looks like you guys made some truly remarkable improvements.
I've always been obsessed with performance since my OpenGL programming days. And so naturally I've spent a lot of time optimizing my sites as well. Your advice is spot on.
Oh, and I actually downloaded the MVC mini profiler the other day, and I'm planning on using it next week. I'm looking forward to it.
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
It'd be nice if Amazon Cloudfront was a little faster. But it's certainly not bad. The real win is the price for the little guy. There's no monthly fee since pricing is purely based on usage. And for the little images I'm hosting through their service, it's costing me about $0.10/month.
Performance is a Feature
We've always put a heavy emphasis on performance at Stack Overflow and Stack Exchange. Not just because we're performance wonks (guilty!), but because we think speed is a competitive advantage. There's plenty of experimental data proving that the slower your website loads and displays, the less...
I've never really lived in an area where walking (or a scooter) is necessary or encouraged. First I lived in Dallas, which is massive, spread out, and you absolutely need a car to get around. Now I live in Colorado Springs, which is a little smaller but pretty much has the same story.
So my personal form of geek transportation is my turbocharged, AWD, Subaru with a driver-controlled center differential, intercooler sprayer, and a big wing. It's my guilty pleasure.
If I ever move to a place like New York I might have to cave in and get a scooter too. But can it be turbocharged? Hmm.
Geek Transportation Systems
On my first visit to the Fog Creek Software offices in 2008, I was surprised to see programmers zooming around the office on scooters. I didn't realize that scooters were something geeks would be into, but it sure looked like fun, albeit borderline dangerous fun, on the 25th floor of an office ...
I've always been impressed with Chrome's update mechanism. Most people don't care to be bothered with update notifications. Some developers might complain, but if the whole update thing can happen silently (like in Chrome) it's so much nicer for the average user.
In fact, Silverlight enables functionality that is very similar. Back when Silverlight 3 came out I was delighted to learn the details of its out-of-browser install/update mechanism. You're free to code this however you'd like of course. But I chose to copy the Chrome way of doing things. My Silverlight app silently checks to see if there is an update when it first starts. If there is an update, the update is downloaded. When the app is restarted, the update is installed. It was an incredibly easy thing to code and like Chrome, it's extremely fast & dependable.
The Infinite Version
One of the things I like most about Google's Chrome web browser is how often it is updated. But now that Chrome has rocketed through eleven versions in two and a half years, the thrill of seeing that version number increment has largely worn off. It seems they've picked off all the low hanging ...
I've had my 80GB Intel X25-M for 10 months now and it hasn't failed yet. But I've run out of space. I was using it only for the OS and programs. All my documents/pictures/video were on a 1 TB HDD. Well, the Windows folder is more massive than ever at 22GB and the two Program Files folders add up to 25GB. So just yesterday I replaced it with a 160GB Intel 320 series. I'm hoping it'll be a dependable drive.
The funny thing about SSD reliability is that it would hardly be a concern if manufacturers only sold SLC drives. With SLC, 1 bit of data is reserved for each cell. But everyone is buying the MLC drives because they are at least 5X cheaper. MLC stores multiple bits per cell, and as such it can be more difficult (less reliable) to get a positive fix on a value. So much so, that in fact an SLC drive is expected to live around 10X longer than an MLC drive.
It's a couple years old, but there is an excellent article on Tom's Guide covering some of these finer points...
http://www.tomsguide.com/us/ssd-value-performance,review-1455.html
They also talk about wear leveling algorithms and how a drive's lifetime increases with capacity. If all other things were equal, my 160 GB drive should have roughly double the lifetime of my 80 GB drive that preceded it.
The Hot/Crazy Solid State Drive Scale
As an early advocate of solid state hard drives … The State of Solid State Hard Drives (October 2009) Revisiting Solid State Hard Drives (October 2010) … I feel ethically and morally obligated to let you in on a dirty little secret I've discovered in the last two years of full time SSD owne...
Some of the Mini-PCs NewEgg has for sale look interesting as well. Many of them seem to made with this application in mind.
I'm especially interested in this one since I don't yet have a BluRay player...
http://www.newegg.com/Product/Product.aspx?Item=N82E16856173007
Revisiting the Home Theater PC
It's been almost three years since I built my home theater PC. I adore that little machine; it drives all of our family entertainment and serves as a general purpose home media server and streaming box. As I get older, I find that I'm no longer interested in having a home full of PCs whirring a...
So is this book teaching you how to become a better consumer, or a better marketer?
In any case, excellent post.
9 Ways Marketing Weasels Will Try to Manipulate You
I recently read Predictably Irrational. It's a fascinating examination of why human beings are wired and conditioned to react irrationally. We human beings are a selfish bunch, so it's all the more surprising to see how easily we can be manipulated to behave in ways that run counter to our ...
The thing about the Intel X-25M that appealed to me was its superior performance with handling tons of simultaneous operations. It doesn't have the highest peak transfer numbers, but it's the performance in my real-world scenarios where it shines. Intel's implementation of native command queueing has played a big part in this.
There's a good example of that in action shown in this comparison test with a "fast" WD Raptor hard drive...
http://www.youtube.com/watch?v=T_Jz7IMwBt4
The nice thing is that this drive has withstood the test time. It was top dog when it was introduced 2 years ago, and it's still among the best. Since it's such a mature product I think it has proven itself to be a reliable one as well. So we've outfitted over 25 workstations at our office with the 80GB version of this drive. It's only been 6 months but they've been fine so far.
Revisiting Solid State Hard Drives
It's been almost a year since I covered The State of Solid State Hard Drives. Not a heck of a lot has changed, but the topic is still worth revisiting, because if you care at all about how your computer performs, solid state hard drives remain a life changing experience. Here's why: A solid s...
Beautiful. My thoughts exactly. I never thought of the connection to Groundhog Day though. That's pretty clever.
But yeah, a couple years ago I was a little peeved about some SEO & marketing practices I was observing at the time. SEO, marketing, and A/B testing are all important to the success of an online business, of course. But there's a right way and a wrong way to go about it.
I wrote down my thoughts on subject it in my article titled, "Give and You Shall Receive: A Guide to Improving Your Website." The article is all about building the best possible user experience in all possible aspects. I bring up this idea that what's best for your user is also best for you.
Groundhog Day, or, the Problem with A/B Testing
On a recent airplane flight, I happened to catch the movie Groundhog Day. Again. If you aren't familiar with this classic film, the premise is simple: Bill Murray, somehow, gets stuck reliving the same day over and over. It's been at least 5 years since I've seen Groundhog Day. I don't know...
I like Linq-to-SQL. I think it makes a lot of things a lot easier.
However, because I'm a speed freak I've adopted a slightly different strategy. Plainly, I like to use Linq-to-SQL for all of the one-record CRUD statements. I'm talking things like updating the user's name, selecting their email address, adding a new user, etc. These statements are all very simple even on the SQL side of things, but writing them in Linq makes them even easier. And in fact these type of statements typically account for 90% of the queries from my sites.
The other 10% of queries are more involved with complex joins, sometimes utilizing full-text searching and they act on a much larger set of data. So with those queries I go all out. I'll write an efficient stored proc so that SQL server can cache those query plans aggressively and get the last bit of performance out of them. And then I'll call the stored proc from ADO.NET with the most performant option, the SqlDataReader. It's a little more code to do all of this. But to me it's worth it.
Compiled or Bust?
While I may have mixed emotions toward LINQ to SQL, we've had great success with it on Stack Overflow. That's why I was surprised to read the following: If you are building an ASP.NET web application that's going to get thousands of hits per hour, the execution overhead of Linq queries is goi...
"What is the max RAM these things are capable of? Will it run Visual Studio 2008 with SQL Server 2008 installed? I'm not looking to run production systems or anything but if I can install VS 2008 + SQL 2008 and do some development on the go, without it choking, then that is fantastic." - OptimalSolutions
I upgraded mine to 4GB RAM, which is its theoretical max. That was the other reason I chose the Acer 1410. Most other netbooks are only capable of 2GB RAM. And I haven't tried it but I'm sure it'll run VS and SQL Server. Personally, I've used it for RDP into my work computer. It's definitely usable for emergency development in a pinch.
A Democracy of Netbooks
As a long time reader of Joey DeVilla's excellent blog, Global Nerdy, I take exception to his post Fast Food, Apple Pies, and Why Netbooks Suck: The end result, to my mind, is a device that occupies an uncomfortable, middle ground between laptops and smartphones that tries to please everyone...
I've been very anti-laptop for years. I always contended that I can be much more comfortable and productive on a desktop with a nice monitor, fast hard drive, better performance.
But of course, portability is nice to have for travel every now and then. The problem from my perspective is that laptops have grown so much over the years.
So a few months ago I broke down and bought a laptop. I chose the dual core Acer AS1410 you mention in your post here. Acer calls it a notebook, other sites call it a netbook. Whatever you call it, it's small, light, and capable.
Recently I went on a business trip and took the mini-computer with me. I found that it'll fit on one of those tiny fold down trays on an airplane even with a ginger ale sitting next to it. And then I can fit it in my slim netbook case and slide it into the seat pocket with all the magazines when I'm not using it. The Acer just made sense for that trip.
A Democracy of Netbooks
As a long time reader of Joey DeVilla's excellent blog, Global Nerdy, I take exception to his post Fast Food, Apple Pies, and Why Netbooks Suck: The end result, to my mind, is a device that occupies an uncomfortable, middle ground between laptops and smartphones that tries to please everyone...
Steve Wortham is now following The Typepad Team
Mar 4, 2010
More...
Subscribe to Steve Wortham’s Recent Activity
