Archive of articles classified as' "Writing"

Back home

HTML5 articles, tutorials and websites

20/03/2010

With the advent of HTML5 there has been a plethora of information available online on how to understand, program and work with this new specification. The following is a list of what I consider the be the best and most helpful HTML5 articles, tutorials or websites that I’ve found over the past year.

Please let me know through a comment if you know of any other great HTML5 articles, tutorials or websites, and I’ll be glad to post them. Also thanks to all of the folks who produced all of these great free learning experiences.

Read more

20 Comments

SmartPhone design templates for Android, iPhone and Palm Pre

18/03/2010

As more and more companies & start-ups contact ideacodes for smartphone design, I found the need to make a link list of templates I might need to use. Recently, I found many of the templates were no longer available online. This is what led to this post. Here I will showcase smartphone templates I’ve found on the web, and archive them at my site, so even if the original source goes away, the templates will still be available.

Special thanks to all of the hard working designers that have created these awesome smartphone templates! Also, please check the original source for usage requirements.

Android

Read more

70 Comments

Typekit – Designing Webpages With Real Fonts

11/11/2009
Screenshot of Typekit

Screenshot of Typekit

Tonight I decided to give the new font service Typekit a try on my website. The service uses your browsers inherent ability to link fonts, and has worked out licensing with a number of font houses so you can link these fonts with no fear of legal action. The quote from Typekit below basically says it all.

Read more

2 Comments

Relational Music Discovery

5/05/2008

I spend most of my days and nights in front of the computer screen. Needless to say I listen to countless hours of music. I’m always looking for new music to listen to, and face it, iTunes can only get you so far with it’s rather limited discovery features. Recently, I’ve turned to relational, and visual music discovery engines to find more tunes that related to my current musical tastes.

The basic premiss behind this new breed of music search is that you start by entering a genre, artist, song, or geo-location, and you are returned music that relates to your search term. In most cases the returns are presented as a visualization in order to show the connections between data.

Below you find a list of the sites that I go to when I’m trying to find new music. If you know of any music discovery sites that are not listed please post them in the comments section. Thanks!

Artist Network Visualization
The Artist Network Visualization applet shows the current listening activity of MyStrands users. Every time a user plays a track by a recognizable artist, it will show up on the map as a small circular node (along with the album art of whichever album the track belonged to). The nodes will repel each other away, so that they don’t overlap each other. However, if two or more artists are played consecutively, they will become visibly “linked” and follow each other around the map when clicked and dragged. Watch as networks of artists emerge from our users’ listening behavior.

Artist Network Visualization

Audiosurf: Ride Your Music
As the company states, “Audiosurf allows you to experience the intensity and emotion of your songs in real time, in full color, and in 3D. Songs that give you an adrenaline rush are converted into wild roller coaster rides full of color and motion. Songs that calm you down appear as cool colors against a relaxing sky. Audiosurf enhances the experience of your music collection by synchronizing its environment to the events in your songs–the beats, the intense sections, the long pauses followed by a burst of sound, all take on a more vivid meaning. The application builds a highway for any music CD, MP3, iTunes M4A, WMA, or OGG song you choose, so the experience that you have is totally up to you.”

Audiosurf: Ride Your Music

Liveplasma Music Discovery Engine
Liveplasma is a music and movie discovery engine that shows you new music depending on what your interested in. “Data is grouped according to interest, style, epoch and other criteria which suggest that someone will like it. The closer a film or band is to your favorite the greater the chances are that you will like it.

Liveplasma Music Discovery Engine

Musicovery – Content Visualization
As a web application designer I’m always looking for new ways to visualize information and content. Musicovery has showed us a different way of visualizing and browsing music. While the menu is a standard set of music categories, the browse interface itself is like a map with your genre of music displayed in a map-like drag enabled environment. You can drag the music map around your genre until you find an interesting artist. Then when you click on their name the artist is repositioned to the center of the map and the music start playing, along with some nice visual effects.

Musicovery - Content Visualization

Musiclens – Music Discovery Visualization
There are many search tools for finding new music on the web. Just type in, “artist, genre or title and you’ll find some results. Ho Hum. I’ve been forced to use this same music search paradigm for years. However, there is a new breed of music sites cropping up that will give you new ways to discover new music. “Musiclens enables users to find pieces of music using very vaguely described criteria, such as loudness (perceived volume), mood or purpose. The search or recommendation query can be enhanced or limited by adjusting the ten navigation control sliders”. This site works well and has a great visualization tool.

Musiclens - Music Discovery Visualization

Music Maps – Who is Listening to What and Where
“The popularity map shows snapshots of current top artist and album charts by geographical location. The Flash-based interactive map works using data from the Gracenote Media Database and shows the latest artist and album lookups in states, regions, countries, and continents around the world.” I like exploring this site as a way to see what the most popular types of music are in different countries. For example, look at the difference in musical tastes between California and Norway. Fun site.

Music Maps

Podbop – Mp3 Concert Calendar

“Podbop is an MP3 concert calendar that helps you discover bands playing in your town, completely powered by the community”. Excellent use of color, oversized text, and a well designed map navigator are highlights of the Podbop start page. The interior uses the same high contrast and highly readable layout. The dark brown and lime green work well together with the white font. The site has a great user experience with inline previews of the band’s mp3’s categorized by date and location.

Podbop - Mp3 Concert Calendar

TuneGlue – Relationship Explorer
TuneGlue is music relationship visualization. The application lets you type in an artist and TuneGlue will return all of the artists it can find related to your search. By clicking on the artist button, and then release, the app will show all of the releases by this artist.

TuneGlue - Relationship Explorero

ScreenVader – Algorithmic Music, Images and Video
In many ways this site feels like an exploration. There is no about section or faqs, so when you arrive you’re not really sure what to expect. As I found out, it turned out to be a wonderful visual experience. The site provides several free software packages that allow you to compose algorithmic music, image and video presentations. The results are stunning as you will see from the examples on the site. While it takes a little getting use to, the flash based navigation is fun easy to use. The downloads are available for Mac and PC.

MScreenVader - Algorithmic Music, Images and Video

Whitney Music Box – Visual Harmony
A very fluid music visualization based on the film maker John Whitney. As the developer stated, “This weekend I’ve been playing, once again, with the ideas of experimental film pioneer John Whitney, using both graphics and audio. While Whitney was interested in turning musical ideas into motion graphics, I’m doing the inverse – turning one of his key animation ideas back into music. Whitney made a number of films based around the simple idea of harmonic relationships. Above is a visual example of one his ideas that I implemented in Flash.” Make sure you check out all of the variations in the right column. Great project.

Whitney Music Box - Visual Harmony

No Comments

New Search Visualizations Paradigms

3/05/2008

I really like to search the web. I search because I’m curious. I search because I need specific information. When I need to find something specific I still go to Google. When I’m curious, and searching for entertainment sake I go to visual, faceted, and relational search engines. There are many ways to search the web these days that are not just liner. Today searches can now be based on context, color, relationship, and even child safe content.

The following is a list of some of the best examples of visual search engines. My comments are now moderated, however, if you have search that you think should be included in this list please leave a comment. Also, if you have a spot on criticisms or relevant information about any app that was posted I also value your comment. Thanks to the developers of these searches for a new way to see what’s out there on the inter-web.

Etsy’s Color Product Search Visualization
While I’ve seen several color based searches they are usually for images. Etsy has created a color based search for products which gives you results based on colors you select in their easy to navigate color grid. To use the search just mouse over the color grid and click on the color. Then click the item to get a closer look and some more details. If you are interested in this item and want to find out more just click the item title. From there you can purchase the selected item.

Etsy's Color Product Search Visualization

Faceted Search by Moritz Stefaner
Project Search v1 by Moritz Stefaner is a a flash demo of a faceted search application for architectural projects. I find this form of search very useful for drilling down into a subject. The project has great interaction design.

Faceted Search by Moritz Stefaner

Grokker – Relational Search Visualization

Relational search engines help you find more of the information you are looking for faster than with a traditional liner meta search. Grokker does a good job at relational search by federating content from Yahoo and Wikipedia. The results page has two main views which are a list view and a map view. The list view is interesting because it shows you a collapsable / expandable outline view of the categories, and a detail view. It also give you some tools to narrow your search such as a date slider, view by either Yahoo, Wikipedia or both, by keyword within the outline, and finally, by domain. The map view gives you the same tools with an expanded visualization map of the results and relationships. Very fun, easy to use, and great for discovering related results.

Grokker - Relational Search Visualization

Kart00 – Visual Search
Kartoo is a meta search engine which presents its results on a map. To try it enter your request and click on the “OK” button. As soon as you launch a search, Kartoo analyses your request, questions the most relevant engines, selects the best sites and places them on a map. In this map, the found sites are represented by more or less important size pages, depending on their relevance. When you move the pointer over these pages, the concerned keywords are illuminated and a brief description of the site appears on the left side of the screen. A series of keywords appears. You can refine your search by clicking subjects. To go to the next map, click on the “map nb x” button.

kartOO

oSkope – Visual Search
If you frequent websites like Amazon, YouTube, flickr and eBay you probably love the mass of content that you can see at sites like these. As a designer I tire of “sameness” in ways to browse websites. With the exception of flickr the only way to browse the content on these sites is the all to common linear list view. oSkope gives you another. As they say on their website, “oSkope is a search assistant with a highly intuitive visual interface. oSkope lets you browse quickly through a large number of images a preview information with minimal paging. Selected items can be saved by registered users.” In many of my test searches I found the information or product I was looking for much more quickly than on the websites themselves. While I can save individual products in a folder I also wish I could save searches. The product is still in beta, however, it is a very fun, intuitive and functional way to search the selected websites. Thanks to the developers and designers.

oSkope - Visual Search

Quintura Search Visualization
Quintura is a tag cloud based visual search engine. After your initial search you’re presented with a two pane screen. On the left is grouping of tags that are related to your search term. On the right are standard liner search results. From an interaction standpoint I think the combination works well. In one screen I get readable results and suggested related search terms. You can also embed your search term cloud on your own website.

Quintura Search Visualization

Quintura Kids – Child Friendly Search Visualization
If you have children you know that many search engines retrieve sites you may not want them to see. If you’re a kid you know how boring most search engines can be. “Quintura, Inc. is the next-generation web search company that was launched with a mission to make Web search easier and faster by adding context or meaning to keywords and visualizing search. The patent-pending technology of Quintura is based on over a decade of the founders’ innovative research and development in the area of neural network and artificial intelligence”. Quintura also has a wonderful search for standard use, and a women’s version is planned soon. So far I love both versions that are public.

Quintura Kids - Child Friendly Search Visualization

Searchme – Visual Search Engine

Searchme is new search visualization which lets you see the webpage before you surf there. The idea is pretty neat. As you start to enter a search term you are shown a list of categories that are associated with that term. You can either choose a category, or search all categories. The results are shown in “coverflow” paradigm. You can still sort by category, or just click though the “coverflow” of all of the pages. I love the idea and the execution, however, from a user interface perspective there are a few interactions that would help the UI a great deal. For example, a full screen mode would make seeing the webpages much more useful. Even with a 30 inch Apple HD monitor the pages are a little hard to read. If searchme added a high-rez full screen mode or a way to magnify the page images it would give me a way to see the page relevance to my search. One step beyond that would be to show the highlighted search term(s) on each page as it flew by. Props out to the developers/designers! In my opinion it just needs a little UX love and then we could have a real winner.

Searchme - Visual Search Engine

Snap – Search Visualization
Recently new forms of search visualization have been on the rise. Snap is a great example of a new way to view search results. The applications allows you to view an image of the page your about to visit before you go there. The site is broken into two panes one with the search results and the other with a screenshot of the page. In the screenshot pane you can choose three different sizes of screenshots. You can view the site with either a new window or in the larger left pane. As a visual person I found it to be a fun way to browse search results.

Snap - Search Visualization

TouchGraph Google Browser
The TouchGraph Google Browser reveals the network of connectivity between websites, as reported by Google’s database of related sites. Use this free Java application to explore the connections between realted website.

TouchGraph

No Comments

Designing Visualizations for Time-Based Data

19/11/2007

Most interaction designers understand the concept of timelines and other time-based data. Blogs, calendars, and to-do lists are all examples of time-based data. However, if you are trying to fit 400 data points into a 1024 x 726 screen you’ll quickly see how challenging time-base data can be. Currently, many interaction designers are turning to visualizations to overcome many of the issues associated with this form of data representation. Below you’ll find a list of some of the best time-based visualizations on the web.

Also, if you want to see or learn more about data visualizations please visit DesignDemo and VizLIst. I post visualizations on a daily basis in both of these sections.

Please use the comments section of this post to let the community know of any useful resources I’ve left out. Most of the descriptions below are taken from the developers of the example. Thanks, Max.

The Sputnik Legacy
“The Soviet launch of Sputnik in 1957 kicked of the space race. Since then mankind has sent more than 150 missions to explore outer space. The Newsweek captures all 150 world wide space flights in an easy to use timeline format. The visualization is sortable by year, timespan, planet and country. When you roll over a timeline point you get additional information about the flight. Additionaly, if you click on the Inside Sputnik tab you get a visualization of Sputnik 1 and all of its parts. Very fun and easy to use.”

The Sputnik Legacy

British History Timeline
“Explore all of British history, from the Neolithic to the present day, with this easy-to-use interactive timeline. Browse hundreds of key events and discover how the past has shaped the world we live in today. ‘Take a Journey’ when the timeline has loaded to follow themes such as Slavery, Women’s Rights and Technology.”

British History Timeline

Timepiece – Visualize Film Ideas
“Timepiece is an experimental data visualization that help you explore Filmforay’s site content including, all of their film ideas, new members, comments and votes on each film idea. Presently there is five months worth to data explore, however, this will undoubtedly grow. As stated by LInden at Filmforay, “The visualization is done with Adobe Flash and pulls all recent data from the site, updated every 30 minutes. Currently it takes a pretty heavy toll on your CPU and loading does take some time, so older computers might have some trouble running it. And I’ll admit the design wouldn’t scale very well given a larger data set, but for the meager traffic filmforay has received so far it does just fine!” Time is one of the most challenging aspects to represent in data visualizations. Linden has created a very unique view of his site’s content over time.”

Timepiece - Visualize Film Ideas

circaVie – Create and Share Timelines
“circaVie allows you to easily create multimedia timelines all about your life. Special events, noteworthy achievements, relationships, memorable vacations, interests and hobbies, celebrations, announcements… you name it. If it’s about life, it’s circaVie. By creating a circaVie timeline and adding events to it, you’re automatically able to share your life and interests with your friends, your family and the rest of the world in a brand new way. You can think of circaVie as a souped-up, unique way of blogging, where you can seamlessly share photos, video and text that other users can comment upon. Your timelines are also portable and can be shared anywhere you like since they’re all embeddable into your personal Web site, or online profile. Just create your timeline here and take it with you wherever you like!”

circaVie - Create and Share Timelines

Recreating Movement

“Recreating Movement is a computer program for analysing film sequences and has been developed within a diploma thesis. With the help of various filters and settings Recreating Movement makes it possible to extract single frames of any given film sequence and arranges them behind each other in a three-dimensional space. This creates a tube-like set of frames that “freezes” a particular time span in a film. By using the keyboard the viewer can browse through the sequence of frames, chose any kind of view of the sequence of frames and influence the displayed frames directly via a displayable menu bar.”

Recreating Movement

Comment Timeline Visualization
“While gawking at some of the really cools toys by Moritz Stefaner , I got particularly interested in his post about visualizing time gaps in data and had a moment of inspiration. Instead of vertically gaping the data, you could “timeline” the data like we used to do in gradeschool.”

Comment Timeline Visualization

Slife
“Slife 1.3 offers a whole new way to keep track of what you do in your computer. Visualize your activities, improve your productivity and manage your time more efficiently. Slife observes everything you do in your computer and plots your activities in a graphical timeline. Its unique approach to activity tracking and time management opens up a world of possibilities.”

Slife

Timepedia Chronoscope
“Chronoscope is a visualization platform under development at Timepedia for time series datasets. Chronoscope stems from a desire for responsiveness and interactivity when navigating or authoring datasets. Ultimately we aim to bring something like the experience of Google Maps or Google Earth to time series data.”

Timepedia Chronoscope

Timeline of Trends & Events
“Timeline of Trends & Events (1750 to 2100) from futureswatch. Social change in America follows remarkably consistent patterns of behavior dating back to the time of the War of Independence. A close analysis of those patterns reveals why American society, at the beginning of the 21st century, is so bitterly divided. Those patterns also reveal the direction social and political values are likely to move over the next quarter century.”

Timeline of Trends & Events

SIMILE project
“SIMILE is a joint project conducted by the MIT Libraries and MIT CSAIL. SIMILE seeks to enhance inter-operability among digital assets, schemata/vocabularies/ontologies, metadata, and services. A key challenge is that the collections which must inter-operate are often distributed across individual, community, and institutional stores. We seek to be able to provide end-user services by drawing upon the assets, schemata/vocabularies/ontologies, and metadata held in such stores.”

SIMILE project

No Comments

AJAX Your Blog – Plugins, Source Code, and Tutorials

18/11/2007

I started this blog around the same time AJAX was introduced by Adaptive Path’s Jesse James Garrett. At the time there were no out of the box add-on’s for blogs. Fortunately, now there are a plethora of plugins, source code, and tutorials designed for specific blog software. The following is a list of AJAX components you can add to Wordpress, Expression Engine, and Moveable Type.

Please use the comments section of this post to let the community know of any useful resources I’ve left out. Most of the descriptions below are taken from the developers of the example. Thanks, m4x.

AJAX for Wordpress

Live Spell Checker
“AJAX Live Spell Checker for Wordpress”

imgViewJX Wordpress Plugin
“imageViewJX is a Wordpress plugin which takes all images from a given directory and flips through them on your WordPress site, without reloading the page imgViewJX uses AJAX library ‘xajax’. It is meant as a first experiment in using xajax in Wordpress. Use it if you like it, or learn from it if you want to built something yourself.”

AJAX’d Wordpress
“AJAX’d Wordpress (AWP), formerly know as INAP, is an extremely powerful plugin that harnesses the power of AJAX and Wordpress to improve the user experience, the administration capabilities and the design potential of any Wordpress based blog. AWP’s basic features include inline paginated posts, inline comments, threaded comments, the ability to submit comments with AJAX, pagination of your homepage, live comment preview and much more, but it does not, however, force you to use any feature, and it also allows all aspects of the plugin to be easily customized through a single Administration panel. AWP is built to integrate with other plugins and features an advanced module system–based off of WordPress’ plugin system–that allows it to be modified with the addition of third-party extensions. It also has special features that will ensure compatibility with many other plugins.”

WP Ajax Edit Comments
“WordPress Ajax Edit Comments (for WP 2.1+) allows users and admins alike to edit comments on a post. Users can edit their own comments for a period specified by the admin, and admins can edit all post comments. What better way to show reader appreciation than letting the readers edit their own typos?”

AJAX Comments WPMUified

“This is a rework of an original plugin called AJAX Comments by contributors DjZoNe, Mike Smullin. Probably one of the best ways you could spice up your WordPress Blog with AJAX; readers love it! Must see for yourself. This plugin works well in all major Web browsers, and uses discrete AJAX. That means if JavaScript disabled, it’s using the original comment posting method.”

AJAX Calendar (now WordPress 2 compatible!)
“AJAX Calendar is a plugin that will display an AJAXified WordPress calendar.”

AJAX Page Loader
“AJAX Page Loader will load posts, pages, etc. without reloading entire page. This was my first plugin and is still a little quirky. There is problems working on some themes. I am working a little at a time on this but if anyone wants to contribute, feel free.”

WP-Polls 2.21
“Adds an AJAX poll system to your WordPress blog. You can easily include a poll into your WordPress’s blog post/page. WP-Polls is extremely customizable via templates and css styles and there are tons of options for you to choose to ensure that WP-Polls runs the way you wanted. It now supports multiple selection of answers.”

WP AJAX Edit Comments
“WP Ajax Edit Comments (for WP 2.1+) allows users and admins alike to edit comments on a post. Users can edit their own comments for a period specified by the admin, and admins can edit all post comments. What better way to show reader appreciation than letting the readers edit their own typos?”

Plug ‘n’ Play Google Map
“This plugin creates a google map on a Wordpress static page of your choice. Any post that you attach a latitude and longitude to will appear on the map as a marker, with a pop-up bubble and a link to the post.”

Inline Ajax Page
“Inline Ajax Page (INAP) is an extremely powerful plugin that allows you to harness the power of AJAX to improve your user’s experience. INAP is not only able to load posts, comments and the add comment box inline, but can also submit comments, paginate posts, paginate your homepage, display a live comment preview. Other than a few minor theme edits when you first install the plugin, nothing has to be changed to test the power of INAP. All options can be controlled directly from the Administration Panel which allows you to customize nearly every aspect of INAP.”

AJAX Login

“AJAX Login means that the login process is executed without reloading the entire page. The user is alerted through messageboxes on errors, and the page is only reloaded when login succeeds. The same goes for registration and lost password retrieval! This plugin adds a nice templated box on your Wordpress, either with a template tag or as a sidebar widget. In the default template the box contains functionality for logging in, registering as well as retrieving new passwords. If already logged in a logout link is displayed.”

Better-Than-Live AJAX WordPress Search v2
“Just a little less than a year ago I launched Better-Than-Live AJAX WordPress Search. I felt it was time to get back in the swing of things, so I’m now releasing version 2 of the script.”

AJAX for Expression Engine

AJAX Linktracker
“This module allows you to track clicks on arbitrary links. You can use it to track file-downloads, outgoing links or even your internal navigation links. All you got to do is to add an unique id-attribute to any link you want to be tracked. The module utilizes javascript and a XMLHttpRequest to count the clicks. This has the disadvantage that you will not capture clicks by people who have javascript disabled . But on the other hand I see a lot of benefits. It uses no redirects which makes it pretty unobtrusive, your links look like always and there is no rank denial. It’s easy to apply to virtually any link on-the-fly. And it’s not triggered by crawlers but only by people behind browsers.”

EE Ajax Edit Comments

“Allows One To Edit Comments Via AJAX”

Edit Tab AJAX
“Adds the Ability for Dynamic Searching and Sorting in the Edit Tab”

ExpressionEngine and AJAX
“As the introduction said I’m going to show you how I added the Ajax functionality to the Jambor-ee homepage, or more specifically, how you can replace certain content (in our case the showcase site details) through a user click without the need for a page refresh.”

Expression Engine Ajax Slideshow
“Adding an ajax slideshow to Expression Engine easily and simply. Expression Engine can easily have ajax functions added due to its inate configurability and template system.”

Expression Engine Ajax Photo Gallery
“An ajax photo gallery done in Expression Engine. Expression Engine being easily configured and a simple template system makes adding ajax photo galleries and ajax media display and other ajax functions a simple matter.”

AJAX enabled EE Tags
“The Tag Module allows you and your users to tag weblog entries with keywords or phrases. Using the module, you can build templates that pull entries by tag. You can show tag clouds and more.”

AJAX for Moveable Type

Movable Type AJAX Search
“This article allows you to easily implement in-page search results in any Movable Type page. What exactly does this mean? Your standard Movable Type blog has a nifty search form on every page. One thing I have always wanted is to display the search results IN the page without refreshing to another page. This is quite easy to do using Javascript and a few commands [notably XMLHttpRequest() ] that make up something we call AJAX.”

Ajax Archive Drop Downs
“In this thread, Gary highlighted how to have drop downs of archives that basically redirected to the appropriate page once an archive was chosen. With this tutorial, I’ll take that one step further and use AJAX such that when you select an archive, rather than redirecting to the corresponding archive page, the appropriate posts will just replace those currently shown.”

Movabletype Ajax Photo Gallery
“Using some php and ajax I have a new demo of an ajax photo gallery I created for Movable type. I can see many uses for this integrated into your website or as a stand alone gallery. It’s nice to be able to view the photos without constant page reloads and also free of jumping as the next photo loads.”

AjaxRating
“Ajax Rating is a plugin for Movable Type that enables visitors to rate your entries or your blog.”

Quote
“Quote 2.0 is a plugin for Movable Type 4.0 that easily allows commentators to quote a previous comment. It uses AJAX/JSON to retrieve previous comments and enter their quoted text into comment boxes.”

MTYahooMaps
“MTYahooMaps is a Movable Type Plugin that allows you put Yahoo Maps in Posts.”

Easy AJAX comments in MovableType using Mootools
“The title says it all. Using the AJAX library from Mootools I was able to AJAXify the comment forms in Movable Type. Mootools makes it easy by supplying a Send() method in the Ajax class.”

Ajaxify: EnhancedEntryEditing

“Ajaxify is a series of BigPAPI plugins that adds various javascript and AJAX widgets into Movable Type’s interface. It has, of course, been built for Movable Type 3.2. The first of which is EnhancedEntryEditing.”

No Comments

Visualization Programming Languages, Software, and Toolkits

13/11/2007

If you’ve seen websites such as, Digg Big Spy, We Feel Fine, or Gapminder. and you’re a web surfer you are probably amazed. If however, you’re a web designer or programmer you may be wondering how to accomplish these dramatic visualizations. Below you’ll find a list of visualization software, toolkits and programming languages to get you started.

Also, if you want to see or learn more about data visualizations please visit DesignDemo and VizLIst . I post visualizations on a daily basis in both of these sections.

Please use the comments section of this post to let the community know of any useful resources I’ve left out. Most of the descriptions below are taken from the developers of the example. Thanks, Max.

Visualization Programming Languages

Processing
Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production.

Processing

Visualization Software

OpenDX
The open source software project based on IBM’s visualization data explorer. If you need visualization for anything from examining simple data sets to analyzing complex, time-dependent data from disparate sources, OpenDX has what you need: features and functions that let you easily gain meaningful insight into your data.

OpenDX

Packet Garden
Packet Garden captures information about how you use the internet and uses this stored information to grow a private world you can later explore. To do this, Packet Garden takes note of all the servers you visit, their geographical location and the kinds of data you access. Uploads make hills and downloads valleys, their location determined by numbers taken from internet address itself. The size of each hill or valley is based on how much data is sent or received. Plants are also grown for each protocol detected by the software; if you visit a website, an ‘HTTP plant’ is grown. If you share some files via eMule, a ‘Peer to Peer plant’ is grown, and so on.

Packet Garden

Visualization Toolkits

The Flare Visualization Toolkit
Flare is a collection of ActionScript 3 classes for building a wide variety of interactive visualizations. For example, flare can be used to build basic charts, complex animations, network diagrams, treemaps, and more. Flare is written in the ActionScript 3 programming language and can be used to build visualizations that run on the web in the Adobe Flash Player. Flare applications can be built using the free Adobe Flex SDK or Adobe’s Flex Builder IDE. Flare is based on prefuse, a full-featured visualization toolkit written in Java. Flare is open source software licensed under the terms of the BSD license, and can be freely used for both commercial and non-commercial purposes.

The Flare Visualization Toolkit

Prefuse Visualization Toolkit
A Java-based toolkit for building interactive information visualization applications.

Prefuse Visualization Toolkit

Enterprise Visualizations

i2
i2 Inc. is the leading worldwide provider of visual investigative analysis software for law enforcement, intelligence, military and Fortune 500 organizations.

i2

Visualization Tools

Graph Gear – Graph Visualization Component
This is a very simple example of the graph gear component. The contents of simple.xml are rendered as an interactive graph through javascript to a flash component.

Graph Gear - Graph Visualization Component

Many Eyes
Many Eyes is a visualization tool created by the Visual Communication Lab which is part of IBM’s Collaborative User Experience research group. As they say on their website, “Many Eyes is a bet on the power of human visual intelligence to find patterns. Our goal is to “democratize” visualization and to enable a new social kind of data analysis. Jump right to our visualizations now, take a tour, or read on for a leisurely explanation of the project.”

Many Eyes

Slife
Slife 1.3 offers a whole new way to keep track of what you do in your computer. Visualize your activities, improve your productivity and manage your time more efficiently. Slife observes everything you do in your computer and plots your activities in a graphical timeline. Its unique approach to activity tracking and time management opens up a world of possibilities.

Slife

1 Comment

Javascript and AJAX Security – How to Make Your Website Safe

8/11/2007

Beneath the peppy front ends of many of todays Rich Internet Applications lies a dark flaw that if left unchecked can bring a site down to it’s knees. For the past few years many designers and developers have been adding AJAX and Javascript functionality to there websites. Many of these websites suffer from threats such as, cross site scripting (also known as XSS), cross-site request forgery (XSRF), and several other well know exploits. Maybe your using one of the popular libraries such as, Prototype and Script.aculo.us, or Dojo and think You’re safe. Think again. Unless you’ve implemented security fixes you may be vulnerable to several types of attacks. The same goes for blog plugins, popular open source applications, and of-course the plethora of free Javascript and AJAX add-ons available at free script websites. If you want to protect yourself, please read on.

Below you’ll find a list of the sites I’ve visited to learn more about Javascript and AJAX security. Please let me know through email or a comment if you know of any other great security resources, and I’ll be glad to post them. Most of the descriptions below are taken from the developers of the example. Thanks, Max.

AJAX Security Articles

Ajax Security: Stronger than Dirt?
“Ajax allows the development of more feature rich, asynchronous applications, but in doing so opens up new possibilities for attackers. We look at the relevant security issues and their possible solutions. Ajax (Asynchronous JavaScript and XML) lurched into being in 2005. As a web services model, Ajax is touted as the next big thing by many who work in web development. Like all big things however, Ajax is not without its faults, one of the most pronounced being that not many people actually know what Ajax is, and what potential risks could be introduced into enterprise environments by embracing it. This article examines what Ajax is, the security implications for Ajax applications, and details a range of potential attack vectors against this technology together with possible defences.”

Developers Warned to Secure AJAX Design

“Security firm Fortify Software has stepped forward to warn Web site developers that most frameworks for deploying interactive functionality use JavaScript in a way that could lead to their applications leaking user data. The problem, dubbed JavaScript hijacking by the firm, occurs because popular asynchronous JavaScript and XML (AJAX) toolkits use the scripting language as a transport mechanism without due consideration to security. The basic threat is that malicious Web sites could use cross-site request forgery (XSRF) to steal data from other AJAX-enabled Web applications, Fortify stated in a report released on Monday.”

JSON is Not As Safe As People Think It Is
“I saw some discussion recently about using JSON for secured data, and I’m not sure that everyone understands the risks. I believe that JSON is unsafe for anything but public data unless you are using unpredictable URLs. There are 2 problems. CSRF (Cross Site Request Fogery) allows attackers to bypass cookie based authentication. I blogged about it a while ago. Wikipedia talks about it. CSRF allows you to invoke cookie protected actions on a remote server. It allows Mr. Evil to trick Mrs. Innocent into transferring money from her bank account into his. Far less known perhaps, is the JSON/Array hack that allows a user to steal JSON data on Mozilla and any other platform with a modern JavaScript interpreter.”

Myth-Busting AJAX (In)security
“The hype surrounding AJAX and security risks is hard to miss. Supposedly, this hot new technology responsible for compelling web-based applications like Gmail and Google Maps harbors a dark secret that opens the door to malicious hackers. Not exactly true. Even the most experienced website developers and security experts have a difficult time cutting through the buzzword banter to find the facts. And, the fact is most websites are insecure, but AJAX is not the culprit. Although AJAX does not make websites any less secure, it’s important to understand what does.”

New chapter and verse on Ajax Security
“The increased use of Ajax has brought to the forefront concern about its security. Recognizing that this is an issue, the Open Web Application Security Project (OWASP) is updating its Guide to Building Secure Web Applications to include a separate chapter on Ajax. Andrew van der Stock, who is heading the Guide project and who also wrote the Ajax chapter, spoke with SearchAppSecurity.com recently about Ajax security and what risks developers need to be concerned about.”

The Cross Site Scripting (XSS) FAQ
“Websites today are more complex than ever, containing a lot of dynamic content making the experience for the user more enjoyable. Dynamic content is achieved through the use of web applications which can deliver different output to a user depending on their settings and needs. Dynamic websites suffer from a threat that static websites don’t, called “Cross Site Scripting” (or XSS dubbed by other security professionals). Currently small informational tidbits about Cross Site Scripting holes exist but none really explain them to an average person or administrator. This FAQ was written to provide a better understanding of this emerging threat, and to give guidance on detection and prevention.”

Top 10 Ajax Security Holes and Driving Factors
“One of the central ingredients of Web 2.0 applications is Ajax encompassed by JavaScripts. This phase of evolution has transformed the Web into a superplatform. Not surprisingly, this transformation has also given rise to a new breed of worms and viruses such as Yamanner, Samy and Spaceflash. Portals like Google, NetFlix, Yahoo and MySpace have witnessed new vulnerabilities in the last few months. These vulnerabilities can be leveraged by attackers to perform Phishing, Cross-site Scripting (XSS) and Cross-Site Request Forgery (XSRF) exploitation.”

AJAX Security Tools

AJAX Secure Service Layer

“We see it all around us, recently. Web applications get niftier by the day by utilising the various new techniques recently introduced in a few web-browsers, like I.E. and Firefox. One of those new techniques involves using Javascript. More specifically, the XmlHttpRequest-class, or object.”

AJAX: Is Your Application Secure Enough?
“aSSL is a library distributed under MIT License thats implements a technology similar to SSL without HTTPS. aSSL enables the client to negotiate a secret random 128-bit key with the server using the RSA algorithm. Once the connection has been established, the data will be sent and received using AES algorithm. aSSL is composed of some Javascript files and a server side component. Because I have recently changed the negotiation algoritm from RC4 to RSA, only a pure Javascript (ASP) server component is currently available. I will do a porting for the main web languages (PHP, Java, Perl, Python, TKL, etc.) as soon as possible once the library has passed the beta phase.”

How to Protect a JSON or Javascript Service
“There have been lots of explanations recently of the dangers of JSON or JavaScript remoting. This post is about what you can do to protect your scripts.”

DOM Security

DOM Based Cross Site Scripting or XSS of the Third Kind

“We all know what Cross Site Scripting (XSS) is, right? It’s that vulnerability wherein one sends malicious data (typically HTML stuff with Javascript code in it) that is echoed back later by the application in an HTML context of some sort, and the Javascript code gets executed. Well, wrong. There’s a kind of XSS which does not match this description, at least not in some fundamental properties. The XSS attacks described above are either “non-persistent”/”reflected” (i.e. the malicious data is embedded in the page that is returned to the browser immediately following the request) or “persistent”/”stored” (in which case the malicious data is returned at some later time). But there’s also a third kind of XSS attacks – the ones that do not rely on sending the malicious data to the server in the first place! While this seems almost contradictory to the definition or to common sense, there are, in fact, two well described examples for such attacks. This technical note discusses the third kind of XSS, dubbed “DOM Based XSS”. No claim is made to novelty in the attacks themselves, of course, but rather, the innovation in this write-up is about noticing that these belong to a different flavor, and that flavor is interesting and important.”

General Client-Side Component Security

Hacking Web 2.0 Applications with Firefox
“AJAX and interactive web services form the backbone of “web 2.0″ applications. This technological transformation brings about new challenges for security professionals. This article looks at some of the methods, tools and tricks to dissect web 2.0 applications (including Ajax) and discover security holes using Firefox and its plugins.”

Prepare for Attack!–Making Your Web Applications More Secure
“Arm yourself and prepare for battle! This post is intended as a reminder about the possible security attacks your Web application may be vulnerable to. While it is not meant as a comprehensive guide to Web-application security, it can give you some ideas on how to better protect your applications.”

XSS, Cookies, and Session ID Authentication – Three Ingredients for a Successful Hack

“Cross site scripting (XSS) errors are generally considered nothing more than a nuisance — most people do not realize the inherent danger these types of bugs create. In this article Seth Fogie looks at a real life XSS attack and how it was used to bypass the authentication scheme of an online web application, leading to “shell” access to the web server.”

Vulnerability Scanning Web 2.0 Client-Side Components
“Web 2.0 applications are a combination of several technologies such as Asynchronous JavaScript and XML (AJAX), Flash, JavaScript Object Notation (JSON), Simple Object Access Protocol (SOAP), Representational State Transfer (REST). All these technologies, along with cross-domain information access, contribute to the complexity of the application. We are seeing a shift towards empowerment of an end-user’s browser by loading libraries.”

Javascript Security Articles

Community Creators, Secure Your Code!
“Personalization is a great feature–it allows users to make their personal pages come to life by adding colors, pictures, and even sound–but as with any user input, it is a security threat if not properly sanitized. The creation of a secure online community is a balancing act: your users should be able to personalize their pages using pseudo code or actual HTML, while remaining protected from vandals who might inject malicious JavaScript or otherwise cause harm. One piece of the larger security puzzle is cross-site scripting (XSS). In part one of this two-article series, we will look at various XSS techniques you should be aware of, and at common methods of defending your community against them. In part two, we’ll use real-world examples to explore these techniques in greater detail.”

Detecting, Analyzing, and Exploiting Intranet Applications using JavaScript

“Imagine visiting a blog on a social site or checking your email on a portal like Yahoo’s Webmail. While you are reading the Web page JavaScript code is downloaded and executed by your Web browser. It scans your entire home network, detects and determines your Linksys router model number, and then sends commands to the router to turn on wireless networking and turn off all encryption. Now imagine that this happens to 1 million people across the United States in less than 24 hours. This scenario is no longer one of fiction. ”

Javascript Security Tools

Javascript Security Tutorial
“JavaScript has its own security model, but this is not designed to protect the Web site owner or the data passed between the browser and the server. The security model is designed to protect the user from malicious Web sites, and as a result, it enforces strict limits on what the page author is allowed to do. They may have control over their own page inside the browser, but that is where their abilities end.”

Security for GWT Applications
“It is a sad truth that JavaScript applications are easily left vulnerable to several types of security exploits, if developers are unwary. Because the Google Web Toolkit (GWT) produces JavaScript code, we GWT developers are no less vulnerable to JavaScript attacks than anyone else. However, because the goal of GWT is to allow developers to focus on their users’ needs instead of JavaScript and browser quirks, it’s easy to let our guards down. To make sure that GWT developers have a strong appreciation of the risks, we’ve put together this article..”

Preventing Cross Site Scripting Attacks

“Cross site scripting (XSS) is basically using JavaScript to execute JavaScript from an unwanted domain in a page. Such scripts could expose any data in a page that is accessible by JavaScript including, cookies, form data, or content to a 3rd party. Here is how you can prevent your web pages from being exploited on both the client and the server. This is followed with tips on how to avoid vulnerable sites.”

Javascript Encryption

Cryptography: JavaScript MD5
“Over the web, JS cryptography can only protect against passive eavesdropping, as the JavaScript itself is downloaded over an insecure link. If an attacker can modify network traffic, they can make malicious changes to the JavaScript code. In any case, JS interpreters are not designed for secure programming. They may leave sensitive information lying about in memory. They’re too slow for some algorithms, e.g. BSD-style MD5 passwords, or RSA with full-size keys. Bitwise operations are buggy in several implementations.”

JavaScript Encryption Program
“This page includes an open source JavaScript implementation of the RC4, AES, Serpent, Twofish, Caesar and RSA ciphers. Ciphers can encrypt and decrypt information such that persons who do not know the password (the decryption key) can not read it. The implemented ciphers are strong enough to protect important information such as your passwords and PIN numbers. ”

No Comments

How To Minimize Your Javascript and CSS Files for Faster Page Loads

4/11/2007

Over the last 11 years I’ve spent a great deal of time trying to improve client websites with an eye for minimalist interface design and code. While the minimalist design esthetic is not the choice for every client the notion of less code and faster load times always goes over well. Today, many of web applications I design and code for have a plethora of Javascript and CSS files. Fortunately, there are many options to solve this rather simple problem. Compression, obfuscation and bundling are all great options.

Below you’ll find a list of the sites I’ve visited to learn more about Javascript and CSS compression. Please let me know through email or a comment if you know of any other great compression resources, and I’ll be glad to post them. Most of the descriptions below are taken from the developers of the example. Thanks, Max.

Javascript and CSS Compression

Bundle-Fu – Bundle Your JS/CSS Assets in 10 Seconds or Less
“Web 2.0 sites have lots of tiny javascript/css files, which causes one extra round trip per file to the server and back! This is bad! Bundle-fu throws it all up into a big package and sends it out all at once. ”

Make Your Pages Load Faster by Combining and Compressing Javascript and CSS Files
“About six months ago I noticed the pages generated by the content management system were in itself very clean and small, but that these pages still took a long time to load for new visitors. Even on a fast internet connection it took more than 8 seconds to load a basically empty page. The server generated the page in about 350ms, so that wasn’t the problem. The problem turned out to be a combination of two things: each page used more than 12 different css files because each plugin supplied its own css definitions and because the use of the rather large prototype and scriptaculous javascript libraries which also consists of a couple of different files. Now that an article about the same problem featured on the Yahoo! User Interface blog, I decided to make my solution public, so others can benefit from it.”

Faster Page Loads – Bundle Your CSS and Javascript
“Have you ever watched your status bar while you wait for a page to load and wondered why several files seem to be downloaded before you see anything at all on your screen? Eventually the page content displays, and then the images are slotted in. The files that keep you waiting are generally the CSS and Javascript files linked to from the “head” section of the HTML document. Because these files determine how the page will be displayed, rendering is delayed until they are completely downloaded..”

Pack:Tag
“A serverside static-resource compressing JSP-Taglib. Could cache ad hoc compressed JavaScript or CSS in memory or in a file. The compressing-algorithms are pluggable.”

AJAX and CSS Optimization
“Roland pointed me to an article about the amount of Javascript on digg.com’s home page. Seems a few Digger’s found it interesting. Well here at Zimbra we’ve got tons of Javascript and CSS in our AJAX web app. I decided to try an experiment to see if the techniques we use for Zimbra, a rather large AJAX app would help a site like digg.”

Javascript Compression

Serving JavaScript Fast
“With our so-called “Web 2.0″ applications and their rich content and interaction, we expect our applications to increasingly make use of CSS and JavaScript. To make sure these applications are nice and snappy to use, we need to optimize the size and nature of content required to render the page, making sure we’re delivering the optimum experience. In practice, this means a combination of making our content as small and fast to download as possible, while avoiding unnecessarily refetching unmodified resources.”

JSMin – The JavaScript Minifier
“JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files. It typically reduces filesize by half, resulting in faster downloads. It also encourages a more expressive programming style because it eliminates the download cost of clean, literate self-documentation.”

YUI Compressor
“The YUI Compressor is a JavaScript compressor which, in addition to removing
comments and white-spaces, obfuscates local variables using the smallest
possible variable name. This obfuscation is safe, even when using constructs
such as ‘eval’ or ‘with’ (although the compression is not optimal is those
cases) Compared to jsmin, the average savings is around 20%. The YUI Compressor is also able to safely compress CSS files. The decision on which compressor is being used is made on the file extension (js or css).”

GZip output compression with AJAX
“To make page downloading quicker, I added GZipStream into the
Response filter.”

Javascript and CSS Compression With Java

LZ77-Algorithm-Based JavaScript Compressor
“LZ77 is known as the basic loseless data compression algorithm. It is used very wide. For example, common .png, .zip, .gzip, .jar, .war file formats use LZ77 compressing algrightm. Here is a Java implementation of such LZ77 algorithm. And by using the Java2Script Simple RPC technology, it sends the string, which is going to be compressed, back to server, which is a Java Serlvet container, and the server runs LZ77 algorithm to compress given string, and then packs compresed string back to browser side. As this compression is specially designed for JavaScript sources, it gives options for how JavaScript codes are compressed. In most cases, this compressor compresses JavaScript at the ratio of 40%~60%. And if you check off those JavaScript options, this compressor can compress any given string.”

Combine and compress your CSS and Java

“So you have your site running on the latest and greatest Java libraries, but your supporting CSS and JavaScript files are really starting to slow things down. You’re no JavaScript expert, so what do you do? Lucky for us some other people have already encountered this problem and have a great solution.”

Javascript Compression With PHP

Packer JavaScript in PHP
“PHP Version of the Dean Edwards ’s Packer de Dean Edwards, a JavaScript Compressor/Obfuscator.”

Javascript and CSS Compression With Rails

Rails plugin: Blazing fast page loads through bundled CSS and Javascript
“I recieved an interesting Sitepoint newsletter the other day which talked about bundling CSS and Javascript ressources (or “assets” like that’s called in Rails talk) to achieve faster page loads. This caught my attention specifically because I experienced the need to repackage many small CSS files on the fly a while back when I worked on a large CMS-type system. Skimming through the PHP source article and code I thought that something similar could be done as a Rails plugin pretty easily and elegantly. I couldn’t resist, sat down and started coding away … so here are my results.”

Javascript Compression With Rhino and Maven

Rhino and Maven for JavaScript Compression at Build Time
“AJAX-based Rich Internet Applications (RIAs) make heavy use of JavaScript. To improve the user experience of RIAs we can minimize the number of (JavaScript) file requests and reduce their size.”

ShrinkSafe
“ShrinkSafe is a JavaScript “compression” system. It can typically reduce the size of your scripts by a third or more, depending on your programming style. Many other tools also shrink JavaScript files, but ShrinkSafe is different. Instead of relying on brittle regular expressions, ShrinkSafe is based on Rhino, a JavaScript interpreter. This allows ShrinkSafe to transform the source of a file with much more confidence that the resulting script will function identically to the file you uploaded. Best of all, ShrinkSafe will never change a public variable or API. That means that you can drop the compressed version of your JavaScript into your pages without changing the code that uses it.”

MobilVox Maven JavaScript Plugin

“The MobilVox Maven JavaScript Plugin (maven-js-plugin) is a Maven Plugin that manipulates JavaScript in a web application. The currently implemented goal is compress which compresses all JavaScript in a Java web application.”

Compression Research

Performance Research, Part 1: What the 80/20 Rule Tells Us about Reducing HTTP Requests
“This is the first in a series of articles describing experiments conducted to learn more about optimizing web page performance. You may be wondering why you’re reading a performance article on the YUI Blog. It turns out that most of web page performance is affected by front-end engineering, that is, the user interface design and development.”

Minification v Obfuscation
“JavaScript is a load-and-go language. Programs are delivered to the execution site as text (not as executable or semi-compiled class files) where it is compiled and executed. JavaScript works well with the Web, which is a text delivery system, because it is delivered as text.”

Optimizing Page Load Time

“It is widely accepted that fast-loading pages improve the user experience. In recent years, many sites have started using AJAX techniques to reduce latency. Rather than round-trip through the server retrieving a completely new page with every click, often the browser can either alter the layout of the page instantly or fetch a small amount of HTML, XML, or javascript from the server and alter the existing page. In either case, this significantly decreases the amount of time between a user click and the browser finishing rendering the new content.”

My Other Post About Minimalizm and Compression

Decrease Load Time and Increase ROI in Web 2.0 and AJAX Sites

Facilitate User Experience with CSS Compression

Minimalist Website Design Patterns

1 Comment

Learning AJAX & Javascript by Example – Tutorials, Source-Code and Documentation

29/10/2007

I learn the best by example, so I read about, and try, as many AJAX and Javascript examples as I can find. Below you’ll find a short list of the AJAX tutorials and examples that I’ve seen recently. They have all been organized by category with the exception of the “General” category which includes some example that didn’t lend themselves to a vertical. Please let me know through email or a comment if you know of any other great AJAX tutorials, and I’ll be glad to post them. Also special thanks to all of the folks who produced all of these great free learning experiences.

Most of the descriptions below are taken from the developers of the example. Thanks.

AJAX and XML

Ajax and XML: Five Ajax Anti-Patterns
“You can learn a lot about how to do things correctly by understanding how things are done incorrectly. Certainly, there’s a right way and a wrong way to write Asynchronous JavaScript(TM) + XML (Ajax) applications. This article discusses some common coding practices you will want to avoid.”

Ajax and XML: Ajax for Media
“With the advent of widely available broadband, media, movies, images, and sound drive the Web 2.0 revolution. Learn to combine media with technologies such as PHP and Asynchronous JavaScript(TM) + XML (Ajax) to create a compelling experience for your customers.”

AJAX/Javascript XML Processing Example/Tutorial
“This example demonstrates a simple AJAX javascript for requesting XML data from a server and displaying the response in a HTML-table. The server-side script is a simple PHP script, which actually just sends some XML data.”

AJAX/Javascript XML Tips & Tricks
“Here are some XML processing examples in Javascript. If you’ve got some XML data with XMLHttpRequest (there is actually no XMLHttpRequest in the examples – we create the XML object from a string – can be handy too) you need to read/convert etc. it to some other format and do something with it. Traversing a DOM/XML tree can be tricky, so have a look at these examples.”

Asynchronous JavaScript Technology and XML (Ajax) With the Java Platform
“Using JavaScript technology, an HTML page can asynchronously make calls to the server from which it was loaded and fetch content that may be formatted as XML documents, HTML content, plain text, or JavaScript Object Notation (JSON). The JavaScript technology may then use the content to update or modify the Document Object Model (DOM) of the HTML page. The term Asynchronous JavaScript Technology and XML (Ajax) has emerged recently to describe this interaction model.”

The AJAX response: XML, HTML, or JSON?

“Since my last AJAX project I’ve increasingly been wondering about the “ideal” output format for the AJAX response. Once you’ve succesfully fired an AJAX request, what sort of response should the server give? An XML document? An HTML snippet? A JSON string which is converted to a JavaScript object? Or something else? In this entry I’d like to discuss the three formats, with examples, and ask you which format you’ve used in your practical AJAX applications.”

AJAX Menus

AJAX Context Menu
“This is an example of a server-generated AJAX context menu.”

AJAX Dhtml Menu
“Ajax dhtml menu allows to populate data for sub menus from the server on-the-fly. It saves outgoing traffic from the server particularly when you use big menus.”

AJAX Menu Content

“This is an example of AJAX content driven by a ComponentArt Menu instance.”

FastFind Menu Script
“This script allows for nested menus, based on dynamic “AJAX” responses. The menu can also be dragged/dropped thanks to the jQuery Interface Library.”

Simple Javascript Accordions
“We hope our script is one of the smallest accordion script which is extremely simple and easy to integrate. Does’nt require any framework and fully cross-browser compatible.”

General AJAX and Javascript

Endless Pageless – No More Next Page

“Twelve years after the debut of search engines, we have Google representing the current best-of-breed index of web pages. It is faster, smarter, and it has raised the bar for web usability several times over. And yet, we are still paging through search results ten or twenty records at a time. Unfortunately, this style of navigation has been adopted by every site that returns records from a database, regardless of the amount of data being served. We propose an alternative interface to result data on the web: the “Endless Pageless”. Using Ajax we can dynamically fetch more results and append them to the bottom of the page, as the user approaches the end of the content they have already read. This pattern removes the need for pagination, feeding your customer as much data as they care to read in a subtle, non-intrusive way.”

Howto integrate Google Calendar in your website using AJAX
“One of the features I find most interesting in Google calendar is the possibility to create shared calendars, but also the availability of your calendar as XML or ICAL whether it’s a private or public one. As soon as we had XML of our calendar available I was wondering why not integrating Google calendar directly into a website. For example, a community that uses the service to manage their events, or to display your future trips in your blog?”

Javascript Client Side Transclusions
“Purple-include is a client-side JavaScript library that allows you to do client-side transclusions. What the heck does that mean? It means that you can include and display fragments of one HTML page in another without copying and pasting any content.”

Javascript Image Magnification 2.3
“PopBox is an image magnification javascript solution for dynamically moving and resizing images on your web page. Javascript? Yes – I know it’s nothing new and that you’ve been able to move and resize things in Javascript for years, but only now is there a prepackaged solution that makes it as easy as 3 lines of HTML without knowing a lick about positioning!”

Make Ajax development easier with AjaxTags
“Developers and users have much higher expectations for the usability and responsiveness of Web-based applications in the Web 2.0 era. Unless you’ve been living under a rock for the past two years, you’ve likely heard of Asynchronous JavaScript + XML (the Ajax technique). Ajax allows you to build slick, responsive, and highly dynamic browser-based user interfaces without requiring browser page reloads. This article takes a look at AjaxTags, a Java(TM)/JavaScript Library that lets you easily integrate Ajax functionality into your JSP pages.”

Phatfusion – Awesome AJAX Examples
I’ve been posting AJAX demo’s, tutorials and code since term was introduced, and while there is only six examples now I find the AJAX work at Phatfusion as some of the best I’ve seen. There is an AJAX lightbox, AJAX image viewer, AJAX validate script, AJAX rounded corners, AJAX sortable table and an AJAX slideshow. Hats off to the developer.

Undo Made Easy with Ajax (Part 2) – Time-Sensitive Actions
“Last time we covered the event queue method, an entirely client-side way of implementing a light-weight, multi-level undo. I mentioned a couple of caveats, including that it does not work in multi-user collaborations, and that it doesn’t work for time-sensitive actions like sending emails. I missed a significant caveat that one of my readers, Alexander Botero-Lowry, pointed out: That two tabs, pointed to the same page, could get out of sync. I wrote about how to solve that issue with cookies.”

Javascript Layout Managers

Javascript Grid Layout
“The Grid Layout Javascript enables web-developers to stick to a Grid Layout quickly and simply by including the Grid Layouts Javascript file and simple XHTML code. Currently, the Grid Layouts Javascript relies on jQuery.”

RUZEE.LayoutManager
“This script is a border layout manager for HTML/CSS in JavaScript. Want layouts for desktop like applications running in your browser? Used to layout managers of standard GUI toolkits, e.g Java AWT, Fox, TK? RUZEE.LayoutManager is the right toy for you.”

Simple Layout Manager with Prototype 1.6
“Aaron (Aaron @ ennerchi) ask me to develop a simple layout manager for a web application. First of all, I want to thanks him for accepting to release this layout manager in open source under MIT-license. This class is inspired by RUZEE.LayoutManager but based on prototype 1.6. RUZEE version was to slow on complex layout. It’s an unobtrusive script based on CSS classes.”

Javascript and AJAX Load Time

Client Side Load Balancing for Web 2.0 Applications
“A web server handles HTTP (Hypertext Transfer Protocol) requests sent to it by web browsers. When you type in a URL –http://www.digital-web.com, for example–your computer sends out a request to look up the servers needed to handle requests and send responses back quickly. The technique for determining how to route requests to the cluster of web servers efficiently is called load balancing.”

How to Profile and Optimize Ajax Applications
“I’ve been asked by a few folks recently on how to profile an Ajax application and improve its performance, so I thought I would detail some of the specific and general strategies to do this in a tutorial here.”

Loading time improvements with Javascript
A short tutorial on increasing page load time with javascript with a short code snippet.

Optimizing Page Load Time

“It is widely accepted that fast-loading pages improve the user experience. In recent years, many sites have started using AJAX techniques to reduce latency. Rather than round-trip through the server retrieving a completely new page with every click, often the browser can either alter the layout of the page instantly or fetch a small amount of HTML, XML, or javascript from the server and alter the existing page. In either case, this significantly decreases the amount of time between a user click and the browser finishing rendering the new content.”

Serving JavaScript Fast
“With our so-called “Web 2.0″ applications and their rich content and interaction, we expect our applications to increasingly make use of CSS and JavaScript. To make sure these applications are nice and snappy to use, we need to optimize the size and nature of content required to render the page, making sure we’re delivering the optimum experience. In practice, this means a combination of making our content as small and fast to download as possible, while avoiding unnecessarily refetching unmodified resources.”

Speed Up Your Javascript Load Time
“Javascript is becoming increasingly popular on websites, from loading dynamic data via AJAX to adding special effects to your page. Unfortunately, these features come at a price: you must often rely on heavy Javascript libraries that can add dozens or even hundreds of kilobytes to your page. Users hate waiting, so here are a few techniques you can use to trim down your sites.”

Javascript and AJAX Forms & Validation

AJAX Contact Form
“In this tutorial I am going to teach you how to create an Ajax contact form for your website. The main purpose of using ajax for this task will be the fact that you’re saving bandwith (hard to believe that in 2007 we’re still looking to save bandwith but…), it communicates with the visitor on the same page, almost instantly and is faster because you’re not loading another page to show a confirmation message or whatever else is supposed to show given the situations.”

AJAX Form Creator
“This project aims to create a browser-based form builder for Drupal.”

AJAX Form POST Request
“This example demonstrates a simple AJAX javascript for POSTing a complete HTML form to the server and displaying the response. The server-response is displayed in a “span” – the server-side script is a simple PHP script to display the contents of the $_POST global variable.”

Degradable Ajax Form Validation

“If you’ve ever confronted the task of validating data in a form, you know about choice. Whether it’s choosing between client side or server-side scripts, or the amount of information a user should see on the screen, the results should always give the user quick and meaningful feedback, while providing a solution for when things go wrong.”

Easily Upgrade Your Forms to AJAX
“By my standards no website should still use traditional webform GET or POST requests to transfer data to the server. Through AJAX, form data can be sent way faster, since only the necessary data is sent back and forth to the server. Thanks to the hard work of some individual developers, using AJAX to transfer data from html forms has been streamlined and has become very simple. I will demonstrate this by creating a comments form, which will transmit data to the server using the Prototype JavaScript Framework, developed by Sam Stephenson. The data will be processed on the server side and return data to the original html page, where it is displayed.”

Really Easy Field Validation
“Here’s a form validation script that is very easy to use. The basic method is to attach to the form’s onsubmit event, read out all the form elements’ classes and perform validation if required. If a field fails validation, reveal field validation advice and prevent the form from submitting.”

Validate.js
“AJAX routine to validate form based input. The script is easy to use and works on everything I’ve tried it on. If you use forms and AJAX on your website you should check this one out.”

Validating Forms with Ajax
“synchronous JavaScript and XML (Ajax) is a Web development technique that combines JavaScript, Document Object Model (DOM), and XMLHttpRequest technologies to provide dynamic interaction between a client and server.”

XML in the Browser: Submitting forms using AJAX
“One of the least user friendly features of most websites is forms. The longer the form, the more annoying it gets. However, a new technology called AJAX (that has nothing to do with household cleansers!) can help. Let’s face it. Using forms on the Internet is a drag. This is especially true when the form is really long and spread over multiple pages. Every time you hit the “submit” or “continue” buttons, there is a long user-unfriendly wait.”

The Zapatec AJAX Forms Overview
“The Zapatec AJAX Forms are the fastest and easiest way to perform validation, provide feedback, and display error messages that enrich the user’s experience while reducing the communications with the server behind the scenes.”

XmlHttpRequest

Introducing a Cross Site AJAX Plugin for Prototype
“During cross site Ajax requests the standard XmlHttpRequest approach breaks down. The problem is that XmlHttpRequest is bounded by the same site policy. Fortunately the script tag has the freedom to do as it pleases.”

Re-inventing XMLHttpRequest – Cross-Browser Implementation With Sniffing Capabilities
“This article attempts to summarize some experience in working with XMLHttpRequest object by showing how to, implement a cross-browser XMLHttpRequest object (to replace existing one), enable interception to the XMLHttpRequest objects operations, solve multiple browser-specific XMLHttpRequest issues.”

XMLHttpRequest functions
“This function creates a new XMLHttpRequest object for every request you make. In simple cases such as this site, where every page fetches only three to five files, I don’t mind creating three to five objects. In more complex sites, however, where any page can make an arbitrary amount of requests, it’s probably better to write a function that reuses existing XMLHttpRequest objects.”

No Comments

VizList – The Data Visualization List

25/10/2007

I’m pleased to announce VizList as a new addition to my blog. VizList is a constantly updated list of all forms of next generation web-based visualizations. Posts will provide a screenshot, a description written by either myself or the developer, and a link to the website. All visualizations will be categorized for easy browsing. I am focused in keeping you up to date with the latest developments in data visualizations, software and applications.

Finally, if you know of a visualization that should be featured in VizList, please contact me and I’ll review it. I welcome sharing new ideas with the webosphere! Cheers, Max.

Visit VizLIst

No Comments

Beyond the List View – New Patterns in User Interface Design

23/10/2007

Currently there are many ways to view content on the web. From an interface design perspective these usually fall into one of three categories which include, list views, grid views and content visualizations. This article will look at each one of these patterns and discuss their history along with the pro and cons associated with their use. Then, I’ll give some examples of past and present websites using these patterns. Finally, we will look at a few examples of what we might be seeing in the next few years in the way interface design patterns.

The List View

The first user interfaces on the web all used the list view as the way to display content. This is the second web page ever authored by Tim Berners Lee in September of 1992. A very clean design with all of the information presented in a logical list format.

The Second Page

The next phase of the list view came with the advent of using data tables as page structure. At some point nearly everyone except geeks and hardcore programmers started using this new style of interface design. Column structure is in many ways represents mixed or multiple list style. Basically, a series of lists divided by columns. In 1998 even google had column lists on it home page. Notice the blue boxes under the search input.

Google 1998

Currently the list view is being used in some more interesting ways. With the popularity of AJAX came the live list view. Below is digg big spy and supercharged list view that shows all stories coming into digg.com in a fascinating live form.

Digg Big Spy

Today the list view is the most pervasive way to view content on the web. It’s so commonly used that it has become the de-facto construct for presenting all forms of content on the web. Search engines, blogs and nearly every other content vertical on the internet all use the list view to show their content. One of the few exceptions to this are photo and other media websites. Nearly every site in these categories uses the grid view.

The Grid View

The grid view has always been the preferred way to browse images and other media. Here is the browse view for tags in flickr.

Flickr Browse Page

The grid view has been around since designers have been using tables for layout, however, it wasn’t until recently that the grid has been used in new and exciting ways. Increasingly product websites have been using the grid view to display their content.

The Gap

While this is not stunningly different than a standard photo or gallery site, it does mark a change in the way products are viewed on the web. Now instead of just a photo and a caption you get a title, short description, and pricing information. In the beginning most product site only displayed in the list view. Now some give a choice to see products in list or grid view. One example of this is the social shopping site StyleHive which gives you the option to see bookmarks in a list or a grid view.

The StyleHive

As you can see in the above example the greatest advantage to the grid view for a product website is that you are presented with much more content above the fold. It is also potentially faster and easier to browse the information in the grid view, especially if most of the information can be portrayed with the image and a limited amount of text. The disadvantage is that you can present less information about each product. I have reviewed a few studies testing whether the list view or the grid view is preferred by website visitors and all of them seem to be rather inconclusive. In most cases the studies point to about a 50 / 50 ratio of individuals liking either the list view or grid view. Classically, this is about the same statistic we see when we test whether readers prefer to search or browse a websites content. The key is to get your viewers to the relevant information they are looking for as quickly as possible. This is known as the information scent. “Information scent is made of cues that people use to decide whether a path is interesting, says scientist Dr. Ed Chi. These cues consist (of) images, hyperlinks and bibliographic citations related to the information needed. According to Chi’s research, people almost always start out with a search engine, then engage in what he calls hub-and-spoke surfing: They begin at the center, and they follow a trail based on its information scent. If the scent is sufficiently strong, the surfer will continue to go on that trail. But if the trail is weak, they go back to the hub. People repeat this process until they’re satisfied, Chi said.” Hub-and-spoke surfing is where our next category of content presentation shines.

Data Visualizations

As I’ve stated in previous posts, data and content visualizations may be the next wave of interaction design. These constructs give us entirely new ways to discover deep content and relational data like never before. This form of searching or browsing map directly to the hub-and-spoke approach discussed by Dr. Chi. A good example of this is TuneGlue which is a music search and relationship visualization. The application lets you type in an artist and TuneGlue will return all of the artists it can find related to your search.

TuneGlue

This approach gives you both search capability and the hub-and-spoke method of surfing for the content you are interested in and the ability to discover related information. At this point data visualizations have been adapted to nearly every type of search including images, video, mapping and meta content.

One of the other big advantages of data and content visualizations is the ability to view all search results above the fold. While this form of interface design is not appropriate for every kind of site or content it is a great leap above the standard list and grid view. However, if you are trying to show a great deal of content above the fold data visualizations may be the perfect option for you.

What’s on the Horizon?

In the next few years we will see many new patterns in interface design. Some of the newest advances include life streams, slogs and ecological interface design.

If you want to be part of this discussion or know of other patterns in interface design just let me know by email or by leaving a comment on this post.

No Comments

AJAX & Javascript Galleries, Slideshows and Effects Redux

20/10/2007

I was looking through some of my older posts tonight and realized my last post about AJAX galleries, slideshows and effects was from March 2006. Tonight I did a quick search through some of my sources to see what was new and exciting in the world of AJAX and Javascript image display and manipulation. Once again, below you’ll find a categorized list of all of the AJAX image solutions I’ve been able to find that were of some use.

If you know of any AJAX based galleries, slideshows, or image manipulation that is not included on this list please post a comment of email me. Special thanks to all of the developers who spend their free time writing great code and releasing it for all of us to use for free.

AJAX & Javascript Galleries

e2 AJAX Gallery
(E)2 Photo Gallery is a open source gallery built with Mootools Javascript Library the compact, modular, Object-Oriented javascript framework. Designed to allow you to upload your photos to a desired folder, tell the (E)2 Photo Gallery what folder to look at and it will automatically load the images using PHP.

e2 AJAX Gallery

FrogJS Javascript Gallery

FrogJS is a simple, unobtrusive javascript gallery. It’s not a replacement for other thumbnail galleries like Lightbox JS, but a different way of showcasing galleries. This type of gallery is best used when a page-by-page gallery is needed, as is the case with photo stories. Below is a small example of a FrogJS gallery. Just click the parrot thumbnail to scroll through the gallery.

FrogJS Javascript Gallery

Highslide
Highslide JS is an open source JavaScript software, offering a Web 2.0 approach to popup windows. It streamlines the use of thumbnail images and HTML popups on web pages. The library has many features such as no plugins like Flash or Java required, popup blockers are no problem. The content expands within the active browser window. Single click. After opening the image or HTML popup, the user can scroll further down or leave the page without closing it. Compatibility and safe fallback. If the user has disabled JavaScript or the JavaScript fails in any way, the browser redirects directly to the image itself or to a fallback HTML page. This fallback is able to cope with most exceptions and incompatibilities.

highslide

JonDesign’s SmoothGallery 2.0
Using mootools v1.11, this javascript gallery and slideshow system allows you to have simple and smooth (cross-fading…) image galleries, slideshows, showcases and other cool stuff on your website

JonDesign's SmoothGallery 2.0

LightWindow v2.0
A really great AJAX gallery built in a lightbox style. Tons of features. Check out the site for a full list.

LightWindow v2.0

Pyxy Gallery
Pyxy-gallery is an AJAX image gallery in PHP and JavaScript, which optionally uses lightbox.js. It is designed to be an ultra-light-weight, “drop-in” image gallery.

Pyxy Gallery

AJAX & Javascript Image Menus

Phatfusion- Image Menu
An excellent example of an image based menu. Features include, onClick event keeps selected item open.Click open item to close. Specify a function for the onClick event. Auto open when the page loads.

Phatfusion- Image Menu

AJAX & Javascript Lightboxes

Phatfusion- Lightbox
This lightbox is an extended version of Slimbox and has the following features, The ability to specify a containing div rather than just the body. Place the next/previous buttons in the footer. Add a description with html markup.

Phatfusion- Lightbox

Slimbox, the Ultimate Lightweight Lightbox Clone
Slimbox is a 7kb visual clone of the popular Lightbox JS v2.0 by Lokesh Dhakar, written using the ultra compact mootools framework. It was designed to be small, efficient, more convenient and 100% compatible with the original Lightbox v2.

Slimbox- Lightbox

AJAX & Javascript Slideshows

dhtmlGoodies Image Slideshow Script
A very easy to configure AJAX Slideshow script from dhtmlGoodies.

dhtmlGoodies Image Slideshow Script

Google AJAX Feed API
The Slide Show is a simple to use application of the Google AJAX Feed API that is designed to let you add photo slide shows to your pages, sites, and blogs. The slide show control takes photo feeds from all popular sites, such as PhotoBucket, Flickr, and Picasa Web Albums. Any feeds that use Media RSS can be used without customization. However, the slide show control allows any photo-based feed to be accomodated, such as iTunes feeds similar to those found in the Tune Bar solution or the custom feed example below.

Google AJAX Feed API

jQuery Cycle Plugin

The jQuery Cycle Plugin is a lightweight slideshow plugin. Its implementation is based on the InnerFade Plugin by Torsten Baldes, the Slideshow Plugin by Matt Oakes, and the jqShuffle Plugin by Benjamin Sterling. It supports pause-on-hover, auto-stop, auto-fit, before/after callbacks, click triggers and many transition effects. It also supports, but does not require, the Metadata Plugin and the Easing Plugin. The plugin provides a method called cycle which is invoked on a container element. Each child element of the container becomes a “slide”. Options control how and when the slides are transitioned.

jQuery Cycle Plugin

Phatfusion- Slideshow
Very nice Javascript slideshow with features such as fade, slide and wipe transitions. The ability to loop the slideshow. Play, stop, next and previous controls. Inits from array of image src’s, a list of images on the page or using the href of an a tag like the lightbox.

Phatfusion- Slideshow

Rich Ajax slide shows with DHTML and XML
Personal image-management applications such as Apple iPhoto on the Macintosh have popularized the slide show view. In a slide show, the images appear in a timed sequence, with images fading in and out. In addition, the images are moved and zoomed in what has become known as the “Ken Burns Effect.” In this example, I have the browser download a list of images from the server. Then, I use that list of images to compose a slide show using Dynamic HTML (DHTML). I animate the images with random slow moves, zooms, and fades to give a pleasing version of the Ken Burns Effect without having to download Macromedia(R) Flash or any other heavyweight animation tools.

TripTracker - Customizable Javascript Image Viewer

TripTracker – Customizable Javascript Image Viewer
The TripTracker slideshow is a lightweight JavaScript image viewer with an animated slideshow feature. The viewer is free to use in personal or commercial web pages, provided that the script is not sold or exchanged for profit.

TripTracker - Customizable Javascript Image Viewer

Slideshow – A Javascript Class for Mootools
Slideshow is a javascript class to stream and animate the presentation of images on your website. Slideshow was originally written as a plugin for the Textpattern CMS in 2006, using the original Moo.fx javascript library. This new version has been re-written from the ground-up for Mootools, incorporating many developments and feature requests over the past year. Use the links below to see what new features are available in Slideshow and how it might enhance the presentation of images on your website.

Slideshow - A Javascript Class for Mootools

WebTwo Ajax SlideShow

First of all, WebTwo Ajax SlideShow is a small proof of concept. It was ment to demonstrate the capabilities of Ajax as a SDK and to show that with a few lines of code most of the capabilities that once were only offered by commercial softwares can be easily recreated. It relies on few background code, mainly Prototype and Script.aculo.us from which SlideShow derives most of it’s functionalities, and it’s currently on it’s way to become just as much cross platform/browser as any other JavaScript well written code

WebTwo Ajax SlideShow

3 Comments

Content Visualizations – The Next Wave of Interaction Design

15/10/2007

While the web is changing every day, the one constant is the need to discover information. Search, browse, lists and tags are all great ways to find what you are looking for, however, today content visualizations are giving us a whole new way to discover deep content and relational data like never before. For instance if you search for RadioHead in most of the current search engines you will find lots of links to RadioHead related information. What do you search for if you want to find bands that you might like that have the same sound as RadioHead? This is where content visualizations shine. Many give you the ability to drill down in the content you are interested in and, in a very graphical and visual way.

Below you’ll find a short list of the best visualizations I’ve seen recently organized by category.

If you know of any other great content visualizations please email me or post it to the comments. Special thanks to all of the developers who produced these wonderful visualizations.

Create Visualizations

OpenDX
OpenDX is a uniquely powerful, full-featured software package for the visualization of scientific, engineering and analytical data: Its open system design is built on familiar standard interface environments. And its sophisticated data model provides users with great flexibility in creating visualizations.

OpenDX

Data Visualizations

Cabspotting
Cabspotting traces San Francisco’s taxi cabs as they travel throughout the Bay Area. The patterns traced by each cab create a living and always-changing map of city life. This map hints at economic, social, and cultural trends that are otherwise invisible. The Exploratorium has invited artists and researchers to use this information to reveal these Invisible Dynamics.

Cabspotting

Crimespotting
Oakland Crimespotting is an interactive map of crimes in Oakland, and a tool for understanding crime in cities.

Crimespotting

Digg Arc
Digg Arc displays stories, topics, and containers wrapped around a sphere. Arcs trail users as they digg stories across topics. Stories with more diggs make thicker arcs.

Digg Arc

glTail – Realtime Logfile Visualization
View real-time data and statistics from any logfile on any server with SSH, in an intuitive and entertaining way. HTTP traffic on fudgie.org, during a Slashdotting. Each small blob is a request, and each large one is the flash movie on the front page. The numbers show requests per minute, averaged over the last 10 minutes.

glTail

MigMap
MigMap conveys a picture of how and where the production of knowledge is currently taking place in the area of migration – and of who is participating in and has access to it. MigMap investigates precisely how the new forms of supranational governance that can be observed in the European migration regime function. It looks, for example, at how European standards in politics and civil society are implemented, and at the authorities, persons and institutions taking part in this process. It examines how the various key players in the public and private spheres are interrelated and funded, as well as at the ways in which these spheres overlap or differ in terms of focus, location or personnel. Finally, it analyses how responsibilities are allocated and legitimised – and explores the theories, data and discourses upon which current paradigms in migration are based.

MigMap

TreeMap
Universe is a system that supports the exploration of personal mythology, allowing each of us to find our own constellations, based on our own interests and curiosities. Everyone’s path through Universe is different, just as everyone’s path through life is different. Using the metaphor of an interactive night sky, Universe presents an immersive environment for navigating the world’s contemporary mythology, as found online in global news and information from Daylife. Universe opens with a color-shifting aurora borealis, at the center of which is a moon, and through which thousands of stars slowly move. Each star has a specific counterpart in the physical world – a news story, a quote, an image, a person, a company, a team, a place – and moving the cursor across the star field causes different stars to connect, forming constellations. Any constellation can be selected, making it the center of the universe, and sending everything else into its orbit.

TreeMap

Trulia Hindsight
Trulia Hindsight is an animated map of homes in the United States from Trulia. The animations use the year the properties were built to show the growth of streets, neighborhoods and cities over time.

Trulia Hindsight

Universe
Universe is a system that supports the exploration of personal mythology, allowing each of us to find our own constellations, based on our own interests and curiosities. Everyone’s path through Universe is different, just as everyone’s path through life is different. Using the metaphor of an interactive night sky, Universe presents an immersive environment for navigating the world’s contemporary mythology, as found online in global news and information from Daylife. Universe opens with a color-shifting aurora borealis, at the center of which is a moon, and through which thousands of stars slowly move. Each star has a specific counterpart in the physical world – a news story, a quote, an image, a person, a company, a team, a place – and moving the cursor across the star field causes different stars to connect, forming constellations. Any constellation can be selected, making it the center of the universe, and sending everything else into its orbit.

Universe

Visual Thesaurus

The Visual Thesaurus is a dictionary and thesaurus with an intuitive interface that encourages exploration and learning. Available in both a Desktop Edition and an Online Editione.

Visual Thesaurus

Media Visualizations

Bungee View
Bungee View lets you search, browse, and data-mine image collections. It shows an overview of the entire collection, in addition to the familiar result list and item details of other search interfaces.

Bungee View

EarthAlbum
Earth Album is a google maps mash-up with youtube and flickr. The service allows you to dynamically explore videos and photos from both websites on a map.

EarthAlbum

FlickrVision
FlickrVision is a flickr Google Maps mash-up. It’s a great discovery tool and you can spend hours just watching the images open around the globle.

FlickrVision

TiltViewer
TiltViewer allows you to browse Flickr’s most interesting images in a 3D space. It’s designed to provide a fun, intuitive user experience. Images are pulled from Flickr’s Interestingness list. TiltViewer also has the option to display any set of Flickr images based on User Id, Group Id, Set Id, tags etc. To do this, append a query string on the end of the tiltviewer url.

TiltViewer

Music Visualization

TuneGlue
TuneGlue is music relationship visualization. The application lets you type in an artist and TuneGlue will return all of the artists it can find related to your search. By clicking on the artist button, and then release, the app will show all of the releases by this artist.

TuneGlue

Search Visualizations

TouchGraph Google Browser
The TouchGraph Google Browser reveals the network of connectivity between websites, as reported by Google’s database of related sites. Use this free Java application to explore the connections between realted website.

TouchGraph

Tag Visualization

You Say We Say
This project is a visual experiment in tagging. On the left you get the personal tags for the personal bookmarks ordered by frequency, and the containing box per is log-scaled so you get an impression of the long-tail position of a tag. Which means that often used tags are large, bright and go to the top. On the right are the community tags for the tagged resources. In the middle the tags with the same name are connected. If a line is horizontal, the indvidual and the community essentially agree on the relevance of the tag for the ressources. The steeper it is the larger the disagreement. If no line starts at a tag, it means it is not present in the other list. Very fascinating construct for tagging.

You Say We Say

No Comments

Minimalist Website Design Patterns

10/10/2007

Do you want your website to be beautiful, SEO friendly and fast loading? Try a true minimalist approach. Total, complete and utter minimalism is a high mark to meet in any medium. Wikipedia describes minimalism as, “movements in various forms of art and design, especially visual art and music, where the work is stripped down to its most fundamental features.” In web design minimalism translates into style, structure, and download time. Many websites that look minimal are actually mired in obtrusive or invalid code and slow download times. I believe true minimalism in web design should consider the design, code and efficiency of each page. In this article I’ll discuss a basic standard for minimalist web design, show examples of how a few current sites measure up to these standards, and finally show you a road map to your own web design minimalism.

Minimalist design patterns are not new to the web, in fact, It’s how website design began. This was the first page that Tim Berners Lee ever made back at CERN. Currently archived by on his site, it is the essence of minimal design.

The First Web Page
This is as minimal as it gets on the web even today. Default text, no columns, or images. If you take a layout like this and add a minimal of CSS you may have a well designed and minimalist website. We’ll call this website the internal elegance of web design. This is term I’m borrowing from mathematics where it is used to describe the beauty and efficiently of a formula, or in this case web design.

The Test

In order to dig a little deeper into whether a website is minimal, let’s first set up a methodology for reviewing a few sites. We’ll break this up into three sections, overall interface design, page code and efficiently of load time.

Interface Design
Of the three criteria listed above interface design is the most subjective, however, we will look at several objective factors so this is not just my opinion of minimalism. We will look at the use of white space, graphics, color and fonts. This is classically the area that most people think of when they think of minimal interface design. If the page looks minimal it must be minimal. That’s where the next two area of inquiry come into play.

Page Code
We will look under the hood of every page to determine how the page is marked up. A higher score will be given to pages who use CSS or cascading style sheets for style and structural declarations. XHTML/HTML and CSS will also be tested to ensure that all of the code being used is valid and error free. This will be done at the W3C Markup and CSS validators. You may be asking, “what does valid CSS and XHTML have to do with minimalism”? Well the answer is really quite simple. If you are using invalid code you are wasting download time with code that does not work in every web browser. True minimalist web design takes everything into consideration.

Overall Efficiently

Slow response times are one of the chief complaints of most internet users. Attention threshold is a term which describes how long a user will wait for a page to load before moving on to the next website. In general this is thought to be around eight seconds. With the advent of an 80% broadband penetration in the U.S. I would argue this may be as little as five seconds now.

In this section we will look in-depth at page and download efficiency. The methodology was to use WebSiteOptimization.com’s Web Page Analyzer and test each site to determine the pages overall efficiently. The script incorporates best practices from HCI research and web site optimization techniques. We will look at number of HTML files, HTML size, number of images including CSS background images, number of scripts, number of CSS imports, CSS size and multimedia size.

Now that we have some parameters let’s look at a few websites and see how they measure up.

Apple

While doing research for this article I reviewed several articles on web design minimalism. Many of these posts referred to the Apple website as a good example of minimalism so that will be the first site we look at.
Apple
Apple has a well honed sense of design and style as demonstrated by their home page. However, if you click into the website you quickly find yourself in another world where you are assaulted by a barrage visual clutter. Let’s look at the Mac page.
Apple Mac
Interface Design
While the front page of the Apple site has a good use of white space, graphics, color and fonts the interior pages do not score quite as high as they become much more cluttered and a bit confusing. While this is a product site and the use of images is necessary Apple goes a bit far by adding a graphical menu, a javascript gallery box with images of all of their mac products, graphical buttons and page headings. Throw in a few advertisements and the page looses the minimalist effect. Associations and proximity of content is also a bit weak which adds the feeling of clutter and confusion.

Page Code
For this test we looked at the Mac page. The page uses XHTML and CSS for structure and style. Unfortunately, the page fails markup validation and has 17 errors in it’s XHTML. The page uses four CSS files which also failed validation with 88 errors and 30 warnings.

Overall Efficiency
The page received passing scores for total HTML, HTML size and multimedia size. The total CSS received a warning since it had 4 individual CSS files attached to it. It received a failing grade for total objects downloaded with 36 individual requests. It also failed total images, total size, total scripts, image size, script size and css size. In total they received 3 passing grades, 1 warning and 7 failures. To their credit Apple does use HTTP compression to encode its content which delivers the content to your browser in a compress form.

Analysis and Recommendations
I’ve owned Apple computers since 1982 and their product design has always been on the cutting edge, however, their website has always suffered in terms of design and functionally. The current re-design is no exception. With the exception of the the home page and a few product pages the site is a bit too cluttered and image heavy to be a true minimalist design. This could be improved with less images being used for navigational elements, page headings and the number of product images. The page code needs to be checked for errors and the XHTML and CSS need to be re-vamped. Overall efficiency can be vastly improved by using one CSS style sheet, far fewer script requests, and fewer images. Considering all of the above I would not call the Apple site internal elegant and a minimalist design.

Pentagram

Pentagram is one of the premier design firms in the world. They create print and interactive design, products, environments and buildings. The partners that own this company are some of the best designers in the world including greats such as Michael Beirut.
Pentagram

Interface Design
The interface design is very clean and only the information and navigation you need is presented per page. The navigation is clear and easy to use. Whitespace is used in a very dramatic way. Images are only used when necessary, and the typography is readable and clean. The colors used are classic black, grey and red and are used effectively to differentiate content, headings and navigation.

Page Code
The site uses XHTML, CSS and javascript to create its layouts. The XHTML is valid, however, the CSS has 8 errors and 8 warnings and fails validation.

Overall Efficiency
The page received passing scores for total HTML, total CSS, HTML size, image size, and multimedia size. They receive cautions for total size, and total scripts (6). The page received warnings for total objects (24), total images, (15), script size, and CSS size. They are also not using HTTP compression.

Analysis and Recommendations
The site design is using all of the constructs of a true minimalist design, however the page code has 16 possible errors and the overall efficiency of the site suffers from too many scripts and images. My recommendations would be to reduce the use of external javascript files or use the packed or compressed versions of their current jquery files. Reducing image load on every page by removing all of the image calls from the CSS file and putting them on the page would reduce download time. Also combining CSS file into one import would help. By doing all of the the overall page load would decrease significantly.

Mark Boulton Design

Mark is a well known interface designer who along with Khoi Vinh brought back the grid system to the web with their articles, Mark Boulton’s grid system and Khoi Vinh’s Subtraction 7.0. As stated in the article, New Minimalism in Web Interface Design, “Creating elaborate and beatiful designs with complex grid systems and layers of text was timeless style of Paul Rand. Originaly emanated from Swiss graphic design school, books about grids and typography became essential food for inspiration-hungry interface thinkers and problem solvers. New web minimalism is reborn!” I couldn’t agree more.
Mark Boulton Design
Interface Design

Marks use of white space, graphics, color and fonts are impeccable. His interface design is minimal, easy to read and understand. The sites navigation is clear, non-graphical and accessible. Heading tags are properly used and images are only used when necessary.

Page Code
His XHTML code is valid and strict which is the highest level you can attain in this test. The CSS only has 1 error and 6 warnings. These errors are very minor and will not do anything to spoil the page view.

Overall Efficiency
The page received passing scores for total HTML, total scripts, HTML size, script size and multimedia size. It received 2 warnings for total images (10) and total size. There were only 4 failures for total objects (20), total CSS files (8), image size and css size. He is not using HTTP compression.

Analysis and Recommendations
Overall Marks site exhibits the constructs of an internally elegant website with minimalist design. I assume the reason he has so many CSS files is so he can sniff for your browser type and deliver a CSS file the looks perfectly in every browser. My only recommendation would be to look at the necessity of this a little closer. All in all a very minimal website. Cheers.

37signals

A bastion of web design minimalism, 37 signals is well known for their 1999 article, “The 37signals manifesto” and later their focus on web based applications such as Basecamp. Renowned for their UI minimalism and easy to use applications 37signals is a true believer in the minimalist paradigm.

37signals

Interface Design
Excellent use of white space, graphics, color and fonts. What they do is clear and their web applications are front and center. All minimalist web constructs are used well. The UI is simple and easy to understand.

Page Code
Their XHTML is not valid and contains 20 errors, however, the pages CSS file is perfect and error free. Most of the XHTML errors seem to be associated with missing HTML entities which is probably the fault of their CMS. There are a few other errors associated with improperly formated br tags.

Overall Efficiency
This is where their design really shines. The page received passing scores for total HTML, total CSS, total scripts, HTML size, and multimedia size. They received warnings for total images, total size, image size, and css size. The only failures were total objects (11) and script size.

Analysis and Recommendations
I have very few recommendations for this site. They only things I might suggest is to fix all of the XHTML errors take a look at the total page objects. I would give this site the mark of internal elegance for minimal design.

Conclusions

As we have learned in this article many websites on the internet exhibit the look and feel of a minimal site, however, a true minimalist design pattern needs to consider page code and efficiency as well as interface design. Page code includes the use of XHTML and CSS and the mark-up must be valid code. This is necessary so you are not delivery code that does not work in every browser. Overall page efficiency is important so the user does not have to wait too long for your page to load in their browser. If, however, you combine all of these parameters you can find yourself on the road to true minimalism in website design.

Your Road Map to Minimalism

So now you’re saying to yourself, “you’ve convinced me Max how do I make a true minimalist website”? Let’s once again break it down into the three necessary steps to accomplish this.

Interface design
Pay careful attention to the use of white space, graphics, color and fonts. If your someone who always starts off in Photoshop or Illustrator to create a web page design consider adding the wireframing process. Wireframing is basically starting off with the entire contents of the web page in greyscale. Navigation, content and any other elements needed to convey the point of your page. Once you have all of these elements in a document you can start to look at the use and necessity of every item. Remember minimalism is the process of stripping down and interface to its most fundamental features. Once this is accomplished you can move on to the use of white space, graphics, color and fonts. Again, keep it simple and keep it clean.

Page Code
As discussed in this article page code should be as minimal as possible. The best way to accomplish this is to use valid XHTML and CSS with a minimal of scripts, images and other external files. If columns are used make sure you are using the lest possible code to accomplish grid. All code should be check for validity using the W3C Markup and CSS validators. Additionally, always check your code on all possible browsers. If you don’t own hardware to check this you can use a service like browsercam.com to see how your page renders in all platforms and browsers.

Overall Efficiency
In short make sure your page is calling no more external files than necessary. This includes HTML files, iframes, images, CSS files, and Multimedia files. You can check your site at a number of free website optimization services such as the Web Page Analyzer. These kinds of sites are not the bottom line, however, they will give you insight into where and how you can improve your overall page efficiency.

Special Note
At the time of this post my site also does not adhere to the standards of minimalism I outlined above. I’ve decided instead of waiting to do a complete re-design to start changing my pages over one-by-one. So far I have the home and permalink page cut over to the new layout. Other pages will come in the next few weeks. I still have some issues with my 700 plus posts and will be working on them in the coming weeks also. Cheers…

No Comments

40 Downloadable Open Source Social Software Applications

2/10/2007

While large scale social sites like Flickr, Digg, Youtube and Myspace have predominated the web-o-sphere over the past few years there still is a need for narrow content verticals in this arena. This list will give you links to 40 open source resources to get you started building your own social bookmarking, networking, filesharing or search application. The following is a list of what I consider the be the best open source social software that I’ve found over the past year.

Please let me know through email or a comment if you know of any other great social bookmarking, network, filesharing or search applications,
and I’ll be glad to post them. Also special thanks to all of the folks who produced all of this great free software. All descriptions below are taken from the developers of the software.

Social Bookmarking
Akarru: Social BookMarking Engine
“Akarru is a social bookmarking engine, is used to build social bookmarkings sites, like http://www.blogmemes.com. Users posts links and promote links to front page using voting system.”

Bookmark4U
“Bookmark4U is an web-server application, which is based on Apache + PHP + MySQL. Bookmark4U is intended to provide a comfortable bookmarking environment for users.”

CommunityNews

“CommunityNews uses social bookmarking and bayesian techinques to provide periodic postings to blogs. Users can vote for or against RSS sources ti increase the chances that the source is used again. Spam filtering (bayesian) is provided by spam bayes.”

ContARTE
“ontARTE is a social bookmarking multiuser engine, is used to build social bookmarkings sites, like http://www.contarte.info.”

GetBoo
“Web 2.0 bookmarking system, both social (with tags) and private (with folders). Import and export your bookmarks from Firefox, IE, Mozilla, Netscape. Admin management section, translations, groups, bookmarklets, Firefox extension, RSS feeds, and more!”

Laicos – Social Bookmarking in ASP.Net
“Laicos or social backwards is a social bookmarking website development application. Use this project to create a Digg style clone. In asp.net and MySQL environment.”

Scuttle: Open source social bookmarking

“Scuttle is a free open source software for creating social bookmarking sites like del.icio.us. You can create a social bookmarking site in minutes using scuttle for your personal or for community use. Scuttle supports most of the del.icio.us API, so you can modify the del.icio.us tools to work with scuttle. Import your existing bookmarks from browsers or from del.icio.us. Scuttle has several AJAX features and it generates an RSS feeds.”

Taggly
“Taggly is an online social bookmarking software written with usability and scalability in mind.”

Unalog
“Open source bookmarking software written in the Python programming. You can get an account and add your own links, and create and join groups. If you get an account, or create a group, either one can be made private, so nobody but you (if a private account) or your fellow group members (if a private group) can see your links.”

Social Filesharing
Asmaan
“Asmaan is a multi-client chat software with built-in social networking and bitorrent filesharing with search, encryption and partial anonymity.”

Bittorrent-2

“Define 2nd generation Bittorrent protocol with social networking, recommendation, tag-based navigation, distributed moderation, and real-time streaming. Remove .torrent, tracker, and website from architecture. Create reference implement. with ABC project.”

Torrent Swapper
“Lightweight python based 4th. generation bittorrent client with social networking, recommendation, tag-based navigation, moderation, and real-time streaming.”

Tribler
“Define 4th generation file sharing system with social networking, recommendation, tag-based navigation, moderation, and real-time streaming. Remove .torrent, tracker, and website from architecture. Create reference implement. with Bittorrent ABC project.”

Social Networking
Affelio
“Affelio is open-source social networking software / architecture. It has following features: (1)distributed architecture (2)Internet-wide scalability, (3)Extensivity with opened Affelio API for developers, and (4)high custamizability with skins/templates.”

AstroSPACES

“AstroSPACES is the world’s first open source social networking solution. Coded from scratch, it is highly efficient and very easy to use.”

blogBOX
“blogBOX is a free and open source social networking system written in PHP. Future versions will be written i Python/Django.”

Elgg
“Elgg is an open source social networking platform developed for LAMP (Linux, Apache, MySQL, PHP) which encompasses weblogging, file storage, RSS aggregation, personal profiles, FOAF functionality and more.”

FlightFeather: Social Networking Platform
“FlightFeather’s goal is “social networking for everyone”. This means that anyone should have a chance to run a popular social networking site — on minimal hardware, and without wasting bandwidth.”

FriendPortal – An Open Source Friendster
“An open-source, Friendster-like social networking portal and news site written in PHP. Post and read news plus browse through contacts like you would in Friendster, Orkut, Tribe.net or Ringo with the knowledge that your personal information is safe.”

Geek Grep
“GeekGrep is a Django based social-networking system designed to get geeks connected with each other. The main feature is a database of geek codes and the ability to search them. See our project web site for a design template of the future site.”

Hiitch: The Social Networking Platform
“Hiitch is a secure and advanced desktop social networking platform. It allows you to build a focused and private network of communities for your family, friends, company and etc. It gives you total control and freedom for your social networking needs.”

iSocial: Social Networking CMS
“Social Networking script written in PHP and MySQL. Designed for every kind of communities – can easily create their own social networking website for free with no ads.”

Jahnet
“The JahNet framework is a Open Source social networking and asset management CMS that is focused on helping digital artists collaborate on a global scale. JahNet allows you to securely share your ideas, images and projects with users around the world.”

Manusya
“The Manusya application is an opensource social networking application being built on mod_perl, Perl Template Toolkit, Postgresql, Apache and Linux. The manusya_web_core packages are required for the front-end.”

Melt: Online Social Networking Software
“Melt is “social software” intended for NGOs to build online social networks, where people can announce events, create groups to organise those events, and add resources (files and web links) to support organisers. Everything can be tagged and linked.”

OpenPNE
“OpenPNE is a Social Networking Service Engine written in PHP. It has many features(friend control,friend invitation,diary,blog feeds,message box,etc).”

Openpublic
“OpenPublic is an interest group social networking and collaboration platform. It provides a solution for mutual interest and special interest groups and membership based organizations wishing to create a knowledge network around their interests.”

OpenVZ

“OpenVZ is an open source social networking system.”

Phpizabi
“PHPizabi is one of the most powerful social networking platforms on the planet.”

PHP-Spacester
“PHP-Spacester is a social networking script such as Myspace and friendster. It is a fork of astrospaces. It will feature the XDNS system (Xotmid Distributed Network System) which is a leaf-hub connection thus allowing anyone to run a leaf and connect to.”

Pihook: Social Networking System
“Open source social networking system.”

Snoss
“Social Networking Open Source Software, an open source social networking framework, written in PHP, Javascript and MySQL with an AJAX UI.”

Tag Me
“Tag Me is a social networking application that allows people to send information about themselves via bluetooth or by mobile web browser you create an online wml website and create a url barcode that holds the link to your online profile.”

The Apple Orchard
“The Apple Orchard is a multi-user, open source social networking web application with the ability for users to upload photos and videos, write a blog, have comments, personalise their page layout and appearance and sort multimedia by tags.”

The Appleseed Project
“Appleseed is (augmented) social networking software, ie Friendster, only distributed. Sites running Appleseed will interoperate, and form the ‘Appleseed Social Network.’ Development is focused on privacy and security, as well as ease of configuration.”

Virtual Learning Commons
“The Virtual Learning Commons software combines a web based content management system, academic tools and social networking to create a website. Can be used by groups to create web based content within an integrated social networking environment.”

WorldSpace
WorldSpace is a user-extensible shared virtual environment, aimed at being a next-generation social networking system.

Yogurt: Social Network
“This is a Social Network module for xoops CMS. You have seen Facebook, Orkut, Myspace , try Yogurt for Xoops!”

Social Search
Facelift
“Facelift is a visualization and analysis software for online social networking services. It displays a given community as a node-link diagram and provides several search / filtering functions as well as cluster analysis features.”

Social Semantic Search and Browsing
“S3B – Social Semantic Search and Browsing – is a middleware that delivers a set of search and browsing components that can be used in J2EE web applications to deliver user-oriented features based on semantic descriptions and social networking.”

1 Comment

Twitterverse Launches

10/04/2007

We’re psyched to launch our first release of Twitterverse tonight after working on the idea for the last couple of weeks and then the last 48 hours straight.

Twitterverse is a mashup and a visualization layer for Obvious‘ hot new product, Twitter, a “sophisticated, device-agnostic, social message routing system that nobody realizes they need until they try it,” as Biz Stone so aptly described.

We’re self-proclaimed Twitter addicts. It’s given us a glimpse into the lives of so many and let us share those moments in time, both mundane and magnificent, that otherwise would have gone unnoticed. Where blogging gave us a similar connection to the thoughts of individuals worldwide, Twitter is capturing these little moments in time – much like a photograph momentarily stops and captures time visually. This power to make the invisible, visible, is something that’s always intrigued us regardless of the medium. These moments show us that our thoughts and actions are interwoven and unique, and that our desire to stay within each other’s attention periphery is what makes us human. The 140 character format of Twitter also lends itself to a specific style of prose or poetry that readily displays one’s personality.

As soon as we got on Twitter, our first thought was, “what’s everybody on Twitter doing?” We wanted to see a visualization that showed text/content overlaps and popular words used by people over any timeframe. In the spirit of Hackers and Painters, we threw together a mashup to show this view into the content.

In its current form, Twitterverse displays popular words based on time and popularity. We’re pulling data every minute from the public timeline RSS feed as it updates. The data is parsed by word match, eliminating certain types of words, and a script generates the cloud based on time frame and popularity. We’ll be adjusting the algorithm frequently as we get more data, as well as limiting out certain words (or display names). For now, words are displayed based on being repeated a certain number of times during the specified timeframe.

Even at this basic level, you can start to get a sense of our collective activity and the general zeitgeist of the day. For example, since we cleared our test data and started re-collecting data off the public timeline on Sunday, April 8 at 5:40pm PST, we started to see a shift from people twittering about “easter” early in the day to a growing number of people twittering about “sopranos” as the night progressed. You can imagine checking in daily to see what topics arise.

We have a full list of features that we’ve considered and that we’ll be adding, both in terms of user functionality (eg. login and navigate in your own Twitter theme) as well as other visualizations of data and word types.

Keep up to date by subscribing to our blog RSS feed.

You can follow us on Twitter here:
http://www.twitter.com/tw1tterverse (for news, features, updates)

And here:
      

We hope you enjoy Twitterverse! Let us know what you think. The name, Twitterverse, is a play on both our focus on the content and verse being created on Twitter, as well as the community and cosmos that makes up the Twitter[uni]verse.

If you’re a developer or a server expert and would like to help out and get involved, please get in touch! We’d like to send out a special thanks to Andrew Weaver and Ver Pangonilo for their great scripts.

Twitterverse is the first project by Ideacodes Labs, a new experimental component of our web consultancy.

Twitter on!
Emily and Max

And if you haven’t already, sign up for Twitter!

No Comments

20 Trusted AJAX, DHTML and JavaScript Tool Sites

6/03/2007

I started posting about AJAX shortly after the term was coined by AdaptivePath’s Jesse James Garrett in 2005, and in the beginning most of the examples, tutorials and references were produced by programers interested in the subject. Today many of the so-called AJAX, DHTML and Javascript sites are splogs, or other types of traffic generating ad platforms. My question is always who can I trust for tested quality scripts and tools? While there are probubly hundreds of trustworthy sites out there these are the ones I go to when I’m looking for ideas and inspiration. This is not the definitive list of trusted sites so if you have a site you trust for AJAX, DHTML and Javascript tool please let myself and the community know of them through the comments section of this post. Thanks to all of the individuals who spent their free time to put up these wonderful resources.

AJAX Tools

AJAX Patterns
AjaxPatterns.org began as a collection of design patterns, which formed the basis of the book, Ajax Design Patterns, and grew into a publicly editable wiki on anything and everything Ajax. All pages (except this homepage) are now editable, no registration required. Feel free to contribute!

FiftyFourEleven
Ajax examples (XMLHttpRequest examples), code snippets and proof of concepts – the links below should help get you started on building your own functions with XMLHttpRequest and Ajax.

Google Web Toolkit – Build AJAX apps in the Java language
Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don’t speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript’s lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.

Kabuki Ajax Toolkit
The Kabuki Ajax Toolkit (AjaxTK) is now available for separate download for object-oriented UI programmers that want to deliver some of that Zimbra Ajax richness within their own web applications.

MiniAjax
A showroom of nice looking simple downloadable DHTML and AJAX scripts.

Moo.ajax
Moo.ajax is a very simple ajax class, to be used with prototype.lite from moo.fx. It’s roughly based on the prototype one, so their usage are very similar.

Nomadic Functions
Why include ten .js files (ala Yahoo UI) to create one simple effect? This may be a drastic example, however, in any case, even when using MooFX’s small 2k library you are including a lot of filler code. What’s the solution? Nomadic Functions. Nomadic functions are small, optimized, and fairly specific. An example may be anything from a simple Drag & Drag function, to a AJAX Star Rating, or a Text Scroller. They are like widgets… but even smaller.

Oracle – Web 2.0 and Ajax Resources
On this website you will find hype free Ajax and Web 2.0 collateral, samples and pointers that you will find useful when building web applications today. In addition to having a strong focus on today’s Web 2.0 technologies and Ajax, this page will also expose component information, best practices and hints and tips about the ADF Faces Rich Client components in JDeveloper 11.

Sun – Ajax Developer Resource Center
Details on AJAX App Development, Free Articles, Tips, Tools & More.

Yahoo! User Interface Library
The Yahoo! User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources.

DHTML Tools

DhtmlGoodies

DhtmlGoodies was launched the 6th of September 2005. The site is developed and maintained by Alf Magne Kalleland from Norway. The purpose of this site is to provide you with a library of well working DHTML and AJAX scripts.

Dthmlsite
At DHTMLSite, you will find a directory of useful AJAX/DHTML scripts and tutorials.

Dynamic Drive
One of the largest and best places on the internet to find DHTML scripts and tutorials.

Javascript Tools

DZone Snippets – Javascript
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Face
FACE was developed to allow standards-compliant web developers to put more life and energy into their pages, without having to learn Javascript or Flash: all it takes is basic math skills and a good understanding of CSS. FACE is built entirely from JavaScript and the CSS that you provide to control the animation.

Javascript Toolbox
This site is intended to be a repository of code and reusable libraries which address common needs that many web developers encounter. The code found here is based on standards but also tries to be backwards-compatible for browsers which don’t support the standards. The information on the site emphasizes standards-compliance for best results, and best practices which should be followed. This is not a site containing snippets of code submitted by anonymous, unreliable coders. All code on the site is written by one person, in a consistent fashion, tested thoroughly, and used in practice by thousands of web sites around the world.

PublicWarehouse – Javascript Database
An amazing list of scripts in almost any category you can think of.

Remedial JavaScript
The JavaScript Programming Language suffers from premature standardization. Some feature omissions can be corrected by adding new functions and basic methods to our standard programming toolkit. That is what we will be doing here. There are functions that I feel should have been in the Standard and required in every implementation. Fortunately, JavaScript is such an expressive language that we can easily fix the omissions locally.

Ten Javascript Tools Everyone Should Have

Javascript frameworks have exploded on the scene over the last few years but they’re no replacement for a good toolbox: those little snippets of code you seem to include in every single project. Here’s my list of 10 essential Javascript tools everyone should have at their fingertips!

Top 10 Custom JavaScript Functions of All Time
If there was ever a universal common.js shared among the entire develosphere, you’d fine these ten (plus one bonus) functions. It would be the swiss army knife no developer would go into production without. They have no doubt been tested tried and true and have proven usefulness and helpfulness to all those who’ve used them. So without further ado, here are what I believe to the top ten greatest custom JavaScript functions in use today.

No Comments

Data Visualization Software, Resources, Tutorials and Source Code

27/02/2007

As an interaction designer I’m always wondering what’s next. Over the last few years we’ve become familiar with web application design, new constructs like recency and popularity, however, in the back-channel of web design there has been an increasing movement towards data visualizations, both large and small. You can currently see this in everything from blog design to large-scale data visualizations like We Feel Fine and digg labs. Designers and programers are coming together in new ways, which in the end result are producing some of the most functional, and creative web interfaces I’ve ever seen.

Consider this list a primer. I’ve spent the last year looking at data visualizations and have compiled a list of resources that will give you a good view of what’s going on in the field. Please use the comments section of this post to let the community know of any useful resources I’ve left out. Also, if there is enough interest in this post I’ll be happy to open up a public wiki on data and content visualization. Please let me know.

Places to see Visualizations
We Feel Fine
Since August 2005, We Feel Fine has been harvesting human feelings from a large number of weblogs. Every few minutes, the system searches the world’s newly posted blog entries for occurrences of the phrases “I feel” and “I am feeling”. When it finds such a phrase, it records the full sentence, up to the period, and identifies the “feeling” expressed in that sentence (e.g. sad, happy, depressed, etc.). Because blogs are structured in largely standard ways, the age, gender, and geographical location of the author can often be extracted and saved along with the sentence, as can the local weather conditions at the time the sentence was written. All of this information is saved.

Peter Mayer – Lives Connected

This is an oral history of individuals experiences during Hurricane Katrina and its aftermath. It is also an experiment in content visualization.

Pedestrian Levitation
The creation of the work is based on the movement of pedestrians on a pedestrian crossing in public space. Some pedestrians walk only on the sidewalk and use the pedestrian crossing for crossing the street, other pedestrians freely make shortcuts on the formally imposed trafic situation. Pedestrian Levitation.net is an artwork in public space that reflects on this movement. It visualises the real movement of people, and adds a virtual movement based on the assumption that the mind of people is not subject to gravity or any other physical limitations.

Collective Subconscious
Collective Subconscious is an installation that imprints a dynamic collage of reverberating thoughts on a public space as people move through it. This project involves leaving behind traces of one’s thoughts in the space that one passes through and collaging it with other people’s thoughts. New messages will be prominently placed while older messages remain in the background and slowly fade out of existence. Words that are repeated over the day by many people will become more prominent and resonates with other instances of the words. As such the display become a visual representation of the state of being for people passing through that area.

3D Live Stats
If you’ve ever wanted to see your website usage on a large screen in a very visual way this is the application for you. From the demo video the visuals look stunning. As the earth turns you see your website visitors pop up on the globe in real-time also showing you a variety of other statistical data. One of the coolest features is the ability to hook up an interactive whiteboard or SMART board and be able to turn the earth with your fingers. Just like in the movie “Minority Report”. I do wish they would produce a web base application so my website visitors could see this information in real-time. Nice product.

Digg BigSpy
One of the first sites that got me interested in real-time data visualizations was digg spy. I had just become hooked on digg when the spy came out, and watching the stories asynchronously roll by was even more intriguing than going to the regular home page. As they say on the digg site, “Digg BigSpy places stories at the top of the screen as they are dugg. As new stories are dugg, older stories move down the list. Bigger stories have more diggs. The projects currently in Digg Labs are the results of collaboration with Digg partner Stamen Design. As the project matures, we’ll be releasing a public API to allow outside developers access to this data”.

Musiclens
There are many search tools for finding new music on the web. Just type in, “artist, genre or title and you’ll find some results. Ho Hum. I’ve been forced to use this same music search paradigm for years. However, there is a new breed of music sites cropping up that will give you new ways to discover new music. “Musiclens enables users to find pieces of music using very vaguely described criteria, such as loudness (perceived volume), mood or purpose. The search or recommendation query can be enhanced or limited by adjusting the ten navigation control sliders”. This site works well and has a great visualization tool.

Gapminder
The Stockholm based website Gapminder provides wonderful interactive content visualizations of important global trends. This non-profit provides information from universities, UN organisations, public agencies and non-governmental organizations to graphically show us the state of what’s happing in our world. The site looks at 16 different human conditions and plots them by year and by region. Conditions include, urban population, life expectancy, military budget, and 13 other world conditions you should know. Currently, this is the most important content visualization site for consciously minded world citizens. Please visit this site to see what’s really going on in the world you life in. Giant hats off to the developers, Ola Rosling, Anna Rosling Ronnlund and Hans Rosling!

Lovelines
Lovelines is one of the most unique content visualization ideas I’ve seen recently. “Using a data collection engine created by the artists for their recent collaboration, We Feel Fine – wefeelfine.org, Lovelines examines thousands of blogs every few minutes to find expressions of love and hate, posted by all manner of people. When it can, Lovelines identifies and saves the age, gender, and geographical location of the person who wrote the post, and then presents that information along with the post.” Lovelines shows it’s data in words, pictures and superlatives. Words and pictures present individual examples of love and hate. Superlatives provides a daily zeitgeist of the most loved and hated things. All in all a very amazing content visualization of how the blogosphere feels about love and hate on a up to the minute basis.

Software to Make Visualizations

Prefuse Visualization Toolkit
A Java-based toolkit for building interactive information visualization applications.

Processing
Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production.

Packet Garden
Packet Garden captures information about how you use the internet and uses this stored information to grow a private world you can later explore. To do this, Packet Garden takes note of all the servers you visit, their geographical location and the kinds of data you access. Uploads make hills and downloads valleys, their location determined by numbers taken from internet address itself. The size of each hill or valley is based on how much data is sent or received. Plants are also grown for each protocol detected by the software; if you visit a website, an ‘HTTP plant’ is grown. If you share some files via eMule, a ‘Peer to Peer plant’ is grown, and so on.

Enterprise Visualizations Solutions
i2

i2 Inc. is the leading worldwide provider of visual investigative analysis software for law enforcement, intelligence, military and Fortune 500 organizations.

ClearForest
ClearForest Corporation is a provider of text-driven business intelligence solutions, supplying the analytical bridge between two previously disconnected worlds of information–unstructured text and enterprise data. Our award-winning solutions offer manufacturers, publishers, federal, chemical & financial service organizations critical links to situational context buried in text for use in Business Intelligence [BI] systems.

Visualization Tutorials
Kyle Scholz Blog
A nice group of visualizations tutorials with example code.

Interactive Visualization of Volumetric Data on Consumer PC Hardware

Interactive visualization is no longer restricted to expensive workstations and dedicated hardware thanks to the fast evolution of consumer graphics. Course participants will learn to leverage new features of graphics hardware to build applications for the interactive visualization of volumetric data. A large body of the course deals with high-quality volume rendering. Beginning with basic texture-based approaches, the algorithms are improved and expanded incrementally, covering illumination, non-polygonal isosurfaces, transfer function design, volumetric effects, and hardware-accelerated high-quality filtering. The final session of the course discusses volumetric flow visualization and aspects of system design. Course participants are provided with documented source code covering details usually omitted in publications.

Websites to Make Visualizations
Swivel
Swivel is a Web site for curious people to explore data. Swivel was founded in December 2005 by Dmitry Dimov and Brian Mulloy. We both studied physics in college, Dmitry in Russia and Brian at the University of Michigan. We both worked together at a big software company. And we both love geeking out about data. Actually, all of us here at Swivel: Tao Ge, Visnu Pitiyanuvath, Seema Sharma, Huned Botee, and Richard Nghiem are a little nerdy about data and curious about all sorts of stuff. Data makes us go.

vuvox
As a workflow and easy to use online service, VUVOX can enable you to create personal, collaborative & emotive expressions using your own digital media – including video, photos, music and text. VUVOX reflects your life. VUVOX founders have created this foundation with your story in mind. Publish your creations to your own website, blog or MySpace page. More About VUVOX

Websites as Graphs

More visually appealing, but with less functionality, is this map by Sala Aharef’s Websites as Graphs. It helps you see the density of a network, with color-coded indications of links, images and more, but is not very navigable.

Touchgraph
The TouchGraph Google Browser reveals the network of connectivity between websites, as reported by Google’s database of related sites.

Many eyes
Many Eyes is a bet on the power of human visual intelligence to find patterns. Our goal is to “democratize” visualization and to enable a new social kind of data analysis. Jump right to our visualizations now, take a tour, or read on for a leisurely explanation of the project.

outside.in
Philosophically, this site is all about letting locals share their knowledge in ways that make sense to them, and so we’ve tried to make the tools here simple ones that will encourage many different ways of using the site.

Data Visualization Resources

Visualizing Email Content
This paper describes the interface and content-parsing algorithms in Themail. It also presents the results from a user study where two main interaction modes with the visualization emerged: exploration of “big picture” trends and themes in email (haystack mode) and more detail-oriented exploration (needle mode). Finally, the paper discusses the limitations of the content parsing approach in Themail and the implications for further research on email content visualization.

Non-Flash Content Visualization
Box Grid
New models for content visualization are popping up all the time now. Box Grid was originally developed as an experimental blog site. The two things I find most fascinating about Box Grid are the fact that it was originally released in 2002, and that does not use flash. The interface is all CSS and javascript based. While this type of content visualization will not work for every project it is place where we can start to imagine new ways to surf a website. The source code is also downloadable!

Search Visualizations
Grokker

Search visualization.

Vivisimo
Search visualization.

Snap
Recently new forms of search visualization have been on the rise. Snap is a great example of a new way to view search results. The applications allows you to view an image of the page your about to visit before you go there. The site is broken into two panes one with the search results and the other with a screenshot of the page. In the screenshot pane you can choose three different sizes of screenshots. You can view the site with either a new window or in the larger left pane. As a visual person I found it to be a fun way to browse search results.

mnemo map
Most of the sites that I’ve featured recently that have to do with content visualization have really been about deep discovery. If you take that notion and apply it to a search engine you have mnemo map. With mnemo you can search Yahoo!, flickr, and YouTube by tags, synonyms and translations for any search term. mnemo, “combines the technologies of social networking, search engines and other data sources to help you formulate search queries and find really relevant information”.

Visualization Blogs, Categories and Posts

Visual Complexity
VisualComplexity.com intends to be a unified resource space for anyone interested in the visualization of complex networks. The project’s main goal is to leverage a critical understanding of different visualization methods, across a series of disciplines, as diverse as Biology, Social Networks or the World Wide Web. I truly hope this space can inspire, motivate and enlighten any person doing research on this field.

Ben Fry
Ben Fry received his doctoral degree from the Aesthetics + Computation Group at the MIT Media Laboratory, where his research focused on combining fields such as Computer Science, Statistics, Graphic Design, and Data Visualization as a means for understanding complex data. After completing his thesis, he spent time developing tools for the visualization of genetic data as a postdoc with Eric Lander at the Eli & Edyth Broad Insitute of MIT & Harvard. For the 2006-2007 school year, Ben is teaching in Pittsburgh as the Nierenberg Chair of Design for the the Carnegie Mellon School of Design.

Cairns
Content visualization sections in her blog

Josh Spear
Content visualization sections in his blog

No Comments