March 1st, 2010 by Rob Larsen
I launched the redesign of DrunkenFist.com last night. It's my second HTML5 site. I took a lot of what I learned from the work we did on A Wider Net and applied it to a much larger project. Fun times.
A couple of notes.
Read the rest of this entry »
February 17th, 2010 by Rob Larsen
This won't be the longest entry in this series, but I did want to take a second to outline the way I organize files. You can come up with your own scheme. There are many. This one works for me, so I use it. The basic idea is to keep everything in a logical, easy to find place every time I make a site.
Let's take a quick look at the generic file structure I use:

Grab a copy from the starter assets repository if you'd like to play along at home.
Let's look at each in turn:
Read the rest of this entry »
February 11th, 2010 by Rob Larsen
There's a lot of content this week, including about 5 hours of video embedded right in the page for your viewing pleasure. Enjoy.
Peter Merholz from Adaptive Path talks up analytics. Don't I feel like a smart guy with all my fancy analytics experience?
That's probably something I don't talk enough about here- analytics. I've got a ton of experience with both Omniture and Google Analytics, doing some pretty advanced work. I should share that.
Anyway, good article talking about the UX benefits of analytics data. Check it out.
This is a little resource page from one of the WordCamp Boston Ingite talks. Wordpress Short Codes are clearly awesome and I don't use them enough. I aim to change that.
I'm actually using them for the table of contents on my ongoing How To Make a Web Site series.
Read the rest of this entry »
February 8th, 2010 by Rob Larsen
I have a real post queued up to go in an hour or two. To tide you over until then, I present the web development quote of the week:
Since my attempts at capturing web developers’ hearts and minds by publishing fundamental research have failed miserably but my thirst for attention continues unabated, today I will once more shout at iPhone developers. That’s proven to work.
More specifically, today I will shout at web developers who think that delicately inserting an iPhone up their ass is the same as mobile web development.
My emphasis.
Read the rest of the excellent post* over at Quirksmode:
The iPhone Obsession.
*it really is. It starts off with the above quote but goes deep into some issues that people ought to keep in mind when working on mobile sites- especially when faced with the titular iPhone obsession
February 8th, 2010 by Rob Larsen
HTML + CSS + JavaScript = Content + Style + Behavior
This the one of the guiding principles of the way I make sites. We want to keep our content/data, in the form of HTML (HyperText Markup Language) code, neatly separated from the rules that tell the browser what it's supposed to look like, in the form of one or more CSS (Cascading Style Sheets) and rules that tell the browsers what it's supposed to do, for our purposes, written in JavaScript.
Why?
Well, there are many reasons. I'll give you two big ones and then it's onto the next section. We've got a lot to cover.
Read the rest of this entry »
February 4th, 2010 by Rob Larsen
Well, I leaked it earlier this week, so I might as well get started.
Welcome to How to Make a Web Site the Modern Way, a blog series outlining, to the best of my ability. how to build an HTML page using today's best practices. The focus won't be on specific coding techniques, although there will be some of that, it will be on how the pieces fit together. Without experience, it's tough to know how the pieces of a web page fit together in the best way. I've got some of that experience and I'd like to share it with people. So at the end of all of this, I'm hoping this series will serve as a one stop shop for people looking to understand the big picture.
First up: The Anatomy of an HTML Page .
Some basic principles:
- Fast: I want pages to be as fast as possible by default.
- Findable: This isn't really the same as SEO, but it's kind of like a cousin to it. I want to make pages spiderable, human scannable, computer readable and generally information rich.
- Standards compliant: I'm not a standards zealot, but I try my best to follow web standards wherever possible.
- Accessible: I try to make pages as accessible as possible.
- Usable: Usability is a deep topic, but there are things you can do, by default that will enhance the usability of your site.
- Intuitive: I want developers to look at the stuff I do and say "hey, that makes sense." I also want it to make sense to me when I return to it in six months
- Breakable: Which is a funny way of saying "graceful degradation," a concept that colors a lot of what I try to do. The idea being- if something's going to break, or not work as expected, make sure that it's not totally screwed up
The Rest of the Series
February 2nd, 2010 by Rob Larsen
I just wanted to point folks to the small project I started on Google code- Starter Assets.
It's based on some work I did at Cramer to standardize the development process there. The idea was to provide a standard set of files and a standard file/folder structure for people to start with whenever they were initiating a new project. I've expanded on it in this case to (eventually) include several doctypes (right now it's just xHTML strict- HTML5 will follow soon) and links to popular JavaScript libraries on the Google Ajax Library CDN (just jQuery for now.)*
To use, you'd just download or SVN export the folder that corresponds to the doctype/library combination that strikes your fancy and you're good to go.
I've released it in advance of a blog series I mentioned during my JavaScript presentation this past Thursday. It's a step-by-step tutorial on how I build web sites called, "Building a Modern Web Site."
Read the rest of this entry »
January 26th, 2010 by Rob Larsen
Here are the numbers for DrunkenFist.com in the year 2009. There were 614,333 visits to that domain last year and the top browsers broke down like this:
| Browser |
# of Visits |
% of Visits |
| Firefox |
342429 |
55% |
| Internet Explorer |
162977 |
26% |
| Chrome |
35801 |
5.8% |
| Safari |
33545 |
5.4% |
| Opera |
22826 |
3.7% |
Read the rest of this entry »
January 24th, 2010 by Rob Larsen
Nothing groundbreaking. Just some atmosphere shots. The show was a lot of fun and it was great meeting everyone.

Read the rest of this entry »
January 20th, 2010 by Rob Larsen
Interesting reading. Here's the salient bit:
Or, more simply: If we use Google’s JavaScript Library CDN, we are asking the majority of our website visitors (who don’t have jQuery already cached) to take a 1/3 of a second penalty (the time to connection to Google’s CDN) to potentially save a minority of our website visitors (those who do have a cached copy of jQuery) 1/3 of a second (the length of time to download jQuery 1.3.2 over a 768kps connection).
That does not make sense. It makes even less sense as the download speed of your visitors increases. Try to avoid serving 20 or 30 kilobytes of content at the cost of using a 3rd party just doesn’t make sense.
We've used the Google CDN to serve jQuery at Cramer with no obvious complaints and I heartily recommend using the configurator/CDN option that Yahoo offers (for the unitiated, it builds a "just what you need" package to grab from their CDN, so you don't have to serve every YUI Module just to do x), but Billy Hoffman's article definitely makes me rethink the former.
If you didn't live through it (and I didn't live through the whole thing), now you can revisit the strange history of the user-agent string in just a few, well-written, minutes.
I hate me some browser hacks. But that's a mighty fine list.
We spent about 45 minutes running variations of the one-liners above in the console during a code-review last week. Fun times.
It sounded like this a couple of times:
"Wait, what?"
…
And finally… are you enjoying the jQuery advent calendar? I'm interested in running jQuery 1.4 against the demo code I build for my library presentation. I expect to be bowled over.