Journal tags: ajax

29

sparkline

Announcing Bulletproof Ajax

When I wrote DOM Scripting, I can’t say it was the most pleasant experience. I found the act of writing to be quite laborious. As anyone who has written a book will tell you, it’s a hell of a lot of work.

But then when the book was finished and I finally held it in my hands, I experienced a great feeling of satisfaction. Once the reviews started coming in — mostly more than favourable — I felt even better. Before too long, I had almost forgotten the pain that had gone into writing the thing in the first place.

It was while I was in this vulnerable state of the newly-chuffed author at last year’s South By SouthWest that I was wined and dined by a charming representative from New Riders. Before I knew it, I found myself agreeing to write another book, one about Ajax this time.

Once the contract was signed, I was back behind my laptop staring at a blank Word document. That’s when I started remembering the pain of writing the first book. Bugger.

Fast forward to today. I’m done. The book is called Bulletproof Ajax and it will be released in one month’s time.

As yet, I don’t have a physical copy in my hands but already I’ve got that warm glow of achievement. I’m really, really pleased with how the book has turned out.

Now, here’s the thing: I think that people will either love this book or hate it. I didn’t write a typical programming book. Instead, the book has a strong sense of narrative and a distinctive tone of voice. I’m hoping that this will appeal to a lot of people but I expect it’s equally likely that it will put other people off.

I wouldn’t have written this book if I didn’t feel there was a need for it. On the face of it, another book on Ajax doesn’t seem to be filling a niche. After all, there’s no shortage of Ajax books out there. But most of those Ajax books are written for programmers. Generally they’re aimed at server-side programmers well-versed in a “proper” programming language like Java, and who must now come to grips with JavaScript.

Bulletproof Ajax is different. It’s aimed at front-end developers and designers: the kind of people who are already well-versed in web standards; CSS, (X)HTML, and maybe a dab of JavaScript. But it’s certainly not aimed at hardcore programmers.

Just to be clear: this book is not a cookbook of code. Yes, there is code in there to illustrate the concepts but it’s the concepts that are really important. The code is meant simply as a starting point. I go into far more detail on the design challenges and philosophical implications of Ajax. That’s why I think people will either love this book or hate it.

Personally, I love it… but then I may be a little bit biased—like a parent talking about how special their child is.

I’ve created a website to go with the book. It’s got the introduction, the table of contents and the code samples. Rather than start up yet another blog, I’m going to continue talking about Ajax and JavaScript on the DOM Scripting blog and then pull in the latest entries on the front page of the Bulletproof Ajax site.

Oh, by the way, about the title… I have Dan’s blessing. I just thought it was such a great adjective to apply to my approach to Ajax that it fit like a glove. So minus points for originality but plus points for accuracy.

Bulletproof Ajax is available to pre-order from Amazon. Some of the details listed on the Amazon page have been plucked from thin air and will get updated soon: the book is closer to 200 pages than 300.

If the release date listed on Amazon is correct, then the book will be available just in time for Valentine’s day so you can go ahead and get a book on Ajax for that someone special in your life. XMLHttpRequest is a geek’s best friend.

Ajax On The Beach

I just got off the stage at Flash On The Beach. To be honest, I didn’t think anyone would turn up: Microsoft were demoing their newest product in the big auditorium. On the plus side, I had a much smaller room to fill which made it nice and intimate.

The talk went well. The crowd were receptive and responsive, despite the oppressive stuffiness in the room. I was really, really glad that I had time for questions after I was done talking. I ended up talking for an hour (longer than I anticipated), but that still left fifteen minutes for a question and answer session.

I was talking to some people afterwards about some specific Ajax issues (cross-domain stuff, mostly) and I’ve posted some relevant links over on the DOM Scripting site.

Now that my talk is done, I can relax and enjoy Hillman Curtis.

Pictorial Ajaxitagging

I talked a while back about how I was attempting to add some extra context to my posts by pulling in corresponding tag results from Del.icio.us and Technorati, and then displaying them together through the magic of Ajax.

It struck me that there was another tag space that I had completely forgotten about: Flickr. Now at the end of any post that’s been tagged, you’ll find links entreating you to pull in any of my Flickr pics that have been likewise tagged.

This is all possible thanks to a single method of Flickr’s API. I’m reusing the same method to search for other pictures too…

A had a little epiphany in the pub the other night, chatting after the WSG meetup. I was talking about geotagging and I mentioned that it probably won’t be too long before just about every file will be geotagged in the same way that just about every file already has a time stamp. Then I realised, “hey, all my blog posts have time stamps and so do all my Flickr pics!”

So I added an extra link. You can search for any pictures of mine that were taken on the same day as a journal entry. I like the extra context that provides.

While I was testing this new functionality, I couldn’t figure out why some pictures weren’t being pulled in. Looking at the post from the Opera event written on Tuesday, I expected to be able to view the pictures I took on the same night. They weren’t showing up and I couldn’t understand why not. I assumed I was doing something wrong in the code. As it turned out, the problem was with my camera. I never reset the date and time when I came back from Australia, so all the pictures I’ve taken in the last couple of weeks have been off by a few hours.

Keep your camera’s clock updated, kids. It’s valuable metadata.

Hmmm… I guess I should take a picture today to illustrate the new functionality. In the meantime, check out this older post from BarCamp to see the Ajaxitagging in action.

London calling

It’s seems like I’m going up and down to London like a yo-yo this week.

On Monday, I gave a day of Ajax training at Framfab LBI. They’re a smart bunch. Normally, I have to sell developers on the concepts of progressive enhancement and unobtrusive JavaScript but these guys were already walking the walk. I felt kind of bad: for at least the first half of the day, I must have been preaching to the converted. Nonetheless, they were all very gracious and said they got a lot out of the day anyway. Too kind.

Yesterday evening was the Opera event which, despite the technical hitches, ended up being an enjoyable night out. Once the sales pitches and PowerPoint were out of the way, everyone was able to relax and enjoy the free booze, the mysterious canapés, and of course, the company.

After my talk and my hasty blog post, I spent the remainder of the evening explaining to people that no, I don’t have any connection to Opera, and wishing I had introduced myself before I started spouting my little after-dinner speech.

I had the chance to hang out with some of the gang from Last.fm, which was a lot of fun. It turns out that Hannah is a fellow believer in fighting the good fight for liquid layouts.

Today is the one day I won’t be getting on a train to the big smoke. Band practice takes precedence. Tomorrow, though, I’ll be returning to the bosom of mother London.

The second ever Web Standards Group meetup in London is taking place at the New Cavendish Street campus of Westminster University. The theme of the evening is microformats. Norm!, Drew and I will be covering the past, present and future of the single coolest thing happening on the Web right now. Why not join us for an evening of entertainment and education? The event is free. You can find more details on the Upcoming page. Try to get there for around half past six. Afterwards, we’ll decamp to the Bricklayer’s Arms for drinks ‘till late.

Be there or be square.

One talk down, one to go

I’m having a good time in Sydney. As illustrated in my Flickr photostream, I’ve been visiting all the usual tourist locations: the Opera House, filming locations from The Matrix, that kind of thing.

The Web Directions South conference is now motoring along and thus far, everything is going swimmingly. The pre-conference workshops have been going on for the past couple of days. I did a workshop on DOM Scripting and Ajax, which was good fun. The audience were a savvy bunch and they had some great questions and suggestions. The whole thing is online over at the DOM Scripting site.

Today the conference proper kicked off with the inimitable Kelly Goto, who gave a terrific and inspiring keynote. Then I had to follow her.

I wasn’t sure if I had prepared enough material. When I was practising my presentation back in my room, I was done in twenty minutes. As it turned out, I had plenty to say. In fact, there was only time for one single question from the audience at the end, which is a bit of a shame.

Overall though, it went well. There were no technical hitches (phew!) and some people came up to me afterwards and said they really enjoyed it.

You can take a look at the slides but they won’t make much sense without the context of the presentation. Fortunately, the whole thing has been recorded. I’ll be sure to get the audio transcribed and post it in the articles section of this site.

Now that I’ve got the first presentation out of the way, I can start fretting over the next one. Today I was talking about Ajax in a very broad hands-off kind of way. Tomorrow I’ll be delving into the actual code for building Ajax apps. As usual, I’ll be riding my Hijax hobbyhorse. I’m going to condense a lot of stuff down from my workshop so I’m hoping that the people who were at the workshop will go to the presentation by Thomas Vander Wal which is on at the same time as mine.

Ajaxitagging

Ever since I switched over to a new CMS back in February, I’ve been tagging all my journal entries. Until now, I haven’t been doing anything with those tags apart from exposing them in category elements in my RSS feed. Now that I’ve got a good head of steam going with my tags, I’ve decided to play around with them a bit.

Each journal entry page now shows the tags at the end of the post. These are linked (using rel-tag of course) to an aggregate tag page that shows any other posts with the same tag. Pretty standard stuff.

But then I thought it would be fun to tie the post in with other things I’ve tagged, not on this site but on Del.icio.us. Under the heading “Related”, you’ll find links to the same tags for my del.icio.us links.

Rather then sending you off to Del.icio.us, I’m using the Del.icio.us API to bring the results back to this site. Using a bit of Ajax, these results are displayed without a page refresh. I’m using Hijax so if JavaScript is disabled, the links will still work.

I’ve got a nice little progress bar going while the request is being sent, and a bit of a colour fade happening when the response comes back. The results themselves could probably do with some more styling. Right now I’m just displaying them in a regular unordered list of x-folk entries but I think they might look nice if they were more comment-like in appearance.

After the Del.icio.us links, I’ve got the same tags pointing off to Technorati. Again, instead of sending you away, I’m pulling in the results with the Technorati API. In some ways, these results are more interesting than the del.icio.us links because, instead of just showing things that I have tagged, this shows results from everywhere. The results are constantly changing. Right now I’m using the search query, but I must look into the experimental tag query.

I’m also using the Technorati API to find any blogs that are linking to the current post. This works like Trackback. If you want to respond to a post I’ve written, just blog about it. As long as you include a link back to the post, your entry will now show up in the results. It won’t be instantaneous, but if your blogging software is set up to ping Technorati when you post, it should show up pretty fast. I’d be interested in finding out just how long it takes for the API to reflect recent pings. If you blog about this post (with a link), try coming back to it and using the Technorati link to see how long your post takes to show up.

The Technorati API isn’t the most full-featured and sometimes it just seems to not respond. The Del.icio.us API allows me to do quite a bit with my own links, but doesn’t offer any access to other peoples’. Still, by combining the two with the tags for any particular journal entry, an interesting picture emerges.

I have some other ideas for making individual journal entry pages more interesting. None of them involve the addition of buttons that invite the reader to add the page to Digg, Newsvine, Del.icio.us, Reddit, Furl, Magnolia, Blinklist, or any other others I may be forgetting.

For want of a nail…

July was going to be a busy month for me. I was going to go to New York to do the Ajax workshop. Then I was going to stick around for An Event Apart. After that, I was going to head over to Seattle to hang out with brother-in-law before heading down to Portland to speak at Webvisions.

Alas, the workshop has been cancelled. No surprise, really… I imagine that most web developers in the area are quite rightly heading to An Event Apart and I imagine most people’s budgets won’t stretch to doing a workshop as well. It’s the just the wrong place and the wrong time to be putting on a workshop.

No workshop means no trip to New York. That means no Event Apart, no trip to Seattle, and no Webvisions for me.

On the plus side, maybe I’ll actually get some work done next month.

Ajax workshop in NYC

On July 6th I’ll be presenting an all day Ajax and DOM Scripting workshop in New York with Carson Workshops.

A few days later, on the 10th and 11th of July, An Event Apart NYC comes to town. Why not make a week of it? If you’re coming along to AEA, you might want to arrive a few days early for the workshop.

The Ajax workshop costs $495 and will be held at the Digital Sandbox. Registration for An Event Apart costs $1095. It will be held at Scandinavia House.

My previous workshops in London and Manchester were a lot of fun and garnered plenty of praise so I’m really excited about taking the show to New York. If you live in or near New York city, come along for a day of Ajaxy goodness and come away with a Neo-like “I know Kung-Fu” awareness of DOM Scripting.

Oh, and If you sign up now, you’ll also get a copy of my book.

Ex-tech

XTech 2006 is over and with it, my excursion to Amsterdam.

All in all, it was a good conference. A lot of the subject matter was more techy than I’m used to, but even so, I found a lot to get inspired by. I probably got the most out of the “big picture” discussions rather than presentations of specific technology implementations.

Apart from my outburst during Paul Graham’s keynote, I didn’t do any liveblogging. Suw Charman, on the other hand, was typing like a demon. Be sure to check out her notes.

The stand-out speaker for me was Steven Pemberton of the W3C. He packed an incredible amount of food for thought into a succinct, eloquently delivered presentation. Come to think of it, a lot of the best stuff was delivered by W3C members. Dean Jackson gave a great report of some of the most exciting W3C activities, like the Web API Working Group, for instance.

I had the pleasure of chairing a double-whammy of road-tested presentations by Tom Coates and Thomas Vander Wal. I knew that their respective subject matters would gel well together but the pleasant surprise for me was the way that the preceding presentation by Paul Hammond set the scene perfectly for the topic of open data and Web Services. Clearly, a lot of thought went into the order of speakers and the flow of topics.

Stepping back from the individual presentations, some over-arching themes emerge:

  • The case for declarative languages was strongly made. Steven Pemberton gave the sales pitch while the working example was delivered in an eye-opening presentation of Ajax delivered via XForms.

  • Tim O’Reilly is right: data is the new Intel Inside. Right now, there’s a lot of excitement as to do with access to data via APIs but I think in the near future, we might see virtual nuclear war fought around control for people’s data (events, contacts, media, etc.). I don’t know who would win such a war but, based on Jeffrey McManus’s presentation, Yahoo really “gets it” when it comes to wooing developers. On the other hand, Jeff Barr showed that Amazon can come up APIs for services unlike any others.

  • Standards, standards, standards. From the long-term vision of the W3C right down to microformats, it’s clear that there’s a real hunger for standardised, structured data.

Put all that together and you’ve got a pretty exciting ecosystem: Web Services as the delivery mechanism, standardised structures for the data formats and easy to use declarative languages handling the processing. Apart from that last step — which is a longer-term goal — that vision is a working reality today. Call it Web 2.0 if you like; it doesn’t really matter. The discussion has finally moved on from defining Web 2.0 to just getting on with it (much like the term “information architecture” before it). The tagline of XTech 2006 — Building Web 2.0 — was well chosen.

But the presentations were only one part of the conference. Just like every other geek gathering, the real value comes from meeting and hanging out with fellow web junkies who invariably turn out to be not only ludicrously smart but really, really nice people too. It helps that a city like Amsterdam is a great place to eat, drink and talk about matters nerdy and otherwise.