Tochka

Another blog about web technologies

Vitaliy Shevchuk has proposed SJAX: AJAX option for automated in-browser testing which makes testing of Ajax apps simpler with Selenium that having to waitForAjax and friends.

The Problem

However, things are getting more complicated with AJAX. No page is loaded, but the content has changed. And it hasn’t changed instantly; AJAX is asynchronous by its definition. Setting a bug interval is a bad solution: it makes build cycle very slow without really solving the problem.

Some guys suggest using a “waitForCondition” command. In other word, every time AJAX is in action you need to manually add a waiting condition. This is much better then nothing; at least it is a real working solution. However, test creating is much longer and less fun.

Another option would be to extend Selenium to make it aware the underlying AJAX framework, so that the test case would pause until XMLHttpRequest is satisfied. Well, it requires extending Selenium, which is not very simple task neither. And there is a multitude of AJAX frameworks available, it would be impossible to adapt Selenium to every of them. And there are other in-browser testing solutions, not only selenium: both open source and commercial ones.

Solutions?

And the ideal scenario would be the following:

  • Test, application itself or the in-browser testing framework raises a flag to mark the current session as the one of automated testing.
  • AJAX framework detects the flag and passes to synchronous mode.
  • In this case, a method of user action simulation (click/type) of Selenium will not return until the AJAX data is successful fetched and processed. So Selenium will not be able to continue before the page content is updated, and it’s exactly what the user expects from his macros.

source: ajaxian.com

The Hardware of Tomorrow Versus the Platform of Tomorrow

  • Wednesday Jan 24,2007 05:59 PM
  • By R2D2
  • In News

Joe Walker (DWR. I know you know) is talking about The Hardware of Tomorrow Versus the Platform of Tomorrow.

The problem is that web-browsers are a step backwards as far as multi-threading goes. In Javascript there is no such thing as a new thread, and worse than that, the entire platform (i.e. a browser) runs a single JavaScript thread. If a script in one window goes into a tight loop, or runs some synchronous Ajax then the browser HTML display freezes.

So are the any solutions?

  • Adding thread primitives to Javascript might technically possible, but it seems to me to be impractical; the single-threaded assumption is built fairly deeply into many applications.
  • It might be possible for browser manufacturers to create a thread per domain. I don’t see how this could cause problems, but I’ll admit that I have a suspicion that I’m overlooking something. If it does work then it might be possible to allow developers to create new threads by dynamically creating iframes in other domains and having some safe way to communicate between them.
  • There is a Javascript pre-compiler called Narrative JavaScript that looks like it might be of some use: it contains a spawn() method to start a new thread of execution. It’s written in Javascript so you can deliver the pre-compiler to the browser or deliver the output. However until there is support for something like this at a language level that can exploit newer hardware, it doesn’t solve the problem.

The solution that I’d like to see is a language emerging that pushes the job of creating threads to the compiler, that runs on the JVM, and that is available in all browsers. I think I can safely predict that this is not going to happen any time soon though.

I agree that it will be interesting to see how Ajax fits in after we see great looking apps via WPF and the new Apple APIs (and Apollo….).

However, faster CPUs also mean faster running Ajax applications.

And, threading? The idea of having actual threading code in Ajax apps scares me. It is hard to get threading code right. We don’t want to repeat the problems of the past by making people mess up multi-threaded code. Instead we need to have better mechanisms for handling concurrency and threads. If we ever go there, we can learn from COmega and the world of chords.

What do you think?

LG Prada Touchscreen Phone

lg prada

If you can’t bother waiting for iPhone, you could always opt for LG’s Prada phone, being touted as the first fully-touchscreen phone. Expect some controversy with that claim from the fat, PDA/phone quarter.

The Prada KE850 weighs 85g, is 12mm thick [a weenie bit thicker than the iPhone] and boasts an extra wide LCD for all that touchy-feely goodness. The screen offers a decent resolution of 400 x 240 pixels widescreen and the in-built 2MP camera can record video at 30fps. There’s no doubt it’s pretty but it’s not 3G and has no Internet capabilities which is fine for those that don’t want the world crammed into a single device. Read the rest of this entry »

Urwerk Hammerhead 201 Watch Just £25,000

Urwerk

Urwerk make expensive watches. In fact, expensive is almost too cheap a word to describe the kind of tags this company slaps on its luxury timepieces.

Thankfully, Urwerk tend to rely on engineering for its exclusive status, unlike others that think if you throw enough Swarovski crystals at something it will pass for style. Still, would you pay up to £25,000 for this watch?

Read the rest of this entry »

Logahead Blogging Engine UNU Edition

  • Sunday Jan 21,2007 01:13 AM
  • By R2D2
  • In News
logaheadunutrackcomm.gifunuplugins.gif

The UNU edition is based on the logahead beta 1.0 code published under GNU/GPL license. While the original version sticks to the basic functions of a blog (mainly publishing posts and receiving comments), the UNU edition is more enchanted and offers a number of additional features.

WYSIWYG Support, Additional Plugins, Nice URLS, Trackback, Comment Moderation and much more

Demo + Download Enhanced UNU Edition: http://typo.i24.cc/logahead/
Standart Edition: http://www.logahead.com/

Read the rest of this entry »

4images – Image Gallery Management System

  • Sunday Jan 21,2007 01:06 AM
  • By R2D2
  • In News
4images

4images is a powerful web-based image gallery management system. Features include comment system, user registration and mangagement, password protected administration area with browser-based upload and HTML templates for page layout and design.

More features are: RSS feeds, search engine, automatic thumbnail generation, extensive user administration, upload function for users, showing IPTC and EXIF data of images, rating of images, spam protection, protection against hotlinking, newsletter function, e-cards, integrated database backup function, etc. Read the rest of this entry »

Compression, Caching, for faster load times

  • Saturday Jan 20,2007 06:03 PM
  • By R2D2
  • In News

Jesse Kuhnert, Tapestry/Dojo team member, spent time on caching and compression mechanisms in the effort to give the best experience “for free” with Tapestry.

The result was:

  • Browser Caching: Previous versions of the framework weren’t aggressive enough in the way that all of the bundled assets (images/javascript/css/etc) were managed with http headers. Though the Expires and If-Modified-Since headers were being used it wasn’t really the complete solution. All of these resources now have realistic / appropriate headers set depending on the type of content and browser being delivered to. (Etag / Cache-Control / Expires / etc) Things will probably still be undergoing more and more change as this section is refined but anyone currently serving this content from the core Tapestry jars (or their own) – with no other configuration – should see a significant performance boost with the added caching support.
  • Gzip Compression: The biggest (and scariest) change has been the addition of intelligently gzip’ing content where appropriate. Now all javascript/css/html content that is typically managed by Tapestry gets a good once over with some gzip compression to help make those responses as snappy as possible.
  • Much Faster load time: The overall load time for pages should be much better now. The bundled version of dojo with tapestry is now served at a size of roughly 50k – down from the default size of 200k.

I would love to see some benchmarks on the gzip compression side. I used to read that for smallish file sizes, and certain machines, and certain networks, the overhead wasn’t worth it.

Have anyone in the community done good work on when to gzip versus when not too?

symfony 1.0 beta

Symfony, the popular PHP Ajax framework, has released a beta of their 1.0 framework.

Based on the best practices of web development, thoroughly tried on several active websites, symfony aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure.

Symfony provides a lot of features seamlessly integrated together, such as:

  • simple templating and helpers
  • cache management
  • smart URLs
  • scaffolding
  • multilingualism and I18N support
  • object model and MVC separation
  • Ajax support
  • enterprise ready

Read the rest of this entry »

sNews 1.5.30 – one file driven CMS

ai.gif

sNews is a completely free PHP and MySQL driven tool for publishing and maintaining news articles on a website. Integrating sNews into your existing design is simple, but you could also use sNews on it’s own, as a simple Content Management System. Consisting of only one file, sNews is extremely lightweight, very easy to install, and easy to use via a simple web interface.

sNews is both template independent, and standards compliant, and having only one file means you can redesign your site whenever you want. We are constantly working on sNews development, which means that as new features are added, all you have to do is download and install the newer version. Your site and design will not be affected. Read the rest of this entry »

JsHttpRequest: Low level Ajax library

Dmitriy Koterov has written JsHttpRequest a light wrapper on top of XHR and friends that features:

  • Cross-browser compatibility. Library works with IE5.0+, Mozilla 1.7+, FireFox 1.0+, Opera 7.3+, Safari (”+” means “in specified and newer versions”). By this token, code could work without ActiveX and XMLHttpRequest support (but if these capabilities are available, they are used automatically).
  • File uploads from user browser to the server without page reloading.
  • Full support of PHP debug features. If server-side script fails on an error (including fatal error, e.g., call of undefined function), client-side script can handle it correctly and show diagnostics. Besides response data, it is passed the output flow of server-side script which contains PHP error messages.
  • Multi-dimensional data structures exchange (JSON analog) in client request and server response. At that, are used the standard PHP instruments — multi-dimensional associative arrays (request data available at $_REQUEST, response data may be saved to $_RESULT), as well as JavaScript standard capabilities — nested objects and properties. No XML in the level of API: you work with “native” language variables.
  • PHP session support using usual way.
  • Optimal data loading method choosing (XMLHttpRequest, Microsoft.XMLHTTP,
  • Interface is compatible with XMLHttpRequest.

Downloads

Pages (7): « First ... « 2 3 4 5 6 7 »
SEO Powered by Platinum SEO from Techblissonline