Home
vgs_rss' Journal -- Day [entries|friends|calendar]
vgs_rss

[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Mobile Browser Concurrency Test: Get your mobile browsers ready [01 May 2008|03:03pm]
11:46 29.04.2008
Mobile Browser Concurrency Test: Get your mobile browsers ready

Jason Grigsby of Cloud Four has created a research project that needs our help.

He has created a mobile browser concurrency test to "query the number of concurrent connections your phone makes. Your phone’s browser will need to display images for the test to work.

We’ve also set up a SMS keyword to make it easier to get to the test url. You can simply text MOBILETEST to 41411 on your phone, and you will receive back instructions on how to test your phone.

With mobile devices, the speed of web pages is even more important given bandwidth, processor and memory constraints. Yet, for those trying to take advantage of the techniques promoted by Yahoo’s Best Practices for Speeding Up Your Web Site, it is nearly impossible to find how mobile browsers differ from desktop browsers.

Point your mobile browser at the page and run the test.

Mobile Browser Concurrency Test

When the results are in, they will be published under creative commons so we can all learn from then. It is interesting to see how the test itself works:

How Does the Test Work?

Designing the concurrency test was a difficult challenge. In order to have the test work for as many mobile browsers as possible, we needed to support XHTML-MP 1.0 (WAP 2.0). XHTML-MP does not support javascript which meant that all of the testing needed to occur on the server.

The basic test works by delivering a XHTML-MP page containing 64 images distributed equally across 4 domains. When the first image is requested by the browser, the server opens a connection and holds it open without delivering the image. It waits 15 seconds to see if any other image requests come in. As each image request comes in, the counter for the appropriate domain is incremented.

For those interested, we’ve provided a detailed description of our methodology.

If this works well, maybe we can move to other browser factors. With the huge number of devices, operating systems, and mobile browsers, it will be interesting to get data on the diversity.


read more at Ajaxian
post comment

Fast Streaming Ajax Proxy [01 May 2008|03:03pm]
12:02 29.04.2008
Fast Streaming Ajax Proxy

Omar AL Zabir, the co-founder & CTO of Pageflakes has written about a continuous streaming Ajax proxy that solves the common problem that all Ajax proxies have, the double delay in downloading content on server first and then delivering to the browser.

Omar talks about the continuous proxy that can help solve the problems. The approach for the continuous proxy is:

  • Read bytes from external server in chunks of 8KB from a separate thread (Reader thread) so that it's not blocked
  • Store the chunks in an in-memory Queue
  • Write the chunks to ASP.NET Response from that same queue
  • If the queue is finished, wait until more bytes are downloaded by the reader thread

Making a difference

And if you wonder what difference this can make:

Content Proxy served about 42.3 million URLs last month which is quite an engineering challenge for us to make it both fast and scalable. Sometimes Content Proxy serves megabytes of data, which poses even greater engineering challenge. As such proxy gets large number of hits, if we can save on an average 100ms from each call, we can save 4.23 million seconds of download/upload/processing time every month. That's about 1175 man hours wasted throughout the world by millions of people staring at browser waiting for content to download.

There is even more detail on how the proxy has created.


read more at Ajaxian
post comment

Twistori: Telling a story with Tweets and Script.aculo.us [01 May 2008|03:03pm]
12:08 29.04.2008
Twistori: Telling a story with Tweets and Script.aculo.us

Twistori

Twistori is a fun little site created by Amy Hoy and Thomas Fuchs. As you would expect, design is a key part of the application, and the Prototype / Script.aculo.us combo pull off the work.

The site pulls in live data on various topics (love, hate, think, believe, feel, wish) via the real-time twitter search tool summize.

In related Twitter news, I created a Greasemonkey script Twitter Translate that auto-translates foreign text to your language inside Twitter.

For more Ajax news, you can follow me @dalmaer or our new @ajaxian account.


read more at Ajaxian
post comment

JavaScript Type Inference in IDEs [01 May 2008|03:03pm]
11:57 30.04.2008
JavaScript Type Inference in IDEs

Tor Norbye has posted about the type inference that NetBeans has with JavaScript:

Roman Strobl has just published a screencast of the new JavaScript editor in NetBeans 6.1. The demo is around 5 minutes and highlights many of the editing features.

I'd like to dwell on the type inference part a bit. Around four minutes into the demo, Roman shows that NetBeans figures out the types of expressions, including those involving function calls. In his example, all the types happened to be Strings so it may look like a lucky coincidence. It's not! Here's some code fragments showing in more detail what's going on.

He goes on to walk step by step through the completion points discussing how the IDE can get the information that it does.

It is great to see this great support for dynamic languages, as we are accustomed too on the static side.

Netbeans Type Inference


read more at Ajaxian
post comment

Usable Directory Listings with Dojo [01 May 2008|03:03pm]
13:26 30.04.2008
Usable Directory Listings with Dojo

Dojo Directory Shortcut

Sam Foster has written up an example of using Dojo to create directory listings with keyboard shortcuts.

You can now tab over to the box on the top right, and filter your selections:

This tutorial shows you how to upgrade those plain vanilla pages to make getting around a little faster and along the way introduce you to some of the most useful bits of Dojo, and practical techniques for working with them. We’ll touch on: dojo.query, dojo.data, the dojo parser and dijit (specifically the FilteringSelect widget.)

This is a great look at how things work in Dojo land, including the interesting code embed technique:

HTML:
  1.  
  2. <div style="display:none" jsId="linksStore"
  3.         dojoType="dojo.data.ItemFileWriteStore"></a>
  4.         <script type="dojo/method" event="preamble" args="params"></a>
  5.                 params.data = {
  6.                         identifier: "id",
  7.                         items: []
  8.                 }
  9.         </script>
  10. </div>
  11.  

read more at Ajaxian
post comment

Ajax Accessibility and ARIA [01 May 2008|03:03pm]
15:22 30.04.2008
Ajax Accessibility and ARIA

John Resig put together a nice overview of the ARIA Live Regions specification with an example of how you can track a list of people in a way that a screen reader can understand when someone is added or deleted. Imagine a todo list application.

HTML:
  1.  
  2. <ol aria-live="polite" aria-relevant="additions removals"
  3.     aria-describedby="users-desc" id="users"></a>
  4.   <li>John</li>
  5.   <li>Mary</li>
  6.   <li>Ted</li>
  7.   <li>Jane</li>
  8. </ol>
  9.  
  • aria-live="polite" How polite the live area is (as in, how likely is it to butt in to what the user is currently listening to/interacting with). The default is 'polite' - in that it waits until all forms of user interaction have been completed before describing the updates to the user.
  • aria-relevant="additions removals" Only notify the user about new node additions and removals. Since we wish to provide the user with a live list of users we can expect them to be both transitioning online and offline - this will give us the appropriate level of updates to make this possible.
  • aria-describedby="users-desc" A pointer to the element that describes the contents of the live area. If the user

    wishes to know more about what the contents of the field represent this element can be read to them.

Firefox supports this right now (as of 2.0) and we covered AxsJax the toolkit that helps you implement these features, which Google Reader uses to get the job done.


read more at Ajaxian
post comment

Ajaxian Roundup for April, 2008: CSS goodness, Ext licenses, and the Cloud [01 May 2008|03:03pm]
05:34 01.05.2008
Ajaxian Roundup for April, 2008: CSS goodness, Ext licenses, and the Cloud

March has flown by for me, and we had some great announcements, and some busy threads of discussion to show for it. The Webkit folk have had the great insight to realize that although SVG and canvas are still thought of as more advanced technology and are not mainstream in anyway, the problems that they can solve are very useful. In fact, you can take those tools and give specific solutions to use cases. For example, round some corners! The CSS animations and CSS masks work are killer good and exciting.

March was a coming out party for the Cloud, with the technical preview of Google App Engine and the news of the upcoming Aptana Cloud. I have a feeling that 2008 will be the “when we get to hit the DEPLOY button” year for developers, and I am very excited about it!

Finally, the ugly parts. Ext JS 2.1 was released, and with it came a license change. This brought up the undercurrent of some in the community that thought that the old license wasn’t valid, and with the GPL change we saw OpenEXT, the fork.

The Ext JS team is responding with open source exceptions, and is asking for community input.

Ironically, in the same week, SpringSource (makers of the Spring enterprise Java framework) took their BSD code and converted over to GPL.

Here is the full roundup:

JavaScript

jQuery

Prototype

Dojo

Ext

Moo

Browsers / Standards

CSS / UI

Mobile

Performance and the Cloud

Showcases / Games

Utiltiies / IDE

Misc / Humor


read more at Ajaxian
post comment

Adobe lifts SWF/FLV restrictions and creates Open Screen Project [01 May 2008|03:03pm]
06:10 01.05.2008
Adobe lifts SWF/FLV restrictions and creates Open Screen Project

I start with an aside; This must be the most un-Adobe website I have ever seen. Below is the entire website for the Open Screen Project:

Open Screen Project

As the site says, the details are in the press release which says:

The Open Screen Project is working to enable a consistent runtime environment — taking advantage of Adobe Flash Player and, in the future, Adobe AIR — that will remove barriers for developers and designers as they publish content and applications across desktops and devices, including phones, mobile Internet devices (MIDs), and set top boxes. The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. The consistent runtime environment is intended to provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.

The cool part of all of this, is the fact that the old restrictions on the SWF and FLV specifications are now in the past. The restrictions used to say that if you read the SWF spec, you couldn’t build something that would run SWF files. So, could build an editor, a tool, but not a runtime in anyway.

This has just changed by:

  • Removing restrictions on use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Publishing the Adobe Flash Cast protocol and the AMF protocol for robust data services
  • Removing licensing fees - making next major releases of Adobe Flash Player and Adobe AIR for devices free

With news of OpenJDK coming at JavaOne next week, we will see changes with the most deployed runtimes out there. Just the beginning of the path towards an open source Flash.


read more at Ajaxian
post comment

Cuzillion Video and High Performance Book [01 May 2008|03:03pm]
12:43 01.05.2008
Cuzillion Video and High Performance Book

Steve Souders has some more rules for us, as he announces a new book that he is working on. His preliminary view of the chapters are:

  1. Split the initial payload
  2. Load scripts without blocking
  3. Don’t scatter scripts
  4. Split dominant content domains
  5. Make static content cookie-free
  6. Reduce cookie weight
  7. Minify CSS
  8. Optimize images
  9. Use iframes sparingly
  10. To www or not to www

Steve has a call out to the community on thoughts for rules that you would like to see him cover:

The book should be out in early 2009. As I continue my research on web performance here at Google I’ll come up with another 5-10 rules to include. But I also wanted to ask you for suggested rules. What do you think is the performance killer for your web app? Better yet, what performance best practices have you discovered? For example, I think 3rd party rich media (Flash and JavaScript) ads are the long pole in the tent for many sites, and knowing the best way to embed widgets is growing more and more important.

I got to sit down with Steve to discuss the Cuzillion tool that we posted on last week. Steve talks about the project, and then walks us through a screencast showing how he found a problem with Orkut, and solved it.


read more at Ajaxian
post comment

Apple Store: New Effects [01 May 2008|03:03pm]
13:09 01.05.2008
Apple Store: New Effects

I was perusing the Apple Store, getting ready for the dream dual-announcements of iPhone 3G + Macbook Pro, when I saw a new effect. When you go to a product page, there is now an enlarge link that zooms in the given products. You can click on them to go even closer, and then you can mouse around to see every nook and cranny. Double click to get back out, or close to go all the way back.

Take a peak:

Thanks to view source, it appears that Coherent, the library we just talked about, is in use here. Makes sense for a Cocoa style databinding tool to be in use at Apple!


read more at Ajaxian
post comment

navigation
[ viewing | May 1st, 2008 ]
[ go | previous day|next day ]