As seen on Google Code’s new and improved source browser.
“I hold that simplicity is the most important attribute of design,” I say. To which Tufte would reply, “No, you don’t.”
Today it occurred to me that, after a little over ten years of basic fluency in HTML, I have absolutely no idea why the href attribute is named “href”. Why not “url”, “link”, or even just “ref”?
I didn’t know it was possible to build such nice closed-source programs.
“The MIT guy did not like this solution because it was not the right thing.”
Did I ever tell you about the guy that spent the better part of a day making his site’s layout entirely em based …
Somebody pinch me; this must be a nightmare.
How to understand what those barbarians are doing over there and why your going to keep on hearing about it.
I’m pleased to announce the first public release of a small project I’ve been working on: bcat is a command line utility that streams text or HTML input to a web browser. Input is unbuffered and displayed progressively as it’s read from standard input, so bcat works great with programs that generate output over longish periods of time like build tools, tail(1), etc. It’s also useful for previewing HTML output when working on Markdown, Textile, AsciiDoc, Ronn, DocBook, etc. source files.
The plan is to bring as many of TextMate’s excellent HTML output capabilities as is feasible to the shell and to editors like vim or Emacs.
Mustache is my favorite template language by far. By far. This is a great example of why. It solves every problem simply and elegantly, or it doesn’t solve it all. Here’s the syntax in its entirety. In his post, Chris talks about how adding very simple lambda support solved the cache block problem. It’s just as suitable as solution for embedding Markdown in templates.
New JavaScript based text justification library looks promising. The default HTML/CSS text justification built into every browser has always sucked, due mostly to lack of word hyphenation.
One of the places I’d really like to have good justification is in Ronn’s HTML based man pages. It uses text-align: justify currently, but I’ve been considering making it non-justified because it’s so horribly bad. Compare it to the proper justified / hyphenated text generated by groff when viewing manpages in a terminal. It’s night and day.
Oh neat. You can drop the type='text/javascript' from your <script> tags, type='text/css' from your <style> (and/or <link rel='stylesheet'>) tags and the browsers won’t care. Also, in 2010, <b> and <i> are cooler than <strong> and <em>, and trailing slashes on self closing tags are lame.
Personally, I like these little tricks for making HTML more human readable but I can’t believe people are actually doing stuff like this in an attempt to compress HTML to gain network/browser efficiencies. I dare someone to actually benchmark those optimizations. Cutting your sucky EULA page in half and trimming away all that shit in your header/sidebar would be much more productive (but still barely worthwhile).
Google’s shipping official beta builds of Chrome for Mac and Linux. I’ve been using Chromium for a few months now and it’s definitely become my favorite browser. It needs a flash blocking extension and an ad blocker. I’m using userscripts for both but they’re a little janky.
Mark has published the second chapter in his upcoming book, Dive Into HTML 5. I still can’t get past the typography. It’s so pretty.
Jacob Kaplan-Moss somehow pulls a bunch of interesting contemporary web development issues into a coherent essay. This bit on what happens when web apps begin to mature is especially well stated:
This is an impossible situation for framework developers: by optimizing for a quick start, by focusing on common needs, we’re essentially guaranteeing future failure. Remember the “Rails doesn’t scale” pseudo-controversy last year? I guarantee it’s only a matter of time until there’s an angry “Django FAIL” moment.
Frameworks ought to gracefully fade away as you replace them, bit by bit, with domain-specific code. (This is what I meant, above, that inter-op is also a scaling issue.) Right now, they don’t.
I wish more people would write about their experiences growing out of the general purpose web framework. It’s a totally natural thing but most people seem hesitant to talk about it because it’s interpreted as an attack on the framework or community.
Big giant list of articles, essays, tutorials, and tech talks on making the web faster. This is part of a larger Google Code project that asks, “what would be possible if browsing the web was as fast as turning the pages of a magazine?”
My God the typography is stunning. There’s currently only a single chapter — on Canvas — but I imagine the others will fill in rather quickly.
Measure, Leading, Quotes, Rhythm, Widows, Emphasis, Scale, and Rags. Great piece.
Mark Pilgrim: “Anyway, I now realize that there were some hidden assumptions behind my design decisions in 2000. Some of those assumptions turned out to be wrong, or at least not-completely-right. Sure, a lot of people downloaded dip, but it still pales in comparison to the number of visitors I got from search traffic. In 2000, I fretted about my ‘home page’ and my ‘navigation aids.’ Nobody cares about any of that anymore, and I have nine years of access logs to prove it.”
I don’t think most people realize how little site navigation matters anymore. Your site’s navigation is google, topic sites, blogs, and feeds. The “website” is dead. Long live the individual useful resource.
Guyon Morée shows how JavaScript 1.7/1.8 have been moving more and more toward Python with a few side-by-side examples. List comprehensions and generators would definitely be extremely cool to have in browser land.
Via Ted Han (@knowtheory): “Hypertext allows information to be organized and connected in a variety of ways that provide the user with a flexible working environment. The following advantages highlight the benefits of working and learning in a hypertext environment…”
Finally, a sane looking sanitization lib that doesn’t try to do too much.
I’ve linked to this before and I’ll link to it again.
Smashing Magazine shows off a massive catalog of minimalist designs and then attempts to deconstruct them.
Includes a brief history of native support for getElementsByClassName in Mozilla and other browsers.
Stefano Mazzocchi: “I have a much simpler and humble goal here: give programmers some tricks and some advice in how to proceed to make their web pages look cleaner, more readable and, hopefully, more professional, elegant and original than before.”
Interesting Rails plugin from Viget Labs that adds ActiveRecord attribute helpers for various humane markup languages. The markdown variation supports both rdiscount and rpegmarkdown. Cool. Not sure how I missed it when it was released in August.
Using conditional comments to stick an “ie” classname on <body> so that you can target IE from a single CSS file instead of bringing in a separate stylesheet. Nice hack.
Apparently, Yahoo!’s indexer supports marking specific content on a page as “extraneous to the main unique content”. This lets you prevent headers, navigation, and other types of site-level crud from overwhelming the content and the search results will excerpt only content that’s relevant to the page.
From the Yahoo! Web Crawler FAQ: “… apply the robots-nocontent attribute to indicate to search engines any content that is extraneous to the main unique content of the page. Yahoo! Search observes the class='robots-nocontent' present on XHTML elements, such as div, span, and all others.”
Bill Burcham applies the technique of making form controls inherit style from their container in the Air Budd Form Builder Rails plugin. Cool.
I’m using this on all of my “linkings” index pages now (see here, for example). It works pretty well. I really like the idea of integrating a piece of the destination site’s visual identity instead of using a generic del.icio.us/bookmark icon. Some site’s with favicons don’t work properly, however, and I’d give anything to have another parameter that let me override the default globe icon (this one: ). It’d be nice if I could say, grab the favicon for this domain but if it doesn’t exist, give me the favicon for delicious.com (
).
Oh, nice. Here’s a high-level design document that describes the new cross-site XmlHttpRequest (their calling it, “XXX”) functionality and ties the other documents floating around out there together. It seems that servers will be able to signal that certain resources are accessible from other domains using HTTP headers or (gasp!) XML processing instructions (PIs). Weird.
Just landed on mozilla trunk a few days ago. See the draft spec for specifics.
Highly experimental HTML 5 validation service. More info and bookmarklets available on the about page.
“You can specify CSS based on viewport orientation which you determine via javascript and update the orient attribute of the body element. Target the browser with body[orient=‘landscape’] or body[orient=‘portrait’]”
Very nice and functional JavaScript based timeplot library. Looks good, shows data-points on mouse over, approachable API. Good stuff.
if any – Another hella-great minimalist design.
Hilarious! What Mark doesn’t know is that much of my “minimalist redesign” was ripped directly from what he’s had in place for 2-3 years; “administrative debris” was just a convenient alibi.
Compare (as in, diffs) the output of 15 different Markdown implementations. Includes every Markdown implementation I’ve ever come across and then some…
An implementation of Markdown in portable ANSI C that’s roughly 28.5x faster than the canonical Perl implementation on a 179K test file. Looks like a complete implementation; includes smarty and footnote extensions.
What Mark Pilgrim has been working on at Google for the past year or so: an encyclopedia of web development.
JavaScript based source highlighter with support for many languages in separate modules. Similar to the JavaScript Prettifier in that <pre><code> blocks are automatically detected and highlighted without an explicit language class.
Brad Neuberg (Google Gears): “Our historical closeness to the web creates a kind of myopia, where we can’t see how amazing it is. It’s a billion Library of Alexandria’s dropped into our laps.”
Sam Ruby filling in for Mark Pilgrim (and featuring Mark Pilgrim in the comments) skewers Joel Spolsky over his “Martian Headsets” piece on the IE8 standards-mode dilemma. I use the word “skewered” in the nicest way possible, of course.
“If you can’t control the text width the next best thing you can do to compensate for an overly wide text measure is to increase the leading.” — I never considered that but it makes sense.
From the comments: “HyperText is like Text, but includes links to and from other hypertexts.”
I need to give jQuery a serious look. Prototype’s Ajax.Request stuff is crippled (no PUT or DELETE) to the point of being worthless; the jQuery selector magic looks a lot more intriguing than what you get with Prototype, too.
Makes the background of hexadecimal color codes the respective color. So, background-color:#f00 will have a red background in the vim editing window. Nifty.
From the comments: “the only things i find [useful] in Web Developer Extension is the shortcut to clear cache… for other things i use Firebug…” — Me too!
Bert Bos and Håkon Wium Lie show off some of Prince’s more advanced CSS and HTML features, including styling page size, generating headers/footers, advanced use of the CSS content attribute, page numbering, cross-references, and table of contents.
Ahh, it turns out Håkon’s Wium Lie (Opera CTO and the guy who first proposed CSS) is on YesLogic’s board, makers of PrinceXML. I’m not sure how I missed that.
Holy crap, this is insane. Just let people run IE6 and IE7 as separate standalone browsers side-by-side with IE8. As James said in my previous post, they can even rebrand it as “Intranet Explorer” :)
This is a good idea. The w3c hosted validators tend to perform on the bad side of horrible. I’ve run the validator locally but never thought to look for mirrors.
Simple print typesetting using HTML/CSS. Targets the 80% of common print tasks w/ HTML/CSS. I’m going to be looking into mozilla’s cairo PDF output abilities within the next few weeks so it will be interesting to compare.
This trumps Leopard for most important Mac development this year as far as I’m concerned. Words cannot explain the hatred I’ve developed for booting up multiple Parallels VMs to get at IE.
“There is an important tradeoff between the computational power of a language and the ability to determine what a program in that language is doing.”
“… CSS 3 is a joke. A sad, sick joke being perpetrated by people who clearly don’t build actual web apps…”
“But when I say HTML mail still sucks, I don’t mean it sucks because support for design in e-mail today is like support for standards in web browsers in 1998. I mean it sucks because nobody needs it. It impedes rather than aids communication.”
Oh wow. I’ve been trying to find a single page that has every unicode character on it with its hex counterpart but this is pretty fantastic.
Looks like things are starting to heat up over here.
Yes! I’ve been doing this for a few months now with the corp. assets and I won’t go back. You can really see the text snap into a vertical rhythm when you hit it.
Browser-side JavaScript template engine with concepts borrowed from Kid. Used by Freebase to drive formatting around JSON. Looks interesting.
Another interesting take on multi-select lists that uses checkboxes with labels and colors.
I’m real close to hating multi-select list boxes right now. Using an overflowed UL of checkboxes has some interesting pros (and cons).
Nugget of wisdom: “… developing for the web is frequently about accepting small compromises to big philosophical ideals.”
Awesome. Robert Sayre just checked in his document.getElementsByClassName implementation to mozilla trunk.
Very nice list of CSS techniques.
Chairing the WG is one way to fix your validation issues! (yes, I’m just being mean now — ignore me. no but seriously.)
Oh, hell yes:
“The demoroniser keeps you from looking dumber than a bag of dirt when your Web page is viewed by a user on a non-Microsoft platform.”
Sam with a very simple, step by step tutorial on using your site as an OpenID identity provider.
Whose going to get this running on OS X? I guess it doesn’t really matter. I can always X over to a Linux box…
Holy… This is big. Huge big.
Big list of resources on CSS based forms.
The best attempt I’ve seen at splicing multiple API references together. This uses the external documentation but provides indexing and browsing features.
This site is really starting to come along now. The latest addition on how to manage vertical spacing in intervals is something I’ve been wondering about for a while now.
Firefox extension with some promising script debugging/spying features.
Animated GIFs designed to indicate your site is doing something…
Tim Berners-Lee’s blog. Finally!
Nice list of DOM events and the varying support of different browsers.
CSS specifity chart based on Sith power levels — to good to be true.
this site rocks
Decent javascript reference. I really like the format but the cards are images so you can’t use your browser’s find to locate stuff…
Big list of sites that provide CC licensed CSS layouts and tools for generating layouts.
Information on quirks vs. strict mode for HTML/CSS rendering: how to trigger, what DOCTYPEs do what, etc.
Excellent look at various HTML and XML templating methodologies..
Styled for landscape printing…
Some information on using proper q and blockquote elements in HTML and then styling them with CSS to fix all the browser brokeness.
The recommendation..
red/green/yellow for specific css attribute support in major browsers.
a thorough look at how to use HTML tables correctly.
Some tips I haven’t seen before for dealing with IE’s broken CSS support. Using conditional comments for ie specific css, setting manual defaults, etc.
A nice breakdown of how float works in CSS, which isn’t always intuitive.
Various CSS layouts.
One of the nicer reference sheets for HTML 4.0.
Everything that you can possibly know about iframes.
Floating images and other objects using CSS.
More goodness from the archives of Tim Bray.
Tips and techniques for helping Googlebot. If you are a symantic markup perfectionist, you probably already have most of these right.
Methods for creating a 2-col layout using CSS.
Color name chart with hex codes and overlays.
..that rocks. Quite possible the only javascript treeview I’d ever consider using.
XML.com: Dealing with tagsoup HTML in Python.
A bunch of nice bullet images best used to style UL tags using CSS.
List of XHTML Sites
You can never have too many of these to choose from..
“…only 21, or 4.6 percent, of 454 member sites Karppinen could access passed the W3C’s own HTML validator…”
Entity Declrarations / Decimal and Hex values for important unicode code points.