Friday 30 January 2009

Google Ajax Library Service



While doing some research I found this blog post on the Google Ajax API service. You can read up on the service at the Ajax Library API Page. Basically, the service allows you to use Googles cached version of most popular Ajax toolkits. Very cool stuff!

I haven't tried it out yet, but I intend to. I'm guessing it will definitely improve the initial load time of pages that use the service.

Dojo DND

Just a quick note on after finishing up the code. If you use DOM to do all the manipulation with dojo DnD elements, that seems to be golden. Everything works just fine. You can add elements, delete them, whatever and the code still works.
Stick an innerHTML in there anyplace and things will break.

Sunday 25 January 2009

NFL Rings

This is a little off my normal topics, but I think its cool. ESPN has setup a site that has a picture of the Superbowl ring from each Superbowl. Check it out at:
http://sports.espn.go.com/nfl/rings

Thursday 22 January 2009

Back to My Yahoo!

Well apparently the the folks a Yahoo listened to my complaints. (Finally
someone realizes that its all about me!). I tried My Yahoo the other day and
I have all the control I need over font size. No more microscopic fonts! In
addition, the control of the information displayed in the feeds is very nice.
You can display an article summary inline or via a popup window. Also, when
the full article text is available, you can read it via a dialog window.


All of this is totally configurable. Very nice! So for RSS feeds, I'm
switching back to My Yahoo.

T is Undefined - Dojo DND (Drag N Drop)


Here is another note, that will hopefully help some other poor developer
that runs into the same problem. I'm implementing Dojo drag and drop for
a project. I'm refactoring the code so that a table is created from an
Ajax call as opposed to a static data. When the table data is static and
my table container has a static dojoType of dojo.dnd.source, everything works
fine. However, as soon as you add dynamic data to the table, drop stops working.
A javascript error "T is undefined" is generated and that is that.


The problem is cause by the fact that the dojo dnd code does not check the
container for updates. Consequently, when it finds new data in there, breakage
occurs.


The solution is to create your table first. Then, add the dnd features to the
table programattically. For example:


dndTable = new dojo.dnd.Source(dojo.byId("idOfTargetContainer"));

Voila! Dnd functionality is added and nothing breaks. I still have a few
table manipulation features. So if I run across any other tips, I'll be sure to
share.

Wednesday 21 January 2009

The Calendar gadget

We hope everyone had a great holiday season and enjoyed exchanging gifts with loved ones. The lucky ones among us may have been bestowed a 2009 wall calendar for the new year.

If not, don't feel bad � you can always use the brand new Calendar gadget to keep track of your Google Calendar events. This new gadget works on the Linux, Windows, and Mac versions of Desktop gadgets, and it supports all Google Accounts, including Google Apps accounts. Check out the official announcement on the Gmail blog.

The Calendar gadget doesn't come with scenic shots of exotic locations, but it does have a day view mode so you can see what day it is at a glance.



Please try it out and let us know what you think.

Happy new year from the Google Desktop team!

Thursday 8 January 2009

Screen Capture and Video Converter for Mac

Just wanted to include some quick links to a screen capture utility and video conversion tools for the Mac. Haven't used either one, but its good to know they are available.



  • ffmpegx - Video Encoder Converter

  • ishowu - Screen capture ultility for the Mac.

Monday 5 January 2009

Make Sure to Var Your Counters in JavaScript

While working on some JavaScript code today, I treated some for loops like I would in Java. Big mistake! If a variable in JavaScript is defined in a function without using the var keyword it has global scope. So let us just say, the second time you go through the for loop, hilarity ensues! lol.


This little problem would be a great way to teach about encapsulation and side effects. Moral of the story, always var your vars in JavaScript!