Recently I've been messing with the cool new features of CSS3 to a client project and I was inspired to see what sort of interface features could be done with it.
The nice things, like drop shadows, gradient background and curved corners, make things look great without having to reach to the image editor, but are hardly revolutionary. Any design that is well planned could already make use of these things and they've been around on the web for ages, though CSS3 certainly makes them far easier to implement.
These functions allow you effectively strip out parts of a string that could cause problems when sent in a URI, in a get request for example.
I also recently found it handy for encoding strings for sending to and from a JSP server over AJAX, the trouble came up when I realised that there is no built in equivalent functions server side. A quick search of the net revealed a few solutions, but none that actually worked, not in Java, or PHP, or anything else that I could have adapted. A bit surprised by this lack of a solution to a common problem, I investigated what these functions do.
Like everyone else, when I started dabbling in AJAX code I found myself repeatedly creating the same code to do the same things. There was always code to make sure I could create the XMLHttpRequest if it was there, or the Microsoft equivalent for the awkward browser. There was always event code to process, sometimes repeatedly, the response codes until I got a 4. There was usually code to present some visual indication to the user that there was a call in progress.
Now, like other programmers, if I find myself doing the same thing over and over again, it's time to write a library.
These holes were filled by numerous framework libraries for doing all sorts of things. Be it filling in some small missing functions like addAfter to compliment addBefore, or extra trim functions for strings as you would find in PHP, there were, and still are, numerous choices.
Following on from my initial work with the canvas tag to create the canvas site logo generator, I worked on the dynamic aspects of the canvas tag, to prove to myself it could be used to create the sort of animations Flash and Silverlight are designed for.
This example is obviously relatively trivial but does go to show what can be achieved.
A while ago I discovered the canvas tag and thought I would have a play around with it. This page is the first result of that exploration and has been used to quickly create bitmaps of the site logo.
The canvas tag, and libraries built on it, could become a real contender on the web. The ability to script and dynamically manipulate resolution independent vector graphics on a web page makes this potentially a viable alternative to Flash, even if the tools are not yet there.
But, as usual, certain popular browser have done their own thing and don't support it. Maybe some day, when this is more widely supported, we'll see it everywhere as a light weight replacement to anything requiring a browser plugin.