| |
Truism
The truth with all major technologies is that they will come to fruition. The bigger question that needs to be answered is WHEN? Just look at how long it took for the PC or Text to Speech to meet their orginal promises.
Educate yourself and separate facts from promises. Well, unless you're fortunate enough to have a hefty R&D budget!!!
Shew
Past experience has shown that you need to view all "revolutionary cures" with an open mind, dicipline and a bit healthy skepticism. This is based on history and the experience of witnessing past major and minor technology cycles from PC's, Client Server to the Internet. As a business it's all about evolution not revolutions.
Anyway, this my attempt at cutting through the buzzwords and Hype and getting to the heart of Web 2.0 aka Social Networking aka Social Software and it's practical application and consumer and commercial value. Web 2.0 is still in its infancy so be prepared for the teething problems. Remember context and practicality!
Social Networking apps are dependent on Ajax as a technology but Web 2.0 is not about the technology. You don't need to be a Social Networking site to use Ajax. I totally get web services such as eBay, PayPal and Amazon. These companies have great leaders who think horizontally and vertically. There is a threshold to bringing in traffic so why not embed your site into other sites by making features available to the others including your own customers.
The key take away from John Doerr's podcast was defining whether you want to be a service consumer or producer. Obviously, the cash is in being a producer - well as long as it is of monetary value to consumers!!!
Philosophy
The philosophy is that it's now possible to build better user experience via Rich Internet Applications (RIA) because bandwidth is cheap and PC's are now faster. So the theory goes that users will not really notice the download time required for the large client presentation layer files.
Heck if people are willing to download MP3 and movies - people will definitely wait for their favorite site to load.
Sure there's Flash but Flash was never meant to be a development environment and it still isn't unless you only have one developer. Ajax and Flash Compared. Well, I guess this is where Macromedia Flex comes in - hehe.
Sure there's Java applets but applets are huge and in terms of creating RIA, applets are an oxymoron. Seriously!
Hopefully, the lessons of the thin vs thick client from the Client Server days have been learned.
What is Ajax?
The DOM Scripting Task Force has a succinct definition of Ajax. Here's some details and humour from the Web Standard Group interview with Jeremy Keith.
A scripting technique for silently loading new data from the server. Although Ajax scripts commonly use the soon to be standardized XMLHttpRequest object, they could also use a hidden iframe or frame.
An Ajax script is useless by itself. It also requires a DOM Scripting component to embed the received data in the document.
DOM Scripting Task Force, Ajax Definition

First, Ajax (Asynchronous Javascript and XML) introduces potential user interface issues. In particular, poorly designed Ajax applications work in ways that aren't intuitive for the average user. For example:
- The back, stop, and refresh buttons don't always work.
- Since Ajax applications generate pages dynamically, there generally aren't static links available for bookmarking or sharing with others.
- Pages don't always print well.
- Applications don't run offline.
- Clicks and actions generally don't get included into a browser's history table.
My sense is that we're just seeing the tip of the iceberg when it comes to browser-based applications-there are many more on the way, and we'll be increasingly amazed with what can be done.
Dan Grossman(Dan is a VC to boot), Venture Forth, What's Wrong With Ajax? - September 21, 2005
Ajax is Real
- Open Standards
- Usability
- Cross-Browser and Cross-Platform Compatibility
- Benefits of Regular Web Applications
- Incremental Skills, Tools and Technologies Upgrade
- Works with Flex and Flash
- Adoption
- Web 2.0
- Ajax is Server Agnostic
- Next-Generation RIA Technologies for the Web Aren't Here Yet
Andre Charland, Top Ten Reasons Ajax is Here to Stay - September 21, 2005
Tutorials
Examples
Here are some examples for chew on. Think about how you can apply them to your existing business or even your new biz.
| Site |
Type |
Description |
| Amazon Diamond Seach |
OMG |
Talking about getting it. Amazon has created a Diamond for Dummies component where you use a slider to choose price, shape, carat, cut, color and clarity. Even I (a guy) could pick and buy a diamond. Go and check it out. |
| Wysiwyg |
Editing |
Wikiwyg is a Javascript library that can be easily integrated into any wiki or blog software. It offers the user multiple ways to edit/view a piece of content. Something for FCKEditor amd TinyMCE to aspire to. I'm going to take it for a spin. |
| Ondra |
WWW SQL Designer |
Design a database from your browser - WOW. Oh, I hear Billy, Larry and the other big boys calling. |
| Backbase |
Explorer |
Group note taking. Everyone types on the same web page |
| Clearnova |
ThinkCAP JX |
RAD for Ajax, J2EE, and Open Source - Basic Ajax Examples |
| Protopage |
Bookmarks |
Ajax personal bookmarks springboard. Information portal |
| Zuggest |
Amazon |
Francis Shanahan wrote it .NET. Billy would be proud |
| qooxdoo |
Bookmarks |
Nice menu and toolbar examples - much more! An open-source javascript based toolkit |
| PrimalGrasp |
Spellchecker |
So Wired |
| Encodable Industries |
File Uploader |
Wired |
Ajax Risk
Alexei White of Ajax Info has written a Most Xcellent article on Ajax and Technological Risk and how to mitigate the risk!!!. Alex also talks about the Cultural and Marketing risks. Anyway, it's a definite MUST read.
Security
Well, what did you think? Ajax was going to be easy? You have to be twice as secure. Now you have to add the same validation to Javascript as you did with your scripting language!!!
Here is some late night reading for you. Open Web Application Security Guide project has added Ajax.
Eric's Rules of Thumb for Ajax Security:
- If you use user authentication, make sure you check for it on the request page!
- Check for SQL Injections
- Check for JavaScript Injections
- Keep the Business Logic on the server!
- Don't assume every request is real!
- Check the data with validation!
- Look at the request's header information and make sure it is correct
Having common sense when programming an Ajax application will keep you and your data safe.
Eric Pascarello, Is Ajax unsecure? - November 16, 2005
- Resource Theft: Resource theft can happen when Jack Innocent visits the website of Evil Bob. Evil Bob has written some XHR code that repeatedly requests compute expensive pages from the site of Victim Inc. Thus Evil Bob gets to use Jack Innocent to do his nasty work.
- Cross Site Scripting: Should we ban cross-domain XHR because of XSS attacks? I'm not sure, but be sure of this: there are plenty of ways to allow XSS attacks on your site without cross-domain XHR.
- Slow 3rd Party Web Sites: If you design your website to use thousands of small requests then you are asking for trouble - so don't do it! Likewise if you design your website to depend on a slow resource then expect your website to be slow. Eric is right in saying that proxy caching is a great solution to this problem, but let's not ban cross-domain XHR because people can do silly things with it.
Ajax Due Diligence
There are always two sides to every story. Ajax like all technologies has issues!. Make sure you know what they are before it's too late. Also before jumping in head first, use real world practices and perform the proper due diligence of the frameworks, libraries etc you are thinking of using.
- Know what you want: Are you looking for pure XMLHTTP? Or do want XMLHTTP framework that includes components? I'm looking for the later.
- Supported Browsers versions: IE 5+ (which will be a stretch), Firefox 1+ etc. Do the supported browsers match your users?
- Supported Javascript versions: Same as the above. But how many people are using Javascript 1.6 anyway?
- State of build: Is it a alpha, beta or production grade. If you're a production site then you better be pretty sure.
- Bug list: Are there a lot of critical bugs? Are bugs left to rot or even worst unanswered? How long does it take to fix bugs?
- Adoption: Are there a lot of people using it? Go and check out the implementations.
- Support and community participation: Are there 100's of people participation in the forums? Are there new post every couple of hours.
- Check the code: If you're using code, treat it as a white box rather than a black box. No use in being the goat.
- Documentation: If there isn't any then forget about it. Examples are a must. Examples will be the starting point for drilling down into the code.
- Roadmap: If none is published, make the effort to find out.
- Test Drive: I know that this is pretty obvious for developers but take the frameword/component for test drive just like you would if you were buying a car. I'd suggested testing even harder!
- Know what you're getting: Nothing is perfect. All this sounds like a RFQ or RFP
Rants
I've been checking out a handful of libraries and more than a few are lacking in the area of components/widgets. There are way too many Javascript errors. No wonder they're plastering BETA in their site logos!
Check out the Open Source Applications Foundation (OSAF) which has a list of Open Source libraries including pros and cons, Survey of Ajax/JavaScript Libraries.
Issues
| Article |
Status |
Description |
| Ajax ROI Faceoff |
Article |
A head-to-head look at how a traditional web application matches up to an Ajaxian one, and how cost savings could potentially be calculated. |
| Listen kids, Ajax is not cool |
Article |
Great article about GUI design |
| Exploiting the XmlHttpRequest object in IE - Referrer spoofing, and a lot more... |
Exploit! |
In fact, about 2.5 years ago I noticed a problem in XmlHttpRequest's implementation in IE - IE doesn't validate some critical fields that are provided by the user [1]. Back at that time, the attack vector was through an XSS condition, but the basic flaw (and other, related flaws) renders itself nicely to other conditions, which we'll see below. |
| IE Memory Leak |
Fix |
The JavaScript creates 500 closures which contain references to just the body tag. On my system I've seen memory increases of 500 - 600 kB's in IE. Firefox handles the test without any leaks. Opera shows a more unsteady memory usage curve, but overall the memory usage hardly increases. Here's the fix Event Cache |
| Javascript memory leaks |
? |
But with the eBay API, you communicate directly with the eBay database in XML format. By using the API, your application can provide a custom interface, functionality and specialized operations not otherwise afforded by the eBay interface. |
| Fixing the Back Button and Enabling Bookmarking for Ajax Apps |
? |
Everyone's favourite Ajax technology app is Google Maps. Google have done a stunning job... But when I came to try to bookmark a page and I had to hunt around for 'link to this page' over on the right hand side. Why have they broken such a basic function of the web? I use bookmarks A LOT and the extra effort bothered me. I got over it though, and life went on. |
| DHTML |
Blog |
Blog about DHTML |
| Life After Ajax? |
Article |
But to alter an old programmer's saying, debugging Ajax code is twice as hard as writing it, so anyone who writes clever code may not be smart enough to debug it. |
| Errors and Ajax |
Article |
Great article at handling Javascript errors |
| Drip: IE Leak Detector |
Article |
Download Drip |
| Fixing JavaScript memory leaks for good. |
Article |
IE leaks memory like a sieve when you use closures with any kind of COM object (including DOM elements, which are implemented using COM). That kinda sucks. Firefox and other browsers apparently have the same problem only to a lesser extent. Damned multiple garbage collectors! |
| JavaScript sucks (volume 1) |
Article |
25 concrete reasons why Javascript sucks! |
| Issues when working with Ajax |
Article |
You can use setRequestHeader() to add almost any header to the request. One idiosyncrasy is the referrer header: depending on the browser this may or may not be sent, and may or may not be writable. |
| Mastering Ajax, Part 3: Advanced requests and responses in Ajax |
Article |
In this article, I move beyond the basics in the last article and concentrate on more detail about three key parts of this request object: HTTP ready state, HTTP status code, The types of requests that you can make |
| Stealth Submit Using AJAX |
Blog |
Have you ever started filling a web form and halfway into it decide against submitting because suddenly you no longer trust the website enough? You closed the browser window and that was the end of story, right? Wrong! The website might still have your information. You think it's impossible? This article will show you how it can be done. I call the technique Stealth Submit. |
| Speeding Up AJAX with JSON |
Article |
XML is the standard way to interchange data, but it's often not the best way. Although XML can add structure and metadata to data, it does so in an overly verbose way. XML also has a fairly complex syntax, requiring a non-trivial parser to attack it. In JavaScript, XML must be parsed into a DOM tree to be used. And, once you've constructed the DOM tree, you still have to pilot through it to create corresponding JavaScript objects or otherwise use the XML data in your client-side Web application. I agree 100 percent!! |
| Ajax and Scaleability |
Article |
Some AJAX sites fetch all the data and then display it in an interactive fashion. Others will fetch a reduced set of data and then pull the missing data when it’s requested. It’s the latter where care needs to be taken. Lazy data fetches are great from a user point of view. They are fast, they make the app responsive. But, if a lot of data is fetched lazily then this is a high overhead way of fetching the data. It may work well under low load but as load increases, the servers may slow down unacceptably due to the extra overhead of high frequency/low content RPCs. |
Ironically, Microsoft invented Ajax in the late 90s and has used it for years to power an online version of its popular Outlook e-mail program.
Ajax's resurgence in recent months is thanks partly to its innovative use by Google Inc. to fundamentally change online mapping. Before, maps were static: Click on a left arrow, wait a few seconds as the Web page reloads and see the map shift slightly to the left.
Associated Press, Ajax: Microsoft's Achilles heel? - October 24, 2005
Ajax presents design issues that need to be addressed. I'm really getting tired of all the Javascript errors though.
With that being said, Ajax is here and it's not going anyway anytime soon so get active and try out some Ajax frameworks!
Keep searching for factual goodies such as Measuring the Benefits of Ajax.
The biggest void in the Ajax discussion, IMO, is how network and server availability affects XMLHttpRequests. I can only guess this void is a result of skill set - if you're hot with CSS is issues relating to UI design, chances are you're less fluent in the fine print of HTTP or used to thinking in terms of writing fault tolerant clients to remote services.
That gets further compounded by developing on localhost where you don't get to see the impact of synchronous requests, for example, when the network or remote server is taking a break.
Debugging
Javascript debugging had always sucked. Well, debugging was non-existent. And NO, the alert box or even document.write do not count.
But there is hope. New tools are here and the number is growing. Ajax frameworks are including logging feature. Here is a must read article, Keeping Up With The Ajax Trend which discusses the new era of web developer and debugging tools.
Developer Tool Bars also include some basic DOM stuff. Check out some of the Free Browser Tools.
| Article |
Browser |
Description |
| Mouseover DOM Inspector |
X Browser |
The Mouseover DOM Inspector, or MODI for short, is a favelet (also known as a bookmarklet) that allows you to view and manipulate the DOM of a web page simply by mousing around the document. |
| Venkman |
Mozilla |
A real Mozilla family debugger. Get it this extension. |
| Tamperdata |
Mozilla |
tamperdata is an extension to track and modify http/https requests. |
| Greasemonkey |
Firefox |
Greasemonkey is a Firefox extension which lets you to add bits of DHTML ( "user scripts ") to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page's style, user scripts let you easily control any aspect of a web page's design or interaction. |
| XmlHttpRequest Debugging |
Mozilla |
What it shows is the XMLHttpRequest debugging console, a floating div embedded in the page being debugged. This replaces the javascript console, which the previous script used for tracing. Each individual XMLHttpRequest invocation will get listed there, with all the details on the request and the response, as well as options to edit and replay the request or replay the response callback. |
| ieHTTPHeaders |
IE |
ieHTTPHeaders is an Explorer Bar for Microsoft Internet Explorer that will display the HTTP Headers sent and received by Internet Explorer as you surf the web. It can be useful in debugging various web-development problems related to cookies, caching, etc. |
| Miscrosoft Script Debugger |
IE |
Only good when using IE and IIS which I'm NOT - so pass |
Oh Oh
The architectural wars continue to cause a schism between developers and browser makers. Once again the consumer is stuck in the center waving their bullet riddled white flag yelling no mas.
As the latest browser war between Firefox and Internet Explorer heats up, Ajax developers need to be as agile and responsive as ever. There may be convergence on some issues such as CSS or XML, yet each browser camp has a different attitude towards adoption of the latest standards: Mozilla embraces the Scaling Vector Graphics (SVG) and ECMAScript for XML (E4X) standards as well as XML User Interface Language (XUL) in the latest beta version of Firefox. Microsoft stands by their Extensible Application Markup Language (XAML) technology. All of these technologies represent a marked change in direction from the current Ajax mainstays of JavaScript and XML.
As a result, Ajax developers must keep abreast of the latest technologies and take advantage of the most productive toolsets now more than ever. Successful Ajax developers also need to be mindful of their audience and avoid viewing every problem as a nail for their Ajax hammer. Instead, Ajax developers need to continue to innovate, creating new and unique patterns that further enhance Web application usability.
Dave Johnson, Ajax: Dawn of a new developer - October 17, 2005
In an ideal world Mozilla and Microsoft would agree on a common standard for rich web apps (e.g. XUL). Ajax seems to have been born out of a lowest common denominator approach. XUL is Moz only, Flash & Java require installed VMs.
Andrew C. Oliver, Ajax quote of the day - September 21, 2005
Peter-Paul Koch of QuirksMode has an interesting article explaining why Javascript feature detection is better than browser detection. Huh, I've learned something today. Thanks Peter. The light just turned on. Want to make some easy cash? Develop Javascript IDE / debugging tools. If Web 2.0 goes bust then you'll be the only one in the black!!!.
Fairly soon you will notice that certain features of JavaScript do not work in certain browsers. If you want to use an advanced bit of script, you first have to check whether a browser supports the objects you want to use. This page explains how to do it.
... While browser detection works well enough for 90% of your visitors, some obscure browsers won't be treated correctly and browsers that appear after you've written the page may not be adequately covered either. The results would be either a stream of error messages or a script that isn't called while the browser can easily handle it. In both cases, you're cheating your end users and coding incorrectly.
Peter-Paul Koch, Javascript - Object Detection - May, 2005
Real World Practices
What's your fall back plan? Here's an interesting article Who Really Turns Off JavaScript?. I tend to agree but only in the context that pure non-tech's AKA consumers and developers have Javascript enabled by default. The only group that I theorize that doesn't have javascript enabled are the Microsoft haters!!! Sorry Billy.
| Subject |
Description |
| How To Use Ajax |
While this new technology offers some great capabilities, it also sparks some unquestionable debate over issues with the Back button. Kris Hadlock explains how to use Ajax in a real-world situation and how you can assess its value in a project. |
| 10 Places You Must Use Ajax |
Use Ajax for Form driven interaction,Deep hierarchical tree navigation,Rapid user-to-user communication,Voting, Yes/No boxes, Ratings submissions,Filtering and involved data manipulation and Commonly entered text hints/autocompletion. BUT do not use Ajax for Simple forms,Search,Basic navigation,Replacing a large amount of text,Display manipulation and Useless widgets Also checkout, Places To Use Ajax |
| 12 perfect cases for Ajax |
Rating, voting, yes/no, Input suggestions, Direct validation of form data, Status area, Automatic update, Microlink, Live form, Active Search, Data navigation, Panning maps or large pictures, Filtering data, Chat |
| The Ajax response: XML, HTML, or JSON? |
Interested in all this Ajax business? You should really check out JSON (JavaScript Object Notation). Here's an article discussing the pros and cons. |
| On-Demand Javascript |
Download Javascript as and when required, instead of downloading it all on page load |
| Benchmark - style vs. className |
Using className is FASTER |
| Best Practices: Implementing javascript for rich internet applications |
Separate Behavior from Content and Presentation, Provide progressive enhancement, Code for flexibility, Alter content as little as possible, Document output, parameters, and dependencies |
| Migrate apps from Internet Explorer to Mozilla |
Great tips from IBM. Includes good tutorial about differences in DOM and Javascript execution between the browsers |
| Ajax Considered Harmful |
IE's XMLHTTP object caches GET requests while Mozilla's (and probably the KJS version) don't. That get's into a fine line between what's Javascript's job and what's the browser's job. |
| JavaScript Required |
How to provide your users with directions to enable JavaScript for IE, Firefox and Netscape! |
| Leak Free Javascript Closures |
Javascript closures can be a powerful programming technique. Unfortunately in Internet Explorer they are a common source of memory leaks. Therefore I propose a method to create closures that don't leak memory. |
| Tackle the Refresh Button |
The last thing we want is for a user to hit refresh and all of your nice state goes bye-bye. |
| DOM Scripting & Ajax |
Great Great article IMHO even though there's a bit of disagreement by Paul Boag, Stuart Langridge on Javascript |
| Rich & Scalable Ajax |
Practical thoughts about Just-in-time Data and Just-in-time Business Logic |
| Thin Ajax Clients – Model–View-Controller |
We are strong believers in the software design pattern called Model–View–Controller. Essentially keep the model (data, business logic, domain objects) separate from the View (presentation, page, screen, forms) and let the Controller (events, submits, requests, interactions) drive pulling information (Model) to be presented (View) only as needed. |
| Ajax Latency problems: myth or reality? |
I've come to a tentative conclusion: network latency is an important issue to consider during the implementation of an Ajax Application, both by the developer as well as by the interaction designer. If you make the wrong decisions, usability can be terrible. If you make the right decisions, Ajax will significantly improve web application usability. It is still a tentative conclusion, |
| Synchronous Requests == BAD |
In essence, when you make a synchronous call with XMLHttpRequest, everything else stops and waits for the request to complete. And that means everything - even any intervals you've set. You can't even abort() the request via the readyStateChange property (don't believe me? try and watch a [browser dependent] crash...). |
| Optimizing JavaScript for Download Speed |
Minimize HTTP Requests,Defer or Delay Loading,Place Compressed .js Files in the head,Conditionally Load External JavaScripts |
| Ajax Mistakes |
Must Read! Using Ajax for the sake of Ajax, Not giving immediate visual cues for clicking widgets, Too much code makes the browser slow etc etc. The list is editable and made collaboratively, anyone can add to it or edit it! |
| Javascript Refactoring For Safer Faster Better Ajax |
None of the code snippets, templates, prototypes, tools, libraries, or frameworks available out there can eliminate a need for good code design. Even if all of those libraries were written perfectly without bugs or design flaws, there would still be code that you would have to write on top of these libraries. |
| Tuning Ajax |
I like to think writing enterprise Ajax applications is a lot like writing assembly code for a real-time system; to make it fast you generally have to step outside of the OOP best practices paradigm and do what works, not what makes your code easy to read and maintain. This flies in the face of some primary virtues of software engineering. Eventually these techniques will mature and become encapsulated in server-side logic and declarative markup where they can be better managed and leveraged. |
| Benchmark - W3C DOM vs. innerHTML |
The most obvious conclusion of these tests is that innerHTML is faster than "real" W3C DOM methods in all browsers. . The W3C DOM table methods are slow to very slow, especially in Explorer. |
| Designing RIAs For Search Engine Accessibility |
Bakspace techniquies: Lightweight Indexing, Extra Link Strategy and Secondary Site Strategy |
| The window.onload Problem - Solved! |
First, let me define the problem. The window.onload event is used by programmers to kick-start their web applications. This could be something trivial like animating a menu or something complex like initialising a mail application. The problem is that the onload event fires after all page content has loaded (including images and other binary content). If your page includes lots of images then you may see a noticeable lag before the page becomes active. What we want is a way to determine when the DOM has fully loaded without waiting for all those pesky images to load also. |
| Crossbrowser DOM Scripting: Event Handlers |
learn how to write cross browser addEvent and removeEvent. Article includes code! |
| Unobtrusive show/hide behavior reloaded |
All this has resulted in a series of new articles, of which a few describe solutions to show/hide or collapse/expand page elements. Examples are the following articles written by Stuart Langridge, Simon Willison and Christian Heilmann. |
| Javascript includes - yet another way of RPC-ing |
Javascript files can be included and executed on the fly — either when loading the page or in run-time. This means that HTTP requests are made without the use of XMLHttpRequest or iframes. This post provides a trail of my experiments with the inclusion of external javascript files. |
| JavaScript: Passing by Value or by Reference |
In JavaScript, we have functions and we have arguments that we pass into those functions. But how JavaScript handles what you're passing in is not always clear. When you start getting into object-oriented development, you may find yourself perplexed over why you have access to values sometimes but not other times. Here are two possible ways to get around this. |
| Meauring the usability and business benefits of AJAX |
Great Metrics, Slides and Movies |
| Javascript Refactoring For Safer Faster Better AJAX |
What are the common problems, or anti-patterns found in JavaScript code? One of the biggest problems is left-and-right use of global variables and functions. The biggest evil of global variables are unexpected side-effects when you make code changes. Global variables frequently lead to further design problems and can host a huge number of bugs. They make development, testing, support and troubleshooting a nightmare and must be eliminated. Good code design that avoids global variables and makes code modular is the only path to reliable interactive web-applications. |
| Ajax/DHTML Library Scorecard: How Cross Platform Are They? |
Great history lesson, as well as a scorecard on all of the main Ajax frameworks/libraries. Just go and read it. 2 thumbs WAY up. |
| Building Web Applications using AJAX - Dos and Don\'ts |
Heed the advice!!! |
Mobile Ajax
In an ideal world Mozilla and Microsoft would agree on a common standard for rich web apps (e.g. XUL). Ajax seems to have been born out of a lowest common denominator approach. XUL is Moz only, Flash & Java require installed VMs.
Opera Platform allows developers to create platform independent applications based on well known Web technologies such as HTML, CSS and JavaScript. Together with XMLHttpRequest, the combination of these technologies is popularly referred to as Ajax. Ajax is a Web development technique that is increasingly used to develop new Internet services such as Google Maps and Amazon A9 Search. Opera Platform enables these types of rich Web applications to be developed and used on mobile phones.
PHP and Ajax
Check out PHP and Ajax for frameworks/libraries and tutorials.
Ajax Job Description
I just found a job posting for an Ajax Engineer for Odeo, a small startup in San Francisco.
Ajax Engineer
Responsibilities:
- Build slick, innovative UI components using CSS and Javascript
- Work directly with other engineers to integrate Ajax components with a Ruby on Rails backend
- Advocate design and usability in the product development process
- Improve and maintain cross-browser compatibility
Requirements:
- Passion for developing the highest quality software and pushing the limits of internet technologies and user expectations
- Strong HTML/JavaScript/DOM/CSS coding skills
- Expert cross-browser CSS/JavaScript knowledge
- 3-5 years of related development experience building graphical user interfaces and web applications
- Demonstrable knowledge of user-centered design principles and methodologies
- Strong visual design skills
- Ability to coordinate with peers in a rapid self-organizing engineering group
Desired:
- Experience with Agile methodologies like SCRUM or XP
- Detail orientation bordering on "obsessive"
- Previous experience with blogging and/or online audio publishing
- Previous experience as a full time developer building commercial websites
- Server-side development experience
Work at Odeo, Ajax Engineer
The future is Comet
|
|
|
|