White Lights Lead To Red Lights
Mark Pilgrim
December 7, 2005
Where the hell have I been?
Writing books
And having kids
How to write
- No shortage of advice
- “How to write a novel in 30 days”
- “How to write a resume”
- “How to write a better weblog”
What to write
- No shortage of advice
- “10 great blog post ideas!”
- “50 great short story plots!”
- “100 books waiting to be written!”
When to write
How to become an expert
- Write code
- Make mistakes
- Get yelled at
- Fix your code
- Write about what you learned in step 4
Why aren't there more experts?
- Most people give up before step 4
- The rest give up before step 5
Dive Into Python
Little-known fact:
- I learned Python in August, 2000
- It filled me with wonder
- I started writing Dive Into Python in September, 2000
- The first version was riddled with errors
- ...which people kindly (and not so kindly) pointed out
- ...and I promptly fixed
Dive Into Python, 3 years later
- September 2003: Apress
- It was much harder than I expected
- diveintopython.org was wildly popular
- Professional development
- Became an expert
- Lost the sense of wonder
Greasemonkey
Little-known fact:
- I'd never written a line of JavaScript until this spring
- Then I found Greasemonkey
- It filled me with wonder
Dive Into Greasemonkey
- First Greasemonkey script in March, 2005
- Dive Into Greasemonkey in April
- Greasemonkey Hacks in May
- First security hole in July
- ...and learned all about XPCNativeWrappers
- I may never write a line of JavaScript again
When to write
- Write when you’re filled with wonder
- If you wait until you’re an expert, it’s too late
- Write when you can’t not write
When to stop writing
- Just before you lose your sense of wonder
- “Quit while you’re ahead”
- Burnout is what happens to experts who don’t know when to quit
- Rebirth
The future of the web
What’s going on?
- Greasemonkey
- Atom
- Microformats
- WHATWG
Greasemonkey
Greasemonkey
- A reaction to an exceptionally poor redesign
- Scripts are content-focused
- Unofficial web services
- “My DOM is my passport; verify me”
- Brittle, backwards, broken
Atom
- A reaction to the ever-shifting RSS spec
- RFC 4287
- RSS without the sociopaths
- Real content model
- ...primarily for transporting HTML
The Zen of Microformats
- A reaction to the “Semantic Web” (whatever that is)
- Invisible data sucks
- Humans first, machines second
- Humans browse the web
What's wrong with RDF?
- RDF has a great data model
- Rich semantics
- Infinitely extensible
- Optimized for machines
- Machines first, humans second
HTML
- HTML has a crappy data model
- Poor semantics
- No apparent extensibility
- And a long, sordid history of abuse
Hacking HTML
- You know those weird-looking elements in the appendix of your HTML book?
- The ones that aren’t <TABLE> or <EMBED>
- <ADDRESS>, <CITE>, <DFN>, <DL>, <Q>, ...
- Some crazy dreamers got together and decided to resurrect them
- They call it the “small-s semantic web”
Hacking HTML extensibility
- Despite first appearances, HTML is extensible
- <head profile="...">
- New link relationships with rel
- New semantics with class
- class is a space-separated list of keywords → infinite extensibility
- Cry if you want, but it works
Microformats so far
- rel=nofollow
- rel=tag
- rel=license
- XFN
- hCard
WHATWG
- A reaction to XHTML 2
- HTML forms suck
- Nobody understands XForms
- Why can’t we just have better forms?
- And while we’re at it, let’s document all the crap that browsers actually support
- ...like XMLHttpRequest
- ...and document.write
HTML 5
- I look at XHTML 2 and all I see is politics
- I look at HTML 5 and all I see is passion
Common themes
- Pushback against bad ideas run amok
- Greasemonkey: Adrian Holovaty, Aaron Boodman (allmusic.com)
- Atom: Sam Ruby, Joe Gregorio (RSS, SOAP)
- Microformats: Tantek Çelik (RDF)
- WHATWG: Ian Hickson (XHTML 2)
- ...and many others
Common themes
- Expertise
- Burn out
- At the right moment, a rebirth
- New-found passion
- A sense of wonder
The future of the web
...is HTML