Ivor O’Connor

June 9, 2009

Standardized Templates With JSON

Filed under: GEARS — Tags: , , — ioconnor @ 4:32 pm

My invoices are web based PHP creations. It would be better to switch to JavaScript. JavaScript with google.gears pulling sqlite data. The questionable part is massaging to JSON data and then right back to JavaScript variables. This excessive redundant busy work for the sake of standardized reusable modules may be a good decision over time and for future projects. The final templates for invoices and what not will hopefully be easier too.

With this goal in mind I came across an interesting Dr. Dobbs article here http://www.ddj.com/windows/217701311. John Resig and Rich Strahl have put together a useful library for funneling JSON data into a template. With these two as the authors there is very little doubt the module will become a standard. I’m going to use the article and a google search on  ‘“Rick Strahl” “John Resig” parseTemplate json‘ as a starting point…

April 5, 2009

Starting Skeleton, Template, For Sqlite Google Gear Self-Contained Client Apps

Client side applications using google gears for locally storing SQL data are obviously the future. They allow applications to be run on any operating system without coding user interfaces, learning new languages, or managing SQL database daemons/servers. You can start by running the application off a server. But it’s much better to simply download the web page and run it disconnected from the internet. To start the application in the future you simply click on the html file you downloaded.  It is so cool.

Where are all the example sites describing how to use google gears for client side applications though? I’ve looked for starting point skeletons and have found NONE! I believe it is because the subject is new. So I’m publishing my own skeleton. It can be found at http://ioconnor.atbhost.net/google.gears.skeleton.html. I’ll probably upgrade it as time goes on but my skeleton is quite good already. After you read through Google’s tutorials at http://code.google.com/apis/gears/tutorial.html download my code and use it as a starting point for your own project. Don’t reinvent the wheel!

My skeleton is self-contained. There’s no need to download a set of files or update a registry, run an installation script, etc., assuming your environment is complete.

However if your base environment is not complete no problem. The environment is tested to verify the gears addon has already been installed, that javascript is enabled, and that you have an up-to-date browser. If something is lacking you must click “ok” to acknowledge the problem and then your browser takes you to the URL where  the fix is.

I wish I had this easy to use skeleton a long time ago. It makes client side browser applications using SQL easy!

I’m probably going to make quite a few client side browser applications using this template. Having a free interface, sql database, and programming language across all OS platforms levels the playing field so much it can’t be ignored.

Update 2009.04.08: The code was refined yet again tonight. There’s nothing in it that seems to be lacking that can be done better. However please comment on it if there is something more that could be done…

April 4, 2009

Stripped Google Gears Causing Accidents

Filed under: debugging, Firefox, GEARS, GOOGLE, howto, JavaScript, Linux, tutorial, typeof, ubuntu — Tags: , , , , , — ioconnor @ 12:02 am

Attempting to use Google Gears when it is not installed on a user’s browser causes an error. You’d think their library would handle this more gracefully than just crashing but it doesn’t.
UPDATED 2009.04.04: Their library should define the call but return something akin to an alert warning the user/developer

The crash occurs on this line:

g_db = google.gears.factory.create(‘beta.database’);

I pulled out my “JavaScript The Definitive Guide 5th Edition” looking for how to get around this. (This is my primary reference book for all things JavaScript. Perhaps if I were better at JavaScript it would be second nature but I’m not good at JavaScript so I spend lots of time looking things up.) I figured “google…” was not defined. So I looked at the index and put a paperclip on each page in the book referenced by the index. Then I tried all sorts of combinations none of which would work. Things like:

if (google === undefined) {
alert(“A”);
} else {
alert(“B”);
}

and

if (google == undefined) {
alert(“A”);
} else {
alert(“B”);
}

and

if (“gears” in google) {
alert(“A”);
} else {
alert(“B”);
}

and

if (google) {
alert(“A”);
} else {
alert(“B”);
}

and

if (google.gears) {
alert(“A”);
} else {
alert(“B”);
}

and

if (“length” in google) {
alert(“A”);
} else {
alert(“B”);
}

but none of above worked! There were no other solutions in my reference book. My reference book doth sucketh.

So I used a try/catch for a while but I’d still get an error message in the “error console”. The try/catch is ugly but it let me do what I needed and polluting the error console seems to be acceptable. Everybody does it. Just leave the error console open while browsing the web to see how rampant the pollution is.

However I revisited this problem today. After extensive googling seeing all sorts of “solutions” that were similar to the above and which did not work I happened to find the following:

if (typeof(google) == ‘undefined’) {

I’m using Firefox 3.0.8 if this makes any difference. It’s the very latest version as of this month from Mozilla. I’ve got to remember this solution in the future!

Blog at WordPress.com.