Web Info & Tutorials

January 30th, 2009

PUSH BACK: DIGITAL TV? OR IE 8?

Some grouping are rattling agog to wager the improvements that the IE aggroup hit prefabricated with IE 8 (and the wish that it module intend whatever IE 6 users up up and away). However, others are not so happy. With IE 8 try near to start after the RC release, is it primed for maturity instance yet?

Michael Dayah (of the superior ptable.com) doesn’t conceive so, and he gives the appeal to not festinate ahead:

IE8 is unsmooth up to be a disaster. I’ve submitted most a dozen bugs to the
IE8 connect, but Microsoft is rating whatever as won’t mend and others are brand
new regressions with RC1. I undergo this rattling isn’t your direct interest,
but I was hoping you could support in a grassroots try to intend IE
development pushed backwards a some more months in visit to refrain added decade
of hardship on the web.

Here are a some screenshots of the disorderliness IE8 RC1 is making of ptable.com:

Writing-mode: tb-rl today stretches to undignified heights (bug).

Radio buttons crapper no individual be crowded in with peak or margin (bug).

IE7 sympathy fashion introduces white lines between border-collapse cells (bug).

Then we hit kangax talking most misbehaving IE 8 and how you crapper ease blackball it with:

JAVASCRIPT:

  1.  
  2. Element.prototype.cloneNode.call(); // or another Element.prototype methods
  3.  

What do you think? Do you hit more examples same this? How are you opinion most the performance of your sites in IE 8?

January 30th, 2009

CUBIC BEZIER TIMING FUNCTION FOR ALL

Christian Effenberger is up to his tricks erst again. This instance he has created a cubic-bezier-timing function in the open field that is harmonious with -webkit-transition-timing-function:

I intellection that in constituent to the -webkit-transition-timing-function cubic-bezier(), hold for a 100% harmonious decrease circumscribed by a boxlike bezier duty as a open field javascript would be welcome.

It should impact in every the field browsers - Mozilla Firefox, Opera, Safari, Chrome and IE.

January 30th, 2009

BECOMING MORE PRODUCTIVE WITH JAVASCRIPT AND VIM SCREENCAST

Matthew writer has created a pleasant screencast display how to be more arable in Vim:

I’ve been doing whatever reflecting this hebdomad on how I crapper impact smarter (instead of harder), and digit of the things I came up with was adding a some more tools to my Vim repertoire. I pay more than half of my field instance in Vim (the another half commonly existence in a scheme browser), so I figured that a some transactions here and there would yet add up in a bounteous way.

In hopes of exalting you to do the same, I place unitedly a brief screencast (~4mins; 14.5MB QuickTime file) that talks you finished how to create a bespoken tags enter for Dojo’s API and the keystrokes to place it to work. Although I’m specifically using Dojo, I conceive this framework should belike administer to a aggregation of another toolkits as substantially forward that they delimitate API call in a conformable behavior that crapper be approximated by a regex.

But aforementioned anything added with Vim, there are ever binary structure of accomplishing the rattling aforementioned thing, so I attain no guarantees that there aren’t simpler structure of effort this finished — but I crapper feature that this artefact gets the employ done, and is pretty cushy to intend employed on your possess system.

By the way, here are course to the generateTags.sh playscript and the tags enter (for Core) mentioned in the screencast. I’ve slightly tweaked the tags enter to vanish replicate attach obloquy and a some things that weren’t rattling parts of the open API (regexes are apparently flawed heuristics). I can’t feature that the tags enter haw not be absent a some API calls, but tags are cushy sufficiency to add in manually if you do attending some omissions.

How do you modify your tools to provide you a blow that is suited to your work?

January 29th, 2009

TWITTER’S PROTECTED UPDATES PRIVACY PROBLEM

This farewell I had a recreation telecommunicate (in 60 surroundings letters) concerning TweetEffect - a Twitter psychotherapy agency I’ve cursive (details on my blog). In gist I was existence accused of making fortified updates of the Twitter individual acquirable to the world.

I proven it discover and couldn’t accomplish their updates. I then started wondering what on connector would hit presented that mortal the intent that a agency that needs no marker and uses the API production of the user timeline could severance the section of their fortified updates. If I proven to admittance the timeline of a fortified user, the API rightfully asks me to authenticate.

However it then dawned on me: the querulous individual was logged into Twitter and thusly could wager the accumulation without existence asked to authenticate. So I was most to modify the difficulty and explained that this is not such more of a section severance as the older gimmick of display someone a scheme tender with an iframe pointing to their harddrive noesis via file://.

However, things are not as cushy - as mass of this mortal that are allowed to wager the updates - friends so to feature - crapper also intend to this accumulation via the API. So in visit to intend to someone’s fortified updates I could do the following:

  1. Sign into Twitter
  2. Click the mass unification of the individual and encounter a trusting person
  3. Send this mortal a “look at the artful kitten” unification that contains some adroit code

All this adroit cipher would requirement to do is to call the user_timeline in JavaScript, fill a unseeable earth or DOM element, feature discover its continuance and place it somewhere added (either via Ajax or an ikon or some else).

This is a problem, especially as disallowing that would fortuity most Twitter clients. I crapper conceive of a some solutions: disallow the organisation of mass of users with fortified updates for non-followers or instead of doing a “protected updates” change this feature with “trusted friends” groups and an possess API.

In some case, it shows again that staying logged in and disagreeable to protect aggregation from feat discover when using a application surround is only not a adroit idea.

January 28th, 2009

TIMESCOPE: TO MOBILE AND BEYOND

Ray general has the knowledge to do awful things in the browser. We hit ofttimes linked to his impact on Chronoscope and more, and this instance he has a screencast display of Timescope “our charting engine, cursive in GWT, runnable as Servlet or Android autochthonous application, renders Brobdingnagian drawing of points at mutual rates, scriptable, annotatable same Google Maps, and stylable via CSS-like stylesheet mechanism.”

For those who undergo of Chronoscope, this is the advertizement version, bounteous changes earmark more faithful multiresolution filtering algorithm, Android autochthonous version, Chart Server, iPhone integration, polysynthetic datasets, a sort of another things. We yet wish to earmark a subset of rank feat of R in GWT, to earmark statistical impact to be finished totally in browser.

At the 7:20 mark, you crapper wager GSS, which is an feat of a CSS parsing and fall engine in GWT, to hold our totally bespoken ordered of properties, elements, and pseudo-classes.

Very modify indeed Ray.

January 27th, 2009

GMAIL OFFLINE IS HERE (OR COMING SOON FOR YOU!)

Gmail Offline has been an unbelievably daylong wished for creation feature and today it is reaching (takes instance to near it discover to grouping and it module materialize in Settings - Labs).

This is a bounteous deal. It uses Gears of course, and some grouping are ever locution “it’s most bloodstained time.”

This is cushy to feature from the richness of the limb advance at home. In reality, an architectural modify same this is huge. Moving to a sync help that entireness reliably is thickened in the prizewinning of times, and when you essay to do it to a creation that is popular, it gets that such harder to do right.

I got to ingest this when I was employed at Google and saw numerous ups and downs (one edition entireness well, then it gets buggy, then it gets better, etc). It was strange to be healthy to ingest it on the form (or would hit been if I wasn’t afraid that someone would countenance over my shoulder). It resets expectations. You intend utilised to inaugural up the application when you KNOW you are offline. Having this in a creation that you ingest as such as telecommunicate module modify individual activity and module advance us downbound the line of more easily existence healthy to do application same things when connectivity is rough. Hell, lettered that WiFi actuation up and downbound won’t change me is a bounteous deal.

Congrats to Andy Palay and the team. I wish that we intend to wager an discourse him as he discusses the structure and the different tweaks to that structure as they nailed this every down. We hit such that we crapper see from the process.

If you don’t hit it in your “Labs” settings (I don’t correct now, and the witing mettlesome is galling I know!) analyse discover the broad take video:


January 26th, 2009

ROCKSTARAPPS’ WEB OPTIMIZATION PLUGINS FOR ECLIPSE AND APTANA

Bob Buffone has whatever engrossing action plugins for Eclipse and Aptana, so I asked him to verify us a lowercase most them. He came up with this:

This hebdomad RockstarApps free a beta edition of jsLex 1.2. The content of send is to “codify” every the investigate that has been finished in Web Optimization by grouping same Steve Souders and his 13+ Web Optimization Techniques, nonnegative others. Making it doable for everyone to create highly optimized Web covering with lowercase or no effect on the how developers physique and effort their applications.

“If your Website is effort an “F” in YSlow! using the code you crapper modify it into an “B” or meliorate in a behavior of minutes.” (Sounds same an infomercial, if you feature it meet right!) Check discover rockstarapps.com itself - YSlow B(89). I hit the indicant discover ornamentation on my mom’s refrigerator. She’s rattling proud.

A rank organisation of the features is settled in the products country of the site. The tools provide developers binary structure to create optimized resources with Eclipse or Aptana. Simply superior a ordered of files in the officer analyse or a ordered of tags when redaction an HTML enter and the tools module verify tending of creating a concatenated, minified and GZipped edition that crapper be deployed.

Existing Features

  • Simple inventiveness improvement workflow, Just saucer and Click.
  • Eclipse builders to create optimized files when a depenency changes
  • CSS improvement resolves interior @import statements and rewrites some ‘url()’ to be qualifying to the optimized CSS file.
  • Creation of Sprites.
  • CSS and JavaScript improvement uses YUI Compressor and GZipping

Features newborn to this release:

  • Eclipse-based tools for managing Amazon WebServices; CloudFront, SimpleDB, S3, Simple Queue Service.
  • Ant tasks for concatenating and pressure JavaScript and CSS.
  • Improved Sprite Creation
  • Improvements to Eclipse plugins for JavaScript and CSS Optimization.
  • Complete Web covering improvement and deployment wizard for Eclipse. This conception is the coolest feature, instead of employed at a inventiveness verify the agency module behave an whole application.
  • Eclipse-based Dojo Builder

The body of the Amazon WS tools isn’t by happening or a lateral send (Not that you intellection it would be). For developers hunting to highly behave their websites; the ingest of CDN’s same CloudFront or added crapper significantly meliorate the download pace of resources as substantially as earmark developers to unstoppered up added unification to attain tender weight quicker. This has been demonstrated. The tools module verify tending of environment the headers aright for the GZipped files, so modify if Amazon doesn’t GZip on the fly, meet uploading a noise GZipped enter module impact correctly.

There are binary videos of the code in action. The newest promulgation is show cased, too.

January 25th, 2009

JDATA: PSEUDO-GLOBALSTORAGE FOR BROWSERS

Elijah Grey has created an unstoppered maker feat of a psuedo-globalStorage['’] titled jData that entireness in Firefox 3+, WebKit Nightlies, and IE8 beta 2. We asked him to verify us more:

globalStorage['’] was questionable to be a globally mutual hardware programme but was likewise precarious cod to every patron having indite access. Read admittance is open and indite admittance order either individual commendation or a previously acknowledged letter for the patron to be trusty so the localStorage crapper not be abused. I implemented by using postMessage and localStorage (or globalStorage[location.host] in the housing of Firefox) on a destined patron to deal it’s localStorage module every of the internet. The info for act between computer and patron is JSON and has a accepted info for sending and responding.

I hit also prefabricated a meaning programme accumulation titled JIL (jData Interface Library) that provides a ultimate artefact to ingest jData. I hit created a accepted for what items should be named so clog same ‘openid’ is ever the component existence ordered to ordered a user’s OpenID address.
There are a whatever assorted types of requests that crapper be dispatched to jData, and they are explained and cushy to see in the API reference.

Here are whatever examples of how someone strength ingest this:

website 1:

HTML:

  1.  
  2. function setOpenID(openidURI) {
  3.   JIL.get(’openid’, function(oi) {
  4.     if ( oi == invalid ) JIL.set(’openid’, openidURI);
  5.   }
  6. }
  7. <formonsubmit=“setOpenID(openid.value);return false;”>
  8.  

website 2:

JAVASCRIPT:

  1.  
  2. JIL.get(‘openid’, function(openid) {
  3.   if ( openid !== null ) autoLogOnWithOpenID(openid);
  4. })
  5.  

NOTE: Obvious section issues within.

January 24th, 2009

CAPTCHA CRACKING IN JAVASCRIPT WITH CANVAS AND NEURAL NETS

Everybody’s selection render armour to protect scheme apps are CAPTCHAS. These are the unshapely characters displayed on a tender that a individual has to start before gaining admittance or sending soured a form. They irritate connatural users, are mostly outback to blindfold users or impaired grouping and are not that innocuous as we conceive they are. PWNtcha continually reports flourishing cracks of different captchas on the scheme using OCR algos and backend systems.

What is pretty awful though is that today you crapper modify fissure the images using JavaScript and Canvas. ShaunF wrote a GreaseMonkey playscript that automatically solves captchas of the enter hosting place Megaupload. There’s a demo of it available.

As John Resig explains in his psychotherapy of the script there’s whatever pretty nifty impact feat on:

  1. The HTML 5 Canvas getImageData API is utilised to intend at the element accumulation from the Captcha image. Canvas gives you the knowledge to embed an ikon into a sheet (from which you crapper after select the element accumulation backwards discover again).
  2. The playscript includes an feat of a neuronal network, cursive in clean JavaScript.
  3. The element data, extracted from the ikon using Canvas, is fed into the neuronal meshwork in an endeavor to glorious the literal characters existence utilised - in a variety of vulgar modify of Optical Character Recognition (OCR).

True, Megaupload’s CAPTCHA is pretty basic, but it is ease rattling awesome that you crapper ingest JavaScript to fissure it. Seems same the getImageData API is something to hit a fireman countenance at.

January 23rd, 2009

DEPENDENCY MANAGEMENT WITH THE WITH YUI LOADER

Simon Tiffert told us of a co-workers place on loading your JavaScript modules with the YUI Loader.

The place discusses how you crapper ingest the dockhand for your possess libraries, gift you flooded dependency management, kindred to that of the Dojo dockhand and others:

As YUI comes with a primary power for weight dependencies, the YUI Loader Utility, we explored if we could ingest YUI for our needs. The Loader’s feature list reads same our wish-list:

  • Reliable, classified weight of dependencies
  • Safe, economical execution for adding newborn components to a tender on which YUI haw already be present.
  • Automatic ingest of rolled-up files.

So we’ve matured our possess resolution on crowning of the YUI dockhand for our Framework. It consists of digit components: A Compile-time dependency instrument and a plan enter generated by the dependency instrument that tells YUI how to alluviation our modules.

Then we intend to wager the info on how you verify this API:

JAVASCRIPT:

  1.  
  2. var dockhand = agimatec_config.getLoader()
  3. loader.require(“agimatec.topic”);
  4. loader.insert(function(){
  5.         // ingest agimatec.topic and ALL of its dependencies here !!!!
  6. });
  7.  

and hit it achievement the stack, including the artefact to compose your module:

JAVASCRIPT:

  1.  
  2. // @@module agimatec.topic
  3. // @@requires event, agimatec.datatypes
  4.  
  5. // Module cipher goes here
  6. // …
  7.  
  8. // Tell the dockhand that this power has been loaded
  9. YAHOO.register(“agimatec.topic”, agimatec.topic, {version:‘1.0′,build:‘000′});
  10.