Archive for the 'programming' Category

Designing an HTML tag . . . is actually fascinating

I’m getting up to speed on the upcoming tech wave by reading the finally published “HTML5 Up and Running”, by Mark Pilgrim. That sentence just feels sad (though necessary), but the first chapter of the book is really, really interesting. In a section titled “A Long Digression into how Standards Are Made”, Pilgrim walks us through a three week email thread that covers the origin and (pretty much) final resolution of the IMG tag.

The thread begins on February 25, 1993, with Marc Andreesen writing:

I’d like to propose a new, optional HTML tag:

Required argument is SRC=”url”.

This names a bitmap or pixmap file for the browser to attempt to pull over the network and interpret as an image, to be embedded in the text at the point of the tag’s occurrence.

An example is:

<IMG SRC=”file://foobar.com/foo/bar/blargh.xbm“>

(There is no closing tag; this is just a standalone tag.)

This tag can be embedded in an anchor like anything else; when that happens, it becomes an icon that’s sensitive to activation just like a regular text anchor.

Browsers should be afforded flexibility as to which image formats they support. Xbm and Xpm are good ones to support, for example. If a browser cannot interpret a given format, it can do whatever it wants instead (X Mosaic will pop up a default bitmap as a placeholder).

This is required functionality for X Mosaic; we have this working, and we’ll at least be using it internally. I’m certainly open to
suggestions as to how this should be handled within HTML; if you have a better idea than what I’m presenting now, please let me know. I know this is hazy wrt image format, but I don’t see an alternative than to just say “let the browser do what it can'’ and wait for the perfect solution to come along (MIME, someday, maybe).

Let me know what you think………

Cheers,
Marc


Marc Andreessen
Software Development Group
National Center for Supercomputing Applications
marca@ncsa.uiuc.edu

For the next three weeks, a number of programmer types, including Tim Berners-Lee, discuss a whole range of ideas for how this much-needed tag should be developed. It’s worth a read or two, since it highlights several open source, design, and software dynamics. Even in the note above you see a bunch of things:

  • The presence of shared, common language. One of the hardest things about organizations where teams are important is building a common vocabulary. Actually, it’s less about the vocabulary and more about building a precise understanding of what the words in the vocabulary mean. In my job, even the word ‘app’ can have too precise a meaning (iPhone or iPad app) or too loose (anything on the web that isn’t pure messaging or might contain a button). The thread started with the note above is remarkable for its precise, simple language and writing styles which conform to the expectations of other while personalities and passions still come through.
  • The idea is presented with a clear rationale, an awareness of its shortcomings, and a genuine openness to improvement and realization that something may have been missed. The thread goes on to propose some very different approaches to how to mark up images, and Andreesen ultimately sticks to his initial proposal but leaves things open to a better evolution saying “we’re not prepared to support [a different approach] at this point” and that specifics will be in place “for the time being.”
  • The conversation has a mix of ideal principles and the need to ship and finds a balance. More important, the decision-maker(s) are aware of the balance and compromise. Intel has an internal mantra that people need to “disagree, but commit” to the imperfect, different, or inferior solution that wins the day. Too often, that “commit”ment can turn into group-think that forgets that the decision needs to be revisited, involved necessary compromises, or creates serious problems elsewhere. Everyone on this thread is aware and keeps track of the issues that are left open or created while other issues are closed.
  • The thread operated comfortably and, again, in a self-aware fashion, at many altitudes. Tim Berners-Lee talked about user confusion while supporting the theoretical superiority of INCLUDE (a tighter, more pure, but more time consuming approach), another person suggests “maybe we should think about a general-purpose procedural graphics language” (let’s acknowledge that markup languages are not up to this and rethink the whole thing), while others tweak the proposed structure of the tag.
  • There is very little preciousness — about ideas, implementations, territory, intellectual/engineering integrity — to be found. I’ve worked with engineers, and written code myself, for almost a dozen years, and was surprised to the point of shocked to see how matter of fact, and yet rigorous, a group of programmers could be, especially on a medium (email) that was at the time new and where etiquette was still evolving.

    The book is worth a read and this chapter is really illuminating.
    You can view the Andreesen post and click through the thread here.

    Hug a developer

    bad project management hurts people and undermines our family values:

    MSFT sparking dreams with free dev tools

    Interesting Microsoft move pre-reported by TechCrunch this morning:  Bill Gates will announce (or has announced) that (verified) students will have access to MSFT development tools for free.  In a program called Dreamspark, students can get the entire Visual Studio line, Expression, Windows Server, and Game Studio.  It’s a smart way to compete with open source, build the community of developers who work with and prefer Windows, and build brand loyalty at a formative phase of someone’s career.

    Channel 8 did an interview with Bill Gates about this initiative which turned into talking about software.  Despite outsourcing and the commoditization of certain development skills, Gates is still quite bullish on the importance of programming:

    [People can use MSFT dev tools to] build a career around or build fun software for themselves.

    The skill of design, skill of knowing what good code looks like … will be around for the next couple decades.
    There’s nothing more fun than thinking about software . . . software for the poor (there’s a lot more work that needs to be done), software to make jobs more interesting, software to help peofle design things in new ways … if you think about the sciences today they’re really driven by software … biology has so much information that it’s really software people who are gong to help find patterns and organize that information.