Micforormats: Yay or Nay?

This is a repost of my response to a question on UWebD list, but since the list doesn’t have publicly available archives, I thought it would be valuable to post this here.

In my opinion, marking up content with microformats falls right in the stride of any Web standards-aware developer, because the reasoning behind microformats is exactly the same as the reasoning behind supporting Web standards.

You don’t support Web standards to get a W3C badge or earn respect of colleagues. Even further, you don’t support standards to improve accessibility (although accessibility plays into standards). You support standards because you want your content to be correctly interpreted by the widest audience possible.

And since interpretation of content relies on semantics of markup, the notion of semantic markup plays an important role in this goal. Microformats are but a way of extending semantics of HTML in a standards-compliant fashion, through a well-thought-out process.

Even if you aren’t a Web standards believer just yet, you should use microformats in the context of search engine optimization. I believe… strike that, I know that Technorati’s microformats search, released a few weeks ago, is the tipping point for widespread adoption of microformats crawling by search engines.

Rather than relying on obscure and fuzzy techniques of determining the purpose of content, the capability to accurately and cheaply extract specific types of information (such as contact info, event info, reviews, etc.) it’s a no-brainer value proposition.

Besides, microformats are very easy to add to the page. I did this at a couple of my presentations — ask the audience to give me a page and convert contact information into a hCard within minutes.

Now, speaking of the big boys. Who’s on first? Well, Yahoo! Although Bill Gates did mumble “we need microformats“, reacting to O’Reilly’s pressure at Mix’06, it is Yahoo! Local beta that went live yesterday, featuring over 17 million pieces of microformatted content.

When we started this a year ago, this was just a crazy idea. Now it’s becoming clear that it’s something that might just make the Web a better place.

Tags: , , , , , , , ,

BarCamp Birmingham: Unconferencing the Magic City

Today we had our first meeting, dedicated to planning a Barcamp in Birmingham. What’a Barcamp? Noo, it’s not camping out in a bar, although that seems like an intriguing idea in itself. Barcamp is a conference, powered by participants, rather than organizers. But don’t let me put any more syllables in the horse’s mouth. The first paragraph at barcamp.org explains it pretty well:

BarCamp is an ad-hoc gathering born from the desire for people to share
and learn in an open environment. It is an intense event with
discussions, demos, and interaction from attendees.

This Barcamp thing has been taking the world by storm. From Paris to Houston, from Amsterdam to Raleigh-Durham, these fiery nerd commotions are popping up all over the place.

Well, why not Birmingham? True, some of my colleages act surprised (thankfully, in jest) that there are actually “internets” in Alabama, and it takes special nudging to get goodstorm.org to officially recognize Alabama as a State-side territory. But in all seriousness, Birmingham is crawling with technolgists, talent, and raw creative power. That’s what comes with being a cultural and technology center, you know.

The first planning meeting went very well. A bunch of great ideas were generated and I think we quickly reached the point of realization that this may actually work. With some elbow grease, initiative and the ever-present spirit of collaboration, we are really going to do this!

There are still lots of unanswered questions, and very little is set in stone. So, if you’re interested, jump right in! Come on over and help accomplish something beautiful. Not for money or hidden agenda — for karma. Read the barcamp basics, add yourself to the list of campers, or get on the planning wagon. Join the mailing list. BarCampBirmingham needs you.

Tags: , , , , ,

Microformats in Alabama

Did a talk at IPSA today on Microformats (slides are online for those interested). I think it went well. It was a bit odd that people didn’t ask many questions, but maybe this was due to the fact that I ran over the time limit just a tad. The presentation is a quick remix of Tantek‘s SXSW and W3C Technical Plenary talks, coated generously in my handwaving and sprinkled with hCalendar demo of Capital University home page.

Folks at DAXKO did a great job of hosting the gathering, and gave us the tour of facilities after the presentation. The have awesome office space and a very healthy feel to the environment — in both mental and physical aspects.

Off To Netsquared

Early Monday morning, I’ll be flying to San Jose, to join the Netsquared
, the coolest conference at which I ever had an honor to
speak. Together with my co-host at Fuzzycontent.com, Bob
, as well as Youthnoise‘s Ginger Thomson, and Ami Dar
of idealist.org, we will talk on Tuesday night about social networks, millenials, and the teeming Web. I
can’t guarantee
anything, but I
think this is going to be a blast. Judging from the vibrant activity on
our topic page, we will have precious little time to fit all the
questions, ideas, and concepts bouncing around.

In addition, the microformatters will try to get together for an
hDinner, a small but
ever-so important event where eating is just as good as the learning,
except for all the calories. If you are interested in joining the
crowd, just watch the event page on Upcoming.com for time/location updates.

GWT And Now Script#: The Agony of a Thousand Puppies

Uh oh. Another reactive rant. Am I turning into a grumpy old man? This time it’s about layers of abstraction. And Javascript. And the meaning of life. No? Maybe not the meaning of life.

Nikhil posted about his new pet project, Script#. Although I had fun reading the article and admiring the work, I am not enthusiastic about the approach. Google had posted their GWT a bit earlier and it evokes a similar reaction from me. Here it is:

Hiding Javascript behind another language’s layer of abstraction is like killing puppies.

It’s one thing to build a compiler to a language that’s more appropriate for machines. CLR or Assembly ain’t easy to code with for any human being.

But Javascript is a fully-featured, widely used, and beautiful language. Sure, it’s different from C# of Java, but it holds its own rather well. Sure, it lacks strong typing and traditional C++ form of object orientation, but that doesn’t make it less versatile.

Why do I think it’s a bad idea? Well, primarily because I get to experience firsthand what layers of abstraction do to code. In ASP.NET, the developers were shielded from needing to learn how Web works — a lot of effort was put in to emulate WinForms. You click a button, and here’s your OnClick handler, voila! Unfortunately, shielding developers from learning the inner workings results in some of the crappiest and undebuggable code you can imagine. Don’t believe me? Check out thedailywtf.com. Or go look into the vast repositories of code, written for ASP.NET. I know, I am making a non-verifiable statement here, but hey, it’s my frikin blog.

In the comments to Nikhil’s article, there are sentiments to keep the Morts in the loop. One of the users is worried poor slobs won’t be able to keep up with yet another language that they need to learn.

I have a very simple answer to this: if you can’t handle Javascript, you shouldn’t be writing code for Web applications. HTML, CSS and Javascript are the three prerequisites for this ride.

And to those of you who do know all three, please, let’s stop proliferation of poorly-drawn boundaries in layers of abstraction. If you need futher motivation, just realize that you will be debugging that insanity, written without understanding how things really work.

So, where do we draw the boundaries? Well, for starters, not across the languages. I totally don’t mind a Javascript 2.0 compiler that produces common Javascript 1.4. I don’t mind seeing a CLR implementation of Javascript (not the JScript.NET, of course). I don’t mind a powerful JS toolkit. Anything that flows along the lines of the Web style is great.

But please, pretty please, don’t repeat the disasterous attempts to “simplify” the Web by allowing only one form element per page (which has to post to itself!) or requiring Javascript for the framework to react to a link click. Please? For the puppies?

Want to Be in a Movie?

poster for high expectations movie Have you ever dreamed to be in a real movie? You know, pointing out the tiny speck that is your head in a great sea of other hapless extras during a classic flick to your grandkids. “Yeah, I’ve been in a movie. Here! Look! It’s me!”

Here’s your chance. Yuri Shapochka and his crew are going to shoot a short film in town this weekend and they are looking for extras. No pay, naturally, but a guaranteed all-day excitement of creating something cool… and who knows, maybe even rubbing shoulders with future celebrities.

He is looking for people on either or both Saturday and Sunday. It’s a whole-day thing, meals provided (I think).

If you are in Birmingham, AL this weekend (May 6 and 7) and you’re interested, please email him at shapochka@earthlink.net.

Here’s more info on the movie: http://www.highexpectationsthemovie.com/

My Notebook

picture of the notebook Those who worked with me have seen it — my trusty ol’ notebook. Now you, the reader, can also peek in on the latest ideas brewing. Experience tells me that about 60% of these will be obsolete or deemed definitively crazy shortly after being doodled down, but some of these may just be the next big thing. For what it’s worth, here it is. I am addicted to them darn Ampad Computation Books. Good graph paper, rounded corners, stamped page numbers, hard covers — what else can you ask for?

REST Unrest

Gee, we will never run out of clever name permutations with this one, will we? Anyways…

Where did this idea come from that in order to be RESTful, an app has to use all four HTTP verbs? How did that become the criteria? I don’t get it.

The crux of REST is in uniform, immutable representations that reflect the state of a uniquely identifiable resource at a given time (i.e. stateless), and these representations travelling between client, server, proxies, and caches (i.e. multiple layers). That’s all (jump in if I am missing anything).

You can still design a RESTful application that doesn’t allow PUT or DELETE,
and even GET or POST. Architectural style does not dictate the use of
the verbs — the application needs do.

I agree, though — the debate does seem to have a certain religious war flavor to it. It just pains me to see people define architectural styles in terms of the building materials. HTTP is bricks and mortar, REST is Baroque. Bricks and mortar by themselves don’t make Baroque. Baroque by itself doesn’t require bricks and mortar. Failure to see the distinction is the sticking point.

As for defining the subset(s) of HTTP and applicable architectures that tend to work well in the modern Web, I am all for it. Tim Bray has the right idea.