Jared's Weblog

Main Page - Books - Links - Resources - About - Contact Me - RSS

Jared Richardson Most Popular
Help! I've Inherited Legacy Code
Testing Untestable Code
Continuous Integration... Why Bother?
Mock Client Testing
The Art of Work
Technical Idiot Savants
Targetted Skills Aquition vs Free Range Chickens
The Habits of Highly Effective Developers

Blog Archive

Wed, 22 Mar 2006

AJAX: What is it and Where do I learn more?

In a meeting today AJAX was mentioned and several people asked what it was, so I thought I'd pass on a just a little bit about AJAX.

AJAX just means that the web page you are hitting is getting updated without reloading the entire page. Think about most web sites. If you click on a link, or a tab, or anything, the entire page reloads... or a new page loads. This happens even if 90% of the page didn't change. With AJAX, only the parts that change get updated.

The idea here is that you can click a link and only have some of the page's content refreshed... just like an installed application. :) Dave Thomas' Ajax with Ruby on Rails talk has a very simple 12 line example.

For years people have been doing the same thing with the clever use of frames, but lately the idea was finally named (Asynchronous JavaScript And XML). After the idea was named, toolkits started popping up to make it easier to write AJAX-ified applications.

Once Google Maps was released and people really saw the benefit to an AJAX framework, the idea really took off. Google Maps does background fetches of maps that are off your screen. Then when you scroll in any direction, the data is already there and waiting for you. This lets you scroll smoothly instead of waiting for more data to stream down in response to your scroll action.

These days, not using AJAX means your web apps are slower and less responsive. You suck up more server bandwidth and have higher server resource peaks. A good AJAX apps will not resend the same information over and over. Also, by fetching smaller bits of data asynchronously, it spreads out the server side load as well. Otherwise your application must ask for more data at one time, causing less than desirable spikes.

You can read more about Ajax on the Wikipedia AJAX page... however, if you need to move a bit faster, you might want to spend some time with guys who've spent more time with Ajax. There's a Pragmatic Studio: Ajax coming up in Chicago in April. Justin and Stuart are great instructors and have the real world experience to help move your project past the classic beginners problems and straight to solving the problems your customers care about.

Of course, since it's a Pragmatic Studio, you already knew it was good, right? :)


posted at: 22:06 | path: | permanent link to this entry

Developing Software: The Eclipse Way

I saw a great post on Ed Burnette's ZD Net blog about developing software The Eclipse Way. It had some great quotes and the ideas can be applied nearly anywhere. It's not Eclipse specific by any means. It's about developing good software.

Some of the good quotes:

Project health is stronger than saying "quality". It's the state of a project over time, not just at a point in time. Staying healthy is a team responsibility. No single individual can make a project healthy by himself or herself.

One health indicator is how quickly the community adopts milestones. This means the community can give very up to date information, plus it means the community feels it's stable enough to use. A healthy milestone is consumable.

What does healthy collaboration look like? Good collaboration doesn't guarantee a project's success but poor collaboration almost always guarantees a project's failure. Each team is different but all the teams have to agree on some basic process elements (milestones, bug tracking, continuous integration). All teams (within Platform at least) share the same milestones.

More on UI health: slickness matters. Consider what is possible, and make it real. Finally, you can achieve a lot of stuff in the "spit and polish" time during the last 2-3 weeks.

Have your infrastructure in place early (SCM, collaboration, build, etc.). Realize your early milestones help you calibrate and establish expectations for later milestones. Build what you're shipping right off the bat, and do early coverage of as many parts as possible. Some early work will be discarded, and some deliverables will take longer. But keep the rhythm by breaking deliverables up into milestone-sized chunks.

The primary focus for making "The Eclipse Way" better has been improving the existing tools (individual productivity). For example, developers noticed that plug-in development was a challenge, so over time they've made ongoing improvements for finding API violations, etc.. It's important to both build your own tools and consume them. Then upgrade from individual productivity to team productivity. Empower the team, and tool the process. Make transparent what's going on in a team: how do you integrate things? how healthy is the project?

Wow... did I quote that much? :)

Enjoy! There's more in the original blog entry. Have at it.


posted at: 21:49 | path: | permanent link to this entry

My Long Week: The Missing Story

I was so tired the week that I wrote My Long Week that I left off the best story. I wouldn't have even remembered it but I told it to someone at work and he reminded me.

Again, as with the original story, if you disgust easy, don't read this one. If you want a hint, just look at the Google Adsense ads I have on the site now. :)

It was Thursday morning. Elisabeth (our 2 year old) was up at 6 am, maybe earlier, it's all a little fuzzy. Since I knew that Debra and Hannah had been up very late (I went to bed at 2 am and they were still going strong), I took Elisabeth downstairs to keep her quiet. I gave her some food, a bottle of milk and turned on one of the kid's channels (Disney maybe?). I laid down on the sofa with Elisabeth. As I drifted off, she was leaning against me, eating, drinking and watching The Wiggles... or something. :) It was a very nice way to fall asleep.

Sometime closer to 8 am Hannah (our 7 year old) comes downstairs. She wakes me up with the question "Do you know what Elisabeth is doing?"

Without putting on my glasses, I peer across the room. "She's watching TV" I reply.

"No" says my oldest daughter. "She's playing in cat throw-up."

As I sat up, shook off the sleep, I put on my glasses as my youngest daughter turned to smile at me. Her hands and sleeves were quite brown. She held up a vile pile of brown... stuff.

And with a beaming smile she says "Daddy look! PLAYDOH!"


posted at: 21:39 | path: | permanent link to this entry