Activate your free membership today | Log-in

Tuesday, April 8th, 2008

JS Time Machine

Category: JavaScript, Component, UI

Kristian Thornley had a unique requirement for displaying data change overtime and thought that he would build a Mac Leopard JS Time Machine.

JavaScript Time Machine

Kristian told us that “currently the effect suffers if the data in the panels are too detailed and I will probably set up some event handlers e.g. onScale preScale postScale which could trigger Ajax calls and preload data a bit like Livegrid.”

Posted by Dion Almaer at 9:31 am
5 Comments

-----
-1496.5 rating from 20 votes

Wednesday, March 19th, 2008

CiUI: CNET iPhone UI

Category: JavaScript, UI, iPhone

Vladimir Olexa of CNET has released CiUI a iUI inspired iPhone JavaScript libary that mimics the iPhone UI behavior.

It's already being used on CNET¹s iPhone page (http://iphone.cnet.com). It's been greatly inspired by iUI with a few key differences:

  1. AJAX calls are performed after a page slides
  2. DOM doesn't get overloaded with "pages" as they load. Instead, two DIVs are constantly being reused
  3. Page titles are set on the source page, not on the destination page
  4. Only specified "a" tags are assumed a part of the UI.

To create a sliding load you simply annotate the link (iUI takes over automatically, in contrast):

HTML:
  1.  
  2. <a class="go_forward" title="CNET" href="http://www.cnet.com">CNET</a>
  3.  

Check out the source and an enclosed working example or go to iphone.cnet.com to see it in live action. You can download the library from our download page.

Posted by Dion Almaer at 10:52 am
2 Comments

+++--
3.8 rating from 16 votes

Friday, January 25th, 2008

Animated PNG in Firefox 3

Category: UI

Firefox 3 has support for Animated PNG:

One of many new features added to Firefox 3 is the support of a new file format, the Animated PNG! Browsers have supported animated GIFs for more than a decade, but the GIF image format has a number of limitations and is overdue for replacement. The PNG image format is now widely accepted as a superior replacement for static GIF images, but for animated GIFs there has not yet been a clear successor. The new Animated PNG format (APNG) is a simple extension to PNG, making it superior for animations too.
-Justin Dolske

There are some fun examples, if you can fire up FF3:

Hopefully we don't get too much abuse of animated images like we did when animated gifs came around.

Posted by Dion Almaer at 5:58 am
18 Comments

++++-
4.1 rating from 19 votes

Sunday, January 20th, 2008

CuePrompter: Javascript Teleprompter

Category: Showcase, UI

CuePrompter (via DownloadSquad) is an browser-based teleprompt tool. Cut-and-paste some or insert some text and the application will scroll it forward or back, at your desired speed. A variant of the Ajax e-reader concept.

Peeking at the source, it's been around since 2005. Implementation is small and straightforward. It works using a timer and manipulation of the top CSS property to continuously re-position the top of the entire text. (A negative top value means the top of the passage is "above" the browser window; hence you'll see text further along in the passage.)

JAVASCRIPT:
  1.  
  2. function fward() {
  3. ...
  4.   contentobj.top-=step
  5. ...
  6.   scrolltimerdown = setTimeout("fward()",scspeed)
  7. }
  8.  

Posted by Michael Mahemoff at 6:45 pm
4 Comments

+----
1.6 rating from 23 votes

Thursday, January 17th, 2008

Triggit: WYSIWYG Content Insertion Tool and Platform

Category: JavaScript, Utility, Showcase, UI

Triggit has created a very interesting tool. The problem they are trying to solve is that many people want to muck around with their websites, but don't want to grok HTML. They want to integrate with services (mash them up in a manual one off way) such as insert their videos from YouTube, photos from Flickr, and other publishing items. One big one is being able to add advertising to the site.

As techies we often think that things are easy enough, "What? You just put in some embed code.... how hard is that!" Triggit allows you to go meta and put in only one embed code, and then offer a toolbar for users to add content in WYSIWYG style.

How does this all work?

When you put in that script code on your site, it has a hook back to the Triggit platform. Say you want to add a photo from Flickr: In the tool you find the photo and place it on the screen and hit save. The action is saved back to Triggit 'add this photo to that location with this style'. Then when a visitor hits the site, the page is loaded, the JavaScript is run, and the action is sent down to the browser and the DOM is changed to add this image. Zach said that one of the biggest challenges was getting this working across the various browsers, so when you put an image at some place using Firefox (the first browser that is supported for the editor side), it ends up in the right place no matter which browser is used from the visitor perspective.

This means that you now have a logical page, but content is split between you real backend, and the Triggit servers. The advantage to this method is that you can integrate with anything. You don't need to have special code that groks a particular backend service, it is all generic.

So, this is a little out there. You are balancing between making it incredibly easy to update pages, and adding complexity by having content in separate places. The page could jump a little depending on the amount of information coming down, if Triggit gets dugg, or what have you. If successful though, you can see as developers that you could write plugins for the system and allow John Doe to easily tie in your content. That is the future promise.

Fancy giving it a go? Zach gave Ajaxian readers 300 invites (as the product IS in beta!). Head over to the signup page and use the code "ajaxian" and if you are in the first 300 you should be good to go. Oh, and for coolness factor, I believe that Rails, Erlang, and crazy JavaScript skills were used to make this happen.

I got to sit down with Zach Coelius and he discusses the product, and gives us a walk through:


I also have a short demo of it running on my own blog:


And, finally, they have their own screencast of the tool at work.

Press Release

Triggit, a San Francisco based startup, with the aim of making life a lot simpler for web publishers, today announced the beta launch of the first ever WYSIWYG web application for integrating third party elements into websites.

With Triggit, any web publisher can now drag and drop advertisements, Flickr pictures, YouTube videos and more, directly into their site without any skills in web programming. Triggit is free to use, and works on any site that accepts JavaScript. It does not require any downloads, access to FTP, or APIs, and installs easily by pasting one small piece of code in the site.

“Triggit is here to help anyone who would like to take full advantage of the resources of the web for their site who isn’t a programmer and who doesn’t think in code,” says Susan Coelius-Keplinger, Triggit’s COO.

At a time when more and more non-technical publishers are coming online, Triggit is focused on removing the complexity of using code to add third party objects to a page. Whether it is widget, a video of a dog skateboarding, or a banner ad, current technology still requires the use of embedded code to integrate these elements into a website. For publishers accustomed to using graphical user interfaces for all their computing, it can be a daunting task to modify and integrate code into their websites. One area where this is a particular problem is for online advertising networks who continue to lose hundreds of millions of dollars of potential earnings annually to web publishers who can’t integrate and optimize their ad units.

Triggit’s goal is to serve as a feature-rich tool whereby publishers can quickly and easily integrate all manner of widgets, content, advertising units, APIs and data from third party sites. In doing so, it operates as a distribution arm for companies seeking to spread the reach of their advertisements, widgets, content and data on the web. By making it easier for web publishers to integrate these objects into their websites, Triggit helps to expand the ability of these companies to reach larger online audiences and add new revenue streams. Ryan Tecco, Triggit’s CTO says “It is really early days for this technology. There are a lot of things waiting in the wings that we haven’t yet put into the tool. We are very excited to see where this goes”.

Posted by Dion Almaer at 8:00 am
7 Comments

+++--
3.6 rating from 25 votes

Monday, December 17th, 2007

WireIt: Yahoo! Pipes Canvas Wiring API

Category: JavaScript, Library, UI, Canvas, Yahoo!, Widgets

Eric Abouaf has released WireIt, a library that answers the though: "wow, I wish there was an API that did the UI bits that Yahoo! Pipes does."

WireIt uses canvas, excanvas for IE, and YUI to get the job done. Take a look at the docs to see how it works.

Here is the code for simple terminals:

JAVASCRIPT:
  1.  
  2. var bl = YAHOO.util.Dom.get('blockLeft');
  3. var br = YAHOO.util.Dom.get('blockRight');
  4. var bt = YAHOO.util.Dom.get('blockTop');
  5. var bb = YAHOO.util.Dom.get('blockBottom');
  6.        
  7. for( var i = 0 ; i <7 ; i++) {
  8.         new WireIt.Terminal(bl, {direction: [1,0], offsetPosition:[0,i*50] });
  9.         new WireIt.Terminal(br, {direction: [-1,0], offsetPosition:[0,i*50] });
  10.         new WireIt.Terminal(bt, {direction: [0,1], offsetPosition:[i*50,0] });
  11.         new WireIt.Terminal(bb, {direction: [0,-1], offsetPosition:[i*50,0] });
  12. }
  13.  

And there is even a fun game to check out:

Planar

Posted by Dion Almaer at 9:00 am
Comment here

+++--
3.8 rating from 32 votes

Thursday, November 29th, 2007

Genfavicon: A favicon generator

Category: Ajax, UI, jQuery

Adding to the long list of generator-style sites is the latest addition called Genfavicon.

Using jQuery for it's DOM manipulation and Ajax work, the site actually does a pretty decent job of creating the cool little favicons used throughout the web. You have the option of either specifying a URL for the image you'd like to convert or uploading it to the site for processing. Once loaded, the full image is presented in a neat cropping pane letting you decide which section of the image you want as your favicon. Once you're ready, just choose an image size between 16x16 through 128x128, click the "Capture & Preview" button and download your favicon. Pretty painless.

The site was created by the group at Ferca Network as a pet project. If you can read Spanish, you can get more details via their blog.

Posted by Rey Bango at 6:00 am
11 Comments

++---
2.8 rating from 40 votes

Monday, November 26th, 2007

Product pages: so much suck, so easy to fix

Category: Usability, Articles, UI

Now and then we weave the Ajaxian car into the designer fast lane from the developer one as we see something interesting. This time around we have Amy Hoy talking about product pages as an example of how to do good UX(P|D|).

She starts out with UX 101:

  • Be nice to your users and customers (and potential customers).
  • Design as if your main goal is to inform and educate.
  • Be honest and forthcoming, while you’re at it.
  • Help your users and customers to do what they want, not what you want them to do.
  • Be consistent with your message and quality of service (and I’m including software design here, folks).
  • Scientific, measurable “usability” doesn’t necessarily make for a good experience.
  • Good design makes people feel good.

And then continues to use these rules to rip apart landing pages for Opera and Firefox. You can see her red and green pens at work:

Posted by Dion Almaer at 5:10 am
16 Comments

+++--
3.5 rating from 41 votes

Thursday, November 22nd, 2007

Chronoscope: GWT based charting library

Category: JavaScript, Library, UI, GWT

Ray Cromwell and the Timepedia team have released Chronoscope, a charting and visualization platform for Google Web Toolkit, as open source.

Chronoscope provides a rich Java API for you to play with:

  • Canvas abstraction for drawing vector graphs
  • Graph Style Sheets abstraction for configuring the look-and-feel of charts
  • Scalable multiresolution rendering supporting up to tens of thousands of points
  • Zoom and pan at interactive frame rates, from centuries to milliseconds
  • Auto-ranging, auto-layout of chart axes and ticks.
  • Auto-legend, and mini-chart Overview
  • Add pushpin markers, domain and range markers, and overlays like Google Maps
  • Bookmarkable chart state, works with Back button
  • JS interopability. GWT API can be used by pure Javascript programmers
  • Microformat support. Charts can be configured without programming.
  • Server-side Font assistance. Render rotated text.
  • Portable, Chronoscope is not tied to GWT, can be used to render from servlets, applets, or other environments.

Chronoscope Demo

We also have a piece over at devphone on GWT and Android: A marriage made in heaven?

Posted by Dion Almaer at 8:00 am
12 Comments

+++--
3.1 rating from 36 votes

Tuesday, November 20th, 2007

Mocha UI - MooTools Canvas UI class

Category: UI, Canvas, MooTools

In an ongoing exercise to become more familiar with MooTools and Canvas, Greg Houston has created an extension to MooTools called Mocha UI which provides a new UI class made with canvas tag graphics.

The new class provides the following set of features:

  • No images. The windows, including their controls, gradients and shadows, are drawn with the canvas tag.
  • Adjustable rounded corner radius.
  • Windows can be focused, dragged, resized, maximized, restored down and closed.
  • Dynamically create new windows on demand.
  • Fullwindow window size is adjusted if the browser window size changes.
  • Minimal HTML markup required.
  • Tested in Firefox 2, Internet Explorer 6 & 7, Safari 2, and Opera 9.

Greg is also considering the following enhancements:

  • Create custom canvas scrollbars.
  • Add a modal window.
  • Create more class options.
  • Add minimize to windows.
  • Add a sortable dock.
  • Make shadows easier to adjust.

Posted by Rey Bango at 11:02 am
18 Comments

+++--
3 rating from 145 votes

Monday, November 5th, 2007

sosymbol: Mashup your icons

Category: UI, SVG

Raymond Penners has launched sosymbol, a site with a collection of web2.0 (read: big?) style buttons and symbols that can be mashed up online and exported to svg/screensaver.

sosymbol

Posted by Dion Almaer at 6:21 am
3 Comments

++---
2.4 rating from 18 votes

Thursday, October 25th, 2007

Designing the perfect Tree

Category: Component, UI

Glen Lipka has been thinking about Trees. He looked around for patterns for building them, and couldn't find anything. Then he looked at examples such as the Ext Tree component and ended up writing up his dream tree:

  1. Hover.  This is a problem with Vista as well.  If it’s clickable, then it should afford clicking.  The best way to do this is with a color change in the background.  EXT and Vista do this very well in Menus, but they forget about it in the Tree.  Trees need clear hover states.  This is my number one pattern in general for trees and it is missing in tons of JS trees out there.
  2. Bigger target.  The hover in the above step needs to be wide.  As wide as the whole tree.  Plus it needs to have a little padding.  Give the user a decent target to hit.  Don’t make them hit a tiny spot.  Give them breathing room. David Foltz says, “Don’t make the user play target practice”.  He is right.
  3. Keyboard shortcuts are good when the tree is focused, but what about when it’s blurred.  Keyboard shortcuts don’t work when tree is blurred.  In Vista the “on state” changes to be lower contrast on blur, so that it’s easier to tell that moving the mouse will have no effect.  In the EXT example, it doesn’t change.  This causes issues.  I actually asked the engineers to turn keyboard shortcuts off, and it seems that the keyboard option is not easily turn-off-able.

    The pattern I actually like with keyboard shortcuts better than this example is to move the “selector” or “hover” with the keyboard, and NOT the onstate. Moving the onstate changes the right side.  This is OK in an operating system, but not OK in a web application, where latency is much greater.  Interestingly, Vista is different than XP on this score.  Vista moves the hover state, although it looks like the onstate.  And XP actually moves the onstate.  Ugh, this is all a mess.

    Ok, the bottom line is:  Keyboard shortcuts for web trees should move the hover state and require an enter or spacebar.  This is the same pattern as keyboard shortcuts in raw HTML.

  4. Bigger On state.  It should be clearer that you are ON a selection.  It should be a background color going as wide as the whole tree.
  5. Should not collapse the entire tree.  The root node on a tree with only one root node should not collapse.  Even though I see this in lots of trees including Microsoft, I think its terrible.  Why would the user want to collapse the tree down to one node?  It makes no sense to me.

Posted by Dion Almaer at 8:27 am
12 Comments

++---
2.5 rating from 114 votes

Monday, October 22nd, 2007

Ajax Javascript Galleries, Slideshows and Effects Redux

Category: Ajax, Articles, UI

Max Kiesler has been doing some nice roundup posts recently. He just published Ajax Javascript Galleries, Slideshows and Effects Redux, a piece that goes through a large group of libraries and apps that show off image related functionality.

He ends up discussing:

Posted by Dion Almaer at 6:30 am
3 Comments

++++-
4.2 rating from 115 votes

Saturday, October 20th, 2007

Coming soon to Flickr: Photo editing

Category: Flash, UI, Yahoo!

TechCrunch reports Flickr is to gain photo editing. It will use IFrame-based integration with Flash editing tool Picnik.

Flickr has chosen Seattle-based Picnik (profile) to handle the long requested photo editing feature for Flickr users.

Currently, you can rotate photos on Flickr, but the editing stops there. When the new tools launch, users will be able to edit photos more extensively using the Picnik Flash based tools (see our review here).

With users relying on online storage more and more, it's a no-brainer for those tools to offer editing capability. We can expect to see the trend continue with image sites as well as audio and video. And while image editing is possible with pure HTML/Javascript, Flash is generally the platform of choice right now.

Posted by Michael Mahemoff at 12:57 pm
4 Comments

+++--
3.5 rating from 32 votes

Monday, October 8th, 2007

Sun Labs Lively Kernel: Morphic UI for the Web (Self and Squeak)

Category: JavaScript, Library, Toolkit, UI, Tutorial

Sun Labs has released a new Lively Kernel project that takes the Morphic UI framework that Sun developed for Self, and implements it in JavaScript.

This enables you to run the kernel and start interacting with the world. There is one world.

Why did they do it?

The Lively Kernel places a special emphasis on treating web applications as real applications, as opposed to the document-oriented nature of most web applications today. In general, we want to put programming into web development, as opposed to the current weaving of HTML, XML and CSS documents that is also sometimes referred to as programming.

A key difference between the Lively Kernel and other systems in the same area is our focus on uniformity. Our goal is to build a platform using a minimum number of underlying technologies. This is in contrast with many current web technologies that utilize a diverse array of technologies such as HTML, CSS, DOM, JavaScript, PHP, XML, and so on. In the Lively Kernel we attempt to do as much as possible using a single technology: JavaScript. We have chosen JavaScript primarily because of its ubiquitous availability in the web browsers today and because of its syntactic similarity to other highly popular languages such as C, C++ and Java. However, we also want to leverage the dynamic aspects of JavaScript, especially the ability to modify applications at runtime. Such capabilities are an essential ingredient in building a malleable web programming environment that allows applications to be developed interactively and collaboratively.

Boot up Safari 3, and check out the interactive tutorial, and read the FAQ.

Lively Kernel

Posted by Dion Almaer at 9:01 am
23 Comments

+++--
3.2 rating from 54 votes

Tuesday, September 25th, 2007

gefingerpoken: Multi Touch Gestures

Category: Showcase, Flash, UI

Michal Migurski implemented the two-finger drag of a multi-touch interface in Flash:

(Please install the Flash Player plugin)

In his example he visually shows how the implementation calculates a third point of the triangle. He explains this all:

There are two main difficulties: figuring out how precisely the two contacts should act on an object, and then translating those into the appropriate placement, sizing, and rotation of the object. We start with two rules: the object can be moved and turned, but not skewed, squashed, or otherwise deformed, and the fingers should stay in contact with the same points on the object throughout their movement.

Both troubles can be solved with the use of affine transformation matrices, the closest thing computer science has to a true, working hammer. I've described before how to derive a complete transformation from just three example points, so we need to figure out where to place a third point to complement the two fingers above. If we assume that the line between the two fingers is the hypotenuse of a right equilateral triangle, the we can guarantee a stable position for the invisible third finger by working out the two legs of the complete triangle. See it in action above when you drag.

Posted by Dion Almaer at 6:16 am
5 Comments

++---
2.6 rating from 20 votes

Next Page »