-->
February 27, 2002
Replacing HTTP
Hmm, do we really want to uproot HTTP in the name of web services? Hey how about developing some web services worth using first? My knee-jerk response is if your distributed computing model is so complex and unwieldy that HTTP slows it down unbearably, maybe it's your design that sucks. I'm not saying that HTTP is unassailable and perfect, but let's demonstrate some real need before we start ripping up the floorboards.2-player DHTML Pool Game
Scott Porter pointed me to this incredible 2-player DHTML Pool game he developed, which is not only fascinating because of the cool physics and UI functionality (use the mouse to pull back on the cue stick and increase your shooting power), but it also uses a hidden XML backend to communicate with a server, so you can play against a live-person opponent. IE5 and up is recommended; NS6 works but is extremely slow and unexciting. Scott informs me that NS6 seems to take a performance hit when using the Math object repeatedly.DHTML WYSIWYG Editor
At DevArticles: Building a WYSIWYG HTML Editor With JavaScript and HTML. For IE browsers only, this one exploits the little-knownexecCommand() function which enables you to execute system commands like cut, paste and copy from JavaScript.
February 26, 2002
DHTML Articles At Webreference
Webreference has been releasing a ton of interesting DOM/DHTML/JavaScript articles recently: DOMDocument Node Selection, JavaScript and Accessibility, Creating a Cross-Browser (DOM) Expandable Tree, and look, a new version of the HierMenus script.Blogging With Mozilla
MozBlog: a blogging interface for Mozilla. It lets you post to your weblog through the browser itself, with no window switching or popups. And because it uses Mozilla's XML-RPC abilities, it should be compatible with blog software like Moveable Type, Blogger and possibly Radio.February 25, 2002
Blog Topic Search With Google
Here's something fun: see the "Google It!" link following each post? Click it to initiate a Google search on the topic of that particular post. Since the search text is based on the title of the post (something you don't see here, but appear in the syndicated XML and JS feeds) I'll have to be careful and make sure each post title is descriptive and makes sense. Which I should be doing anyway. See? I love CMS. (Afterthought: it really is too bad that Google doesn't even have a low-level XML service for the rest of us -- I have a couple of great ideas, but they all involve scraping and scrubbing the search results. It's not worth it. And by the way, where's my XML-RPC based W3 validator?)February 23, 2002
Brickyard Bend Wins Fourth In Competition
Hey, remember back in September 2001 when I asked you to vote on which songs I should enter into a certain songwriting contest, about a week before the world went to hell? Turns out I won something. Brickyard Bend won an honorable mention (read: fourth place) in the Country/Folk category, which I find absolutely incredible.I can't remember if I actually get anything, maybe a set of guitar strings, or maybe a nice "atta boy" certificate, I dunno, probably nothing.
Aw, who cares?
I'm #4!
I'm #4!
That the song was even noticed out of the hundreds or maybe thousands or songs submitted is enough for me. For those of you who have a faint recollection of The Time Before, here's the original vote tally from September:
Brickyard Bend (23 votes)
One Sure Thing (16 votes)
Stay The Same (14 votes)
Hello You (16 votes)
The masses have spoken, and they know their urban folk-pop. Thanks.
February 22, 2002
Blogchatting With Remote Scripting
Earlier today I was chatting with Brent Ashley and a crew of others in his killer BlogChat app, supported with RSLite remote scripting tools. It's a wicked subversive trick, in which the data is passed to the server piggybacked on an image HTTP request, a technique discussed in our forthcoming book.IFRAME for 4.x Browsers
UK reader Chris Hester pointed me to this: Netscape Floating Frames Library. It's an IFRAME for 4.x browsers. Written in 1999!The DHTML Floating Frames library gives you the power to place a frame anywhere on the page, or the ability to have scroll bars with layers. This library works with any 4.0 or later browser. Furthermore, using the Floating Frames Library requires only minimal knowledge of JavaScript (and no knowledge of layers), so it should be easy for you to implement on your site quickly.
The State Of Validation 2002
Marko Karppinen's The State Of Validation 2002:As it happens, out of the 506 w3c members, only eighteen have web sites that validate with the w3c validator as either html or xhtml. 141 members proudly display sites with definite markup errors; a whopping 342 sites couldn't be tested at all because of lacking dtd definitions. Sad.
February 20, 2002
What CSS Isn't
CSS is not for content management.CSS is purely presentational. You can't use CSS to pull navigation, databased content, headers, footers, etc. together for the browser. That's not what it's for. That's never been what it's for.
The same goes for HTML. It's largely semantic markup. Text within an H1 is a level one heading. The fact that browsers render this in huge, bold type is incidental. CSS allows you to apply visual style and formatting to HTML elements without screwing up the semantic nature of your markup.
What does a FONT tag tell you that's useful? Do you, the human, really need to know or care that a paragraph is supposed to be in red 12 pt Garamond in order to read it? No? Then why the heck do you need a tag there?
CSS gets the visual stuff out of the way of the information. That's all. It's simple. If you can grok HTML you can grok CSS just as easily.
(FRAME and IFRAME? Ah, there's a pickle. These are neither presentational nor semantic in my view. They're user interface components and have little to do with describing information. If anything, they say "this document contains these other independent documents over here, check those out instead." I have a love-hate relationship with these elements.)
And now for the ranty, not-so-nice part. I've gotten some interesting email on the subject, but let me be a little blunt. If you're not a client-side developer -- that is, if your world does not revolve around things like markup, CSS, JavaScript and basically what goes on in the client -- I respectfully ask that you sit down and shut up.
Here's an illustration: I know a handful of PHP, a smidgen of Perl, and I've installed Apache exactly once. Do I then go to my IT department and hold forth on the shortcomings of their system? No.
My experience with databases in limited to some messing about with MySQL two years ago. Do I approach my database admin and ask: why should we use Oracle because it's so hard to grasp? No.
Why? Because they're the professionals, not I. Why the heck should they listen to me? They sling this stuff around every day. I trust their judgment and assume they know best practices. And when it comes right down to it, I really don't care how these issues are solved, as long as I can get my end of the deal done.
I don't see any value in listening to opinions on web standards from people who don't even do web design, especially when it's fairly clear they don't really care. And I'm really tired of seeing web designers and developers being treated as second-class citizens by people who don't even live in the same world. To them I say: step aside, and let us professionals do our jobs.
Client-side dev is hard enough as it is without people who don't do web design and don't care about web design grandstanding about topics they have no real interest in.
Walkingbirds Live at Fray Day 5 Audio
So, thanks to Derek, Live365 and soundmaster Jed, the audio of the Walkingbirds live at Fray Day 5 SF is now available for your listening enjoyment. Jed did an awesome job with the audio work, considering the challenges of alternating spoken word and acoustic live music from the same two microphones all night.Listening to our performance is both exhilarating and cringe-inducing. We don't really get warmed up until the third song or so, and I totally, completely forget the words to "Brickyard Bend" in at least two places (listen for the parts where I go "mrphrmmmhprhm." Ha ha ha). And my awkward, in-between-songs patter sounds like I've been practicing to be a radio talk show host, or perhaps DuffMan.
But there are some really nice moments. I really like the way "Gravel Road Requiem" came out. Plus, there are two of Laurie's songs, "On Your Side" and the closing tune "Fall Off the World," which you probably won't hear anywhere else, and those are our strongest performances of the night. Not bad for two people who haven't played live in two years.
I really love playing live, no matter how much I suck at it. I love open mic nights like Fray Day. There's no pressure to pack the house, and the people are there to listen. It should always be that easy.
February 18, 2002
The Blue Nile
I took advantage of the long weekend to dust off the guitar and get back into the groove of recording some of those neglected song ideas festering in in the area of my brain right behind the orbital javascriptus.
I have two original songs nearing completion, but I won't be releasing them just yet. So instead, here's a cover of a song by an obscurish UK group called The Blue Nile. I discovered their first album while I was in college, and was drawn to the strange, minimalist, guitar-free arrangements and vocalist Paul Buchanan's loungey voice. For a long time I've thought about covering one of their tunes as an acoustic song.Anyway, this was done in a series of one-takes, because it's more important to me to get it down on tape (er, disk?) than obsess over things being perfect. It was originally supposed to be one guitar and one vocal, but then I added another guitar to thicken it up a bit, then another, then a backing vocal, then I got the idea for the "da-da-da" thing during the chorus, so I added that. You can see how these things spin out of control.
It was fun. I should do more covers, just for practice. I need the practice; my voice is severely out of shape. It's harder for me to sustain notes and stay on pitch without wheezing. This tune doesn't feature my best singing. Ah well, it'll come back.
Warning: this tune is long, over five minutes, and I had to crank it down to 56K to keep the file under 2MB. It's called "Saturday Night." Enjoy.
February 15, 2002
Trivializing Web Standards
So I wasn't going to say anything about Dave Winer's war with the CSS zealots, especially now that he's planning on offering a CSS-based theme for Radio.But it intrigues me. The push for XHTML/CSS gets a lot of resistance from certain people, which leads me to wonder: what's the big deal? Why is it when web developers ask for something as simple as CSS, or a valid XHTML template, we either get harsh ridicule or a patronizing chuckle and pat on the head?
So all zealotry aside, I tried to come up with a handful of reasons why ignoring or trivializing things like XHTML and CSS is harmful, without pointing to the W3C and screaming "because it's standard!"
I've come up with three things:
Developers like correctness.
People expect more from the browser.
Web development is the hardest of all. Developers like correctness. This should be a given for anyone wanting to build a developer community, web or otherwise. Developers like doing things the correct way. The little thrill you get from validating your HTML and CSS is no different than that one you get from writing your first XML-based app, or your first error-free Perl script or Java servlet.
It's also why refactoring is such a big deal to developers; we're always aiming to make the code sleeker and more elegant, and apply better approaches we've learned from experience.
In other words: we want to be ninjas, masters of our craft. Let us be ninjas!
Would you be so denied, Mr. or Ms. C++/Java/XML/VB Developer?
For years, no one cared about a "correct" way of doing web pages, so long as they looked pixel-perfect in as many browsers possible. Now a standardized approach is starting to take shape, and the uptake by web developers is increasing.
We don't use web standards because the W3C says to. We use them because they make sense, and we like them.
Please, give us some credit.
The worst thing one could do is deny a burgeoning alliance of developers the option to use what they feel are best practices. They will smell something strange and find another sandbox to play in.
Allow developers the right to scream and carry on about web standards. Eventually, CSS will be as good as tables for layout. Netscape 4 will die. But it will never happen if developers can't use new tech and help it grow.
People are still expecting more from the browser. You would think that with the web developer community focusing more and more on standards, the markup and CSS would be getting simpler and thus developers happier.
Wrong. The CSS and DOM specs continue to grow and change, HTML has become XHTML, and the addition of newer technologies such as XSL/XSLT and customizable schemas, not to mention a whole host of indirect considerations (accessibility, usability, multiple device support, et. al.) have greatly changed what it means to build a "web page."
The perception of what web pages are capable of doing is changing too. People are starting to understand the concept of the browser as an application platform -- however unstable and crappy it may be, it's still the number one way people find info on the Web. We've been figuring out ways to make the browser experience more application-like for years now, and it's getting better all the time. People are starting to expect things like real-time content, instant feedback without a screen refresh, desktop-like UIs, in-situ editing, even dorky drop-down menus.
And as our forthcoming book will show, these things are umpteen times easier to implement when web standards reign supreme.
Just because there's a "return to elegance" movement focusing on XHTML/CSS among web developers doesn't mean the crazy stuff is going to go away, or that those technologies aren't worthy of note beyond formatting data for the screen.
Web development is the hardest of all. This all leads into a third point which has been troubling me for some time. There's a weird, underlying vibe that HTML, CSS and other browser-side tech is not important anymore, and that people who specialize in this type of development aren't worth listening to.
Hear me now and believe me later: the browser is the most complicated environment to develop in, period. Anyone who still thinks that even simple web pages can be "just thrown together" over the course of a weekend is grossly miseducated. Web developers don't have the luxury or even the illusion of a stable runtime. What works in one browser will break in another, and that's the browser the CFO will be using.
It's hard, and deserving of respect.
I don't know where this attitude comes from. Maybe it's because behind-the-scenes things like SOAP and web services are where the sexiness is at right now, but let's be frank: none of those technologies are making the client-side any easier.
To think that there's no value on the client side is ridiculous. I tell you right now that for every miraculous SOAP-driven EAI solution put in place, there'll be a request for a browser-based interface. The former may be where the cash is, but the latter helps clinch the deal.
Oh, and it has to work in Netscape 4, right?
Web development is hard. Stop cajoling us and let us use the tools we need.
Die, NS4, Die!
A few things I've learned about Netscape 4 in the past 24 hours:1) Common wisdom says Netscape 4 doesn't support the overflow CSS attribute. This is not entirely true. Declaring overflow:hidden causes NS4 to make the clip dimensions of a DIV read-only. This can be particularly baffling when you are manipulating clip values to create wipe effects, as the clip will never change in NS4 until you remove the overflow:hidden declaration.
2) If you use document.write() to generate DIV elements with CSS in the style attributes, be prepared for a world of pain. NS4 will generate two DIVs for every one you write, which messes up the contents of the document.layers collection. The evil twin DIV contains an alien mutant property called "ttyle" (no, that's not a typo) which actually contains your CSS.
3) The only way around the above problem is to document.write() your CSS within enclosing STYLE tags, separate from the DIV element. Don't concatenate the CSS and DIV strings together in a single write(); do one for each string, CSS first, then the DIV. Trust me on this. Oh, and forget about validation.
4) In fact, never trust document.write() to place anything where you expect it to be. Today I tried to write a positioned DIV containing an image and accompanying imagemap into a page. Netscape 4 insisted on placing the imagemap outside of the DIV, where it's useless because the image and the imagemap need to live in the same document object in order to work -- in this case, I really, really needed to have that imagemap inside the layer. But nooooooo.
5) I really, really, really, really, really dislike having to develop anything beyond a simple web page in this browser. My heart sinks each time I hear the words "and it has to work in Netscape 4" because what I really hear is "we're going to double, maybe even triple the time and expense needed to finish this project, and in the end it'll never work or look quite as good as it will in browsers born after 1997, but we'll do it anyway because we *heart* wasting resources!"
Sometimes I think I'd rather do a web application entirely in Flash rather than support NS4 and its buggy CSS and primtive object model.
February 13, 2002
NS4 3-Column Liquid Layout
Al Sparber of Project Seven wins the gold in cross-browser CSS layouts with his tableless, liquid 3-column layout that actually works as intended in Netscape 4 with valid CSS and HTML (except for one misplaced non-SGML character, oof). Check out how little CSS is actually used to achieve the same effect across browsers; and it doesn't require @import or browser sniffing. Excellent, excellent.Partly because I need one, and partly for fun, I hacked up a version of Al's layout that includes a header box that spans the three columns.
Toby Needs You
Why am I mentioning this at all? Because Toby is a MetaFilter user, and took out a text ad to persuade the curious to come to his show. I probably will.
February 12, 2002
New Opera Versions Released
Opera 6.01 for Windows, Opera 5.0 Final for Mac and Opera Beta 4 for Mac OS X, all now available.JavaScript Mail Filtering
From Netscape's JavaScript documentation circa 1997: JavaScript Mail Filters. I wonder if this works in the Mozilla mail client?Creative Commons
I'm beginning to understand why the Web (particularly artists, musicians and programmers) loves Lawrence Lessig. Probably the foremost authority on intellectual property law and the Internet, Lessig is launching a new venture in a few months, Creative Commons:
Creative Commons will make available flexible, customizable intellectual-property licenses that artists, writers, programmers and others can obtain free of charge to legally define what constitutes acceptable uses of their work. The new forms of licenses will provide an alternative to traditional copyrights by establishing a useful middle ground between full copyright control and the unprotected public domain.
Lessig will be speaking at SXSW this year but unfortunately I'm going to miss his talk.
February 11, 2002
New DOM Level 3 Drafts
Last week the W3C released new working drafts of DOM Level 3, including DOM Level 3 Events and DOM Level 3 XPath, an intereface for accessing DOM nodes with the XPath language.That Gene Simmons Show
Having finally heard the now-infamous Gene Simmons interview on NPR's Fresh Air program, I have to say this: despite the fact that Simmons is truly vain and obnoxious, I can't help but think that interviewer Terry Gross was expecting this to be a joke interview (aw look, the big bad rock star with the scary makeup wrote a book, how cute!), not realizing that Simmons is indeed an unapologetic, larger than life, shoot-you-with-my-love-gun rock star. I mean, "did your makeup ever cause your skin to break out?" What kind of dang fool question is that, anyway?Anyone who knows anything about KISS' history knows they don't do it for the music. These are guys who wanted a certain lifestyle (one with lots of cash, women and fame) and they went out and got it. They've never denied this, ever. Gross made a fatal mistake of believing Simmons would be sheepish about the makeup, the comic books, the sexual conquests -- in short, that Simmons the Rock God is not Simmons the Sensitive Person Beneath It All (also known as the Howard Stern Effect). Oh, so wrong. Listening to the typically straightlaced Gross squirm as Simmons chuckled and lobbed one off-color remark and bad pun after another (most of which she should have just brushed off), was the highlight of my rather dismal week.
Perhaps if Gross hadn't expected Simmons to conduct himself like a foreign ambassador, diehard NPR listeners wouldn't be clutching their chests and falling out of their chairs. Simmons may be an egomaniac, but he's no poseur.
That old parable about knowing a snake is a snake before you bring it into your house comes to mind.
By the way, Gene Simmons has a weblog, sorta.
February 10, 2002
February 5, 2002
Mozilla 0.9.8 Released
Mozilla 0.9.8 is released. As always, check out the release notes for new and improved features.IE5 Conditional Comments
Something interesting: IE5 conditional comments, which are basically<!-- comment --> tags that use conditional logic to hide HTML content from older browsers. From the MSDN site:The HTML Comment is recognized by practically every browser. With this type of comment, all the content inside the tag is completely ignored by the browser. The HTML shown inside the syntax block in each of the conditional comments denotes any block of HTML content, including script. Both types of conditional comment use a conditional expression, which is recognized in Internet Explorer 5 and later versions. If the expression is true, the content inside the comment block is parsed and rendered.
February 4, 2002
Preorder the DHTML Bible at Amazon
Book? What book? Oh, I was writing a book? Yes, and in fact, you can now preorder the DHTML Bible from Amazon. Look for a companion web site soon, where you'll find stuff like example code, errata, and the typical stuff.Section508 Fails It's Own Test
Zeldman notes that the Section 508 site fails the Bobby test for compliance and accessibility. The interesting thing is the design they've chosen could probably be done with a sans-tables, all-CSS layout for maximum accessibility. C'mon people, get with it.JS Optimizations
Jeff Greenberg has updated his JavaScript Optimizations page, which contains handy tips and tricks for improving the speed and efficiency of common JavaScript operations.A Different Design Each Day
Keep your eye on Chris Casciano's site this month; he's using CSS to apply a different look and feel each and every day in February, without messing with the HTML at all.February 2, 2002
The Worry Knot
Googling around under "sadcore" I expected to find artists like Mark Eitzel and the Red House Painters at the top of the list. Nope, instead I find The Worry Knot, a Pennsylvanian one-man project turned full-blown band. Songwriter Michael Hughes comes across as an honest, self-effacing fellow in his infrequest ramblings on the site. Unfortunately I can't tell you about the music, since all the samples are in Real format. Real has done enough damage to my machine and I refuse to upgrade to their newest player. But that's okay, Mike, because anyone who links to both The Innocence Mission and Tool on the same page of favorites gets my undying respect. Lone guy, writing songs in his bedroom? I can relate.Online Guitar Chord Dictionary
For my own reference and possibly yours: the Online Guitar Chord Dictionary. Sweet.