Web Info & Tutorials

March 31st, 2008

GOOGLE DOCS NOW RUNS OFFLINE WITH GEARS


Being able to have your documents stored up in the cloud, but also saved away for the time where you don’t have connectivity is important, and today the Google Docs team supports local service via Google Gears.

I have been using this ability for awhile, and I have personally seen a couple of side effects:

  • I boot up the computer at times in which I wouldn’t before hand as I know I can get access to this content (as well as Google Reader of course)
  • The experience is a lot faster even in a connected or slightly connected environment as it keeps working even if service is bumpy, say, on a Google Shuttle to work!

Having things continue to just work as you go in and out of service is a great feeling. You trust the system more.

If you are still new to Gears, Ben Lisbakken has published a tutorial that he has as a screencast. Take a peak and get up to speed.

March 31st, 2008

HAPPY 10 YEAR BIRTHDAY MOZILLA

Mozilla turns 10

Ten years ago today, the code dropped from Netscape to the Mozilla project. Mitchell Baker has written up her thoughts as she looks back the last 10 years, and tries to look at the future.

People are celebrating too. Air Mozilla will have a live show with host Asa Dotzler, and guests Mitchell Baker, Brendan Eich, Mike Shaver, and Chris Hofmann.

And then we have jwz. Now the original Internet Web Site of the Mosaic Communications Corporation, is now back online, and he has fun stories of what he had to do to get it working with the old browsers.

In order to make these web sites work in the old browsers, it was necessary to host them specially. In this modern world, a single server will typically host multiple web sites from a single IP address. This works because modern web browsers send a “Host” header saying which site they’re actually looking for. Old web browsers didn’t do that: if you wanted to host a dozen sites on a single server, that server had to have a dozen IP addresses, one for each site. So these sites have dedicated addresses!

The web server also had to be configured to not send a “charset” parameter on the “Content-Type” header, because the old browsers didn’t know what to make of that.

Do you remember why home1.mcom.com through home32.mcom.com exist?

home1.mcom.com through home32.mcom.com exist because the early browsers did client-side load-balancing: the browser itself had a special case where if it was loading “home.mcom.com” it would actually pick a random number from 1 to 32 and instead load “homeN.mcom.com”! Those were physically different servers in the Netscape data center.

Do you remember the behavioral difference the browsers exhibited when they were talking to a Netscape web server?

When loading pages from a Netscape server, the caption next to the URL field in the browser would change from “Location” to “Netsite”.

Congrats to all of the open source hackers who have made “Mozilla” successful.

March 31st, 2008

USING A HASH PROPERTY FOR SECURITY AND CACHING

Hash Browns

Douglas Crockford would like to see a hash= attribute to aid security and performance:

Any HTML tag that accepts a src= or href= attribute should also be allowed to take a hash= attribute. The value of a hash attribute would be the base 32 encoding of the SHA of the object that would be retrieved. This does a couple of useful things.

First, it gives us confidence that the file that we receive is the one that we asked for, that it was not replaced or tampered with in transit.

Second, browsers can cache by hash code. If the cache contains a file that matches the requested hash=, then there is no need to go to the network regardless of the url. This would improve the performance of Ajax libraries because you would only have to download the library once for all of the sites you visit, even if every site links to its own copy.

March 31st, 2008

BROWSER CSS FLOAT ERROR DETECTION WITH JQUERY

Mario Heiderich of Ormigo has created a jQuery based code snippet/bookmarklet that is capable of detecting floating errors and adding a dotted orange border to elements which should be cleared - but aren't.


It saved me a huge bunch of time debugging complex layouts for all browsers - especially IE6. If jQuery isn't already loaded on the page it can easily be fetched with the several jQuerify approaches.

Snippet

JAVASCRIPT:
  1.  
  2. (function(){
  3.     function checkNext(element, floating) {
  4.             if(element.css('clear') != 'none') {
  5.                 var clearing = true;
  6.             } else {
  7.                 if(element.next().length !== 0) {
  8.                     var clearing = false;           
  9.                     checkNext(element.next(), floating);
  10.                 } else {
  11.                     console.log(element);
  12.                     element.css({border:'2px dotted orange;'})
  13.                 }
  14.             }
  15.     }
  16.     $('body *').each(function(){
  17.         var element = $(this);
  18.         if(element.css('float') !== 'none' && element.next().length !== 0) {
  19.             checkNext(element.next(), element.css('float'));
  20.         }
  21.         eval('');
  22.     });
  23. })();
  24.  

Bookmarklet

JAVASCRIPT:
  1.  
  2. javascript:eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(3(){3 5(a,b){4(a.2(\'p\')!=\'9\'){6 c=h}d{4(a.1().7!==0){6 c=o;5(a.1(),b)}d{n.m(a);a.2({l:\'j i k;\'})}}}$(\'g *\').f(3(){6 a=$(e);4(a.2(\'8\')!==\'9\'&&a.1().7!==0){5(a.1(),a.2(\'8\'))}q(\'\')})})();',27,27,'|next|css|function|if|checkNext|var|length|float|none||||else|this|each|body|true|dotted|2px|orange|border|log|console|false|clear|eval'.split('|'),0,{}))
  3.  

March 31st, 2008

HELP DEBUG FIREBUG

There are some bleeding edge releases in the world of the Firebug.

A new alpha version of Firebug 1.2 is available for testing. It has several performance improvements, and some new UI. Give it a go and report any issues.

Also, ChromeBug takes Firebug into the world of debugging full Firefox extensions. It depends on the alpha of Firebug 1.2 and once installed you can boot it up via:

firefox.exe -chrome chrome://chromebug/content/chromebug.xul -firefox
March 31st, 2008

SAVING OURSELVES FROM THE UNWEB

Alex writer gave the speech show at the Visual Ajax User Group held in the niche Atlantic recently. He presented on saving ourselves from the unweb and Chris Keene, CEO of WaveMaker Software, wrote up the speech for us every to read.

Alex ordered discover choices for evolving the Web:

We are achievement a subfigure in the road, however, where the web’s tralatitious strengths haw be dramatically worn by a “hollowing out” of the HTML semantics. There are essentially digit responses to this contest of evolving the web. They are:

  1. Evolve HTML = Better Semantics, Smarter Clients. Evolve the existing scheme by actuation application vendors to add semantic HTML capabilities that hold incoming procreation scheme apps. This allows for the scheme to rest a collaborative accord that preserves the advantages which the scheme has traditionally enjoyed modify sa it transitions to appendage newborn tasks.
  2. Hollow discover HTML = the “Un-web”. Abandon HTML and change it with a coercive but copyrighted deciding aforementioned Adobe Flex or Microsoft Silverlight. Let’s call this the Un-web, as it carves discover walled gardens which module circumscribe the web’s tralatitious openness.

The scheme needs to develop to hold antiquity the Rich cyberspace Applications that grouping poverty to use. At the aforementioned time, scheme tools requirement to develop to be healthy to appendage the crescendo complexness of antiquity these apps.

He then showed how Dojo 1.1 crapper endeavor in a artefact that layers semantics on crowning of the customary HTML. He showed the Dojo Grid as an example:

HTML:

  1.  
  2. <span DOJOTYPE=“dojox.data.CsvStore”
  3.  JSID=” csvStore”  URL=” names.csv”>
  4. </span>
  5.  
  6. <table DOJOTYPE=” dojox.grid.Grid”
  7.  STORE=” csvStore”  QUERY=” { Title: ‘*’ }”  CLIENTSORT=” true”
  8.  STYLE=” width: 800px; height: 300px;”>
  9.   <tr>
  10.    <th WIDTH=” 300px”  FIELD=” lastName”> Last</th>
  11.    <th FIELD=” firstName”> First</th>
  12.   </tr>
  13.  </thead>
  14. </table>
  15.  

Finally, the call out:

The key to the web’s forthcoming is actual rivalry between the application vendors that module obligate them to develop the application quickly. These features include:

  • Auto update capabilities
  • 3-d rendering
  • Support for newborn semantics in HTML
  • In short, provide us autochthonous knowledge within the application to do what we otherwise hit to do in Javascript libraries

What we undergo is that we hit never gotten beatific application enhancements and tools from the mart leader. So today you undergo what you requirement to do to spend the scheme - download and ingest the underdog scheme application and provide it every the fuck you crapper ;-)

March 30th, 2008

DON’T MESS WITH A MARINE

This story shows it doesn't pay to mess with a Marine! Even one who never went through MCMAP. Cheers Jeff
March 30th, 2008

INSTRUCTOR RANKING

I'm interested in checking out a start-up judo club in my area. Was hoping some of you guys could provide some helpful information. 1. At what ranking/belt is someone certified to teach judo? 2. Is anyone familiar with Gulf Coast Judo out of Ocean Springs, MS (believe James Hunt is the head...
March 30th, 2008

BATTERED CANADIAN BANKS HAVEN’T SEEN THE WORST OF IT YET, ANALYSTS SUGGEST

"My numbers suggest we're probably going to see two more quarters of that."

Canada's biggest banks have endured months of writedowns and uncertainty connected with unstable international credit markets, but the worst problems could still be on the horizon, analysts suggest. via CBC News

March 30th, 2008

HAPPY BIRTHDAY JJAJE.

Happy birthday Jeff.