How To Make a Web Site the Modern Way. Part 0: Introduction

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

Starter Assets

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 »

My Presentation From Last Night's JavaScript Meetup

January 29th, 2010 by Rob Larsen

Here's the link I promised:

JavaScript 101: Adding Interactivity to Your Site Using the World's Most Popular Programming Language

*A note on the title- I'm just repeating what Douglas Crockford said. To remix the quote about IBM, no JavaScript developer ever got fired for quoting Douglas Crockford**

**Don't quote me on that

Again, I want to thank everyone that came out. It's always fun to attend the Boston JS Meetups and presenting there is even cooler.

Video of My HTML5 + Wordpress Presentation From WordCamp Boston

January 28th, 2010 by Rob Larsen

And here it is:

Slides.

Just in time for me to do it all over again tonight at the Boston JavaScript Meetup. Well, not completely all over again as it's a new presentation tonight, but it'll still be two times at NERD this week.

My Personal View of Browser Market Share is Pretty Sweet- Firefox Rules, Chrome is Massive, IE6 is Nearly Dead

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 »

Short Notice- I'm Presenting at the Boston JavaScript Meetup This Thursday, January 28, 2010

January 24th, 2010 by Rob Larsen

Check it out:

JavaScript 101: Using JavaScript to Add Interactivity to Your Web Site

Rob Larsen will lead an interactive session outlining the basic steps to getting started with using JavaScript using modern techniques. For the beginner it will serve as a road map to using JavaScript with confidence. For the more advanced user it will serve and a forum to discuss fundamental best practices as Rob will be soliciting feedback and discussion throughout.

It'll be basically a step by step on getting JavaScript onto a page, in a modern, "best practices" way. Starting with attaching the script to the page using the script tag all the way through writing a function and attaching it to an element. Each step will be split into three levels of discussion:

  1. For the beginners each will simply be presented as "this is how you do it"
  2. For the intermediate user it will be "this is why we do it this way"
  3. For the advanced user it will be a question- "where does this fall apart and how can we make it better"

It should be fun. I hope to see you there.

Some Photos From WordCamp Boston Posted to Flickr

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.

WP Security Presentation. WordCamp Boston 2010

Read the rest of this entry »

HTML5 + Wordpress Resource Links From my WordCamp Boston Presentation

January 23rd, 2010 by Rob Larsen

Me, PResenting at WordCamp Boston

Owing to the contrast on the A/V system, my last slide was illegible, so here are all the links that folks couldn't see.

The presentation itself:
HTML5 + WordPress

And the resource links:

The working group
http://www.whatwg.org/
Mark Pilgrim's HTML5 book
Dive into HTML5
The Modernizr library
Modernizr
The outliner
http://gsnedders.html5.org/outliner/
The post talking about Kubrick
I’m Messing Around With an HTML5 Version of the Default WordPress Theme

My other sites:
DrunkenFist.com (art portfolio)
@robreact

I'll have video of the presentation up shortly (I hope!)

Two Front End Development Interview Questions No One Has Been Getting Recently + One I'm Afraid to Even Ask

January 22nd, 2010 by Rob Larsen

Yes, I'm still helping out with screening candidates. I haven't yet interviewed someone to replace me, but there's still a week to go.

Anyway, we've had a couple of technical questions that candidates universally failed to answer. Why share them here? For starters I just want to know if we're crazy to expect people to know these. I also like the idea of a kind of "easter egg" for candidates. If someone does enough research to find my blog and read this post, they've shown me something, even if it's not the answer to one of the questions posed below.

The two that have surprisingly turned into stumpers (at least for the last five or six folks I've interviewed)

  1. What is hasLayout?
  2. What's the significance of setting the body text to .625em?

And the bonus question that I want to ask, but don't, because it's kind of goofy to say out loud

  1. What's "The Mark of the Web?"

Answers after the jump.
Read the rest of this entry »

Recent Reading (JavaScript Library CDNs, User-Agent Strings, Hacks, Hacks and Hacks)

January 20th, 2010 by Rob Larsen

Should You Use JavaScript Library CDNs?

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.

History of the user-agent string

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.

Comprehensive List of Browser-Specific CSS Hacks

I hate me some browser hacks. But that's a mighty fine list.

Detecting browsers javascript hacks

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.