Activate your free membership today | Log-in

Friday, April 18th, 2008

The Twubble with Bob Lee

Category: GWT, Showcase

Bob Lee is a co-worker of mine at Google (He is actually the lead on core Java APIs for Android), and he happened to create a cool little GWT application called Twubble, which he explains:

If you use Twitter, Twubble can look at your existing friends’ friends and recommend new people for you to follow. It’s a stupid simple idea, but I think the execution and fun factor have won people over.

I wrote Twubble in a couple nights of hacking in bed after the kid went to sleep. I used the latest Google Web Toolkit milestone which supports Java 5 (flawlessly from my experience). I was writing Javascript code (server and client side) for years before I ever got into Java, but I have to say, you’d be crazy to write AJAX apps any other way than GWT nowadays.

This is Bob’s first GWT application, so I wanted to sit down and talk to him about why he built the application, his experience with GWT, how he integrated with Twitter, and any other nuggets of information that I could get out of him:

Posted by Dion Almaer at 7:26 am
Comment here

++++-
4.1 rating from 25 votes

Thursday, April 17th, 2008

Mad Mimi: WYSIWYG Email Marketing

Category: Prototype, Showcase

When I hear “email marketing” I can’t help but think spam, but it is a legit tool too, and the latest tool in the pack is Mad Mimi.

Mad Mimi launched this week and consists of “state-of-the-art UI design makes for layouts that are easier to
create -– and easier to read – than emails generated by Constant Contact, Emma and others, who rely on rigid templates and cluttered,
dated layouts.”

Mad Mimi’s “modules-based” interface allows users to add picture and text fields, drag them around and add captions, links and dividers. Embedded constraints gently guide the layout, keeping the “designer” from getting into trouble, but providing more plasticity than templates.

The result: a fluid, flexible user interface, and clean, fashionable “Mimi-generated” promotions that represent a fresh approach to email marketing – at a subscription price that trumps the competition.

When I saw that Tobie Langel was on the team, I had to check it out. When you give it a spin you will be able to add images, and then use them to build out your email. There are some really nice subtle features such as the undo support.

Mad Mimi

Posted by Dion Almaer at 7:29 am
12 Comments

+++--
3 rating from 11 votes

Tuesday, April 15th, 2008

Mosaic Image Builder with Ajax

Category: JavaScript, Showcase

Andy Na has posted about building mosaic pictures using binary ajax techniques.

You can check out the demo in action.

The library allows you to do this via:

JAVASCRIPT:
  1.  
  2. var demo = new MosaicBuilder("60x45" /* image name prefix */, 23 /* number of image files */);
  3. demo.buildMosaic("60x45.bmp" /* image name */);
  4.  

The library uses the BinFileReader.js library to be able to work with binary files with Ajax.

Posted by Dion Almaer at 6:20 am
4 Comments

++++-
4 rating from 23 votes

Monday, April 14th, 2008

Appcelerator on App Engine

Category: Google, JavaScript, Showcase

I had a funny feeling that we would see frameworks and tools starting to support Google App Engine. Appcelerator has added support into their SDK, so you can now create an App Engine project.

They just ported Tejus’s appTunes demo to the App Engine and deployed it at http://apptunes.appspot.com.

The example uses embedded Flex components and sound.

If you take a look at the source, you will see the declarative markup that Appcelerator goes for:

HTML:
  1.  
  2. <body style="visibility:hidden" on="l:app.compiled then visible">
  3.     <div id="header">
  4.         <div class="logo" on="click then script[window.location.href='http://www.appcelerant.com/?p=54']"><h1 style="display: none">App Tunes</h1></div>
  5.         <div class="powered_by" on="click then script[window.location.href='http://www.appcelerator.org/']"><h4 style="display: none">Powered By Appcelerator</h4></div>
  6.     </div>
  7.     <div id="body" style="visibility: hidden" on="l:app.compiled then visible">
  8.  
  9.         <app :as_flexflow id="flow" on="r:get.albums.response then execute or r:select.album.response then select"
  10.                 property="covers" img_height="400" img_width="400" label_position="bottom" click_message="r:select.album.request">
  11.         </app>
  12.    
  13.         <app :graphical_music_player id="player" property="tracks" now_playing_message="l:now_playing"
  14.                 on="r:select.album.response then set_playlist and play or r:init.playlist.response then set_playlist">
  15.         </app>
  16.     </div>
  17.     <app :message name="r:init.playlist.request"></app>
  18.     <app :message name="r:get.albums.request"></app>
  19. </body>
  20.  

I expect to see other integration points for libaries, especially those that have server side back ends.

appTunes

Posted by Dion Almaer at 7:19 am
Comment here

++++-
4.1 rating from 23 votes

Friday, April 4th, 2008

Dojo-Mini and the Feature Explorer

Category: Dojo, Showcase

Above is the breakdown from the Dojo distribution. Peter Higgins was working on an AIR application using the new Dojo AIR integration and wanted to do a better job at stripping down the Dojo build for what he needed.

He ended up with a set of scripts to create a custom build nicely which includes:

  • Nuking all of the cruft you don't want
  • Minifying the script
  • CSS inline optimization

So, you can run something like:

% ./build.sh profile=standard optimize=shrinksafe.keepLines version=1.1.0mini cssOptimize=comments.keepLines cssImportIgnore=../dijit.css action=release

Also, the fine Dojo Campus folks have created a Dojo feature explorer that acts as a showcase for Dojo itself:

Dojo Feature Explorer

Posted by Dion Almaer at 11:27 am
1 Comment

++++-
4.1 rating from 41 votes

Thursday, April 3rd, 2008

qGallery: Prototype gallery application

Category: JavaScript, Prototype, Showcase

qGallery

Sebastian Brink has developed a nice looking gallery application called qGallery

It is really simple to use you just have to upload your images in full resolution together with a simple xml file and include the script and a simple div into the webpage. Everything else is done automatically. The gallery is creating every used image on the fly with the help of some php scripts in the background.

It is developed on top of Prototype and a bunch of other libraries.

Posted by Dion Almaer at 7:15 am
14 Comments

++++-
4.1 rating from 52 votes

Monday, March 31st, 2008

Google Docs now runs offline with Gears

Category: Gears, Showcase

Being able to have your documents stored up in the cloud, but also saved away for the time where you don't have connectivity is important, and today the Google Docs team supports local service via Google Gears.

I have been using this ability for awhile, and I have personally seen a couple of side effects:

  • I boot up the computer at times in which I wouldn't before hand as I know I can get access to this content (as well as Google Reader of course)
  • The experience is a lot faster even in a connected or slightly connected environment as it keeps working even if service is bumpy, say, on a Google Shuttle to work!

Having things continue to just work as you go in and out of service is a great feeling. You trust the system more.

If you are still new to Gears, Ben Lisbakken has published a tutorial that he has as a screencast. Take a peak and get up to speed.

Posted by Dion Almaer at 4:15 pm
6 Comments

++++-
4.8 rating from 19 votes

Sunday, March 30th, 2008

When rich websites go bad…

Category: Fun, Showcase

We love to showcase good uses of Ajax, but sometimes you have to show the anti-patterns too. Hema is a dutch company that recently tried to revamp their online site, but went a little too far.

Hema Online

Posted by Dion Almaer at 11:46 pm
18 Comments

+++--
3.9 rating from 51 votes

Thursday, March 27th, 2008

HotRuby: Run Ruby on a JavaScript interpreter?

Category: JavaScript, Library, Ruby, Showcase

This is from the "wow, really?" department. HotRuby is an implementation of Ruby in JavaScript!

The way it works is that a HotRuby "VM" takes the resulting output from YARV and can grok it via JSON:

RUBY:
    VM::InstructionSequence.compile(cgi['src'], "src", 1, OutputCompileOption).to_a.to_json

Thus, you can embed Ruby by doing something like this:

HTML:
  1.  
  2.         <script type="text/ruby">
  3. class Pi
  4.         def initialize
  5.                 @a = 355.0
  6.         end
  7.        
  8.         def calc
  9.                 b = 113.0
  10.                 return @a / b
  11.         end
  12.        
  13.         PI = 'PI is about'
  14. end
  15.        
  16. puts Pi::PI
  17. puts Pi.new.calc
  18.         </script>
  19.  
  20. <body onload="prettyPrint(); new HotRuby().runFromScriptTag('/compileRuby.cgi')">
  21.  

Since you can run on any JavaScript interpreter or VM, they also support Flash.

For example, check out this Box2D example written in Ruby, running in Flash:

HotRuby Example

Posted by Dion Almaer at 8:01 am
3 Comments

+++--
3.5 rating from 28 votes

Adobe Photoshop Express Launches

Category: Adobe, Flash, Showcase

The launch of Adobe Photoshop Express has been much anticipated. We are seeing the move of a large software company going from desktop to Web for a major application.

As Erick Schonfeld points out "Photoshop Express is by no means just Photoshop ported onto the web."

I am a big fan of Picnik and for awhile was using it quite regularly, so I wanted to see how they compared.

It seems like Photoshop Express is pretty limited and seems very much focused on taking images, putting them online, and doing little touch-ups. One of the things that I am always doing is taking a picture and adding text and shapes to it, and this isn't available, so I kinda don't know when I would use this other than for simple cropping and resizing.

The interface is sleek and Flash-y but somehow doesn't feel as nice as Picnik to me.... I don't know why.

View Source has some fun though:

HTML:
  1.  
  2. <!--
  3. Smart developers always View Source.
  4. This application was built using Adobe Flex, an open source framework
  5. for building rich Internet applications that get delivered via the
  6. Flash Player or to desktops via Adobe AIR.
  7. Learn more about Flex at http://flex.org
  8. // -->
  9.  

What do you think?

Adobe Photoshop Express

Posted by Dion Almaer at 2:14 am
8 Comments

+++--
3.5 rating from 11 votes

Monday, March 24th, 2008

FaviconGrabber and Social Graph

Category: Flash, Showcase

Alistair Rutherford has written a nice looking Flex application that visualizes the Social Graph API:

Flex Graph API

Alistair told us about the application, and some of the fun features:

The initial version was a bit boring looking so I thought it would be nice to pull the 'favicons' for the sites returned in the results. I have detailed how I did this here

Because I could not fetch the icons directly using HTTPService I have used a cgi proxy script written in Python to fetch the target icons and convert them into a Base64 encoded string before returning the data to the Flex application.

The Flex application decodes the Base64 and then passes the data to a modifed version of the IconLoader class from the flexlib library.

The modifications to flexlib took the form of adding in support for 8bpp and 24bpp images.

The graph is implemented using the flexvizgraphlib visualisation component from here:

The application also uses a novel IFrame component which lets you
embed html pages directly into your Flex application.

Posted by Dion Almaer at 10:11 am
1 Comment

+++--
3.5 rating from 8 votes

Friday, March 21st, 2008

An Ajax Ascii Art Generator

Category: Showcase

Ajaxian ASCII

Thomas Hansen of the Gaia Ajax Widgets project took a look a the Asciify project that we posted about recently, and thought that Ajax could do just as good a job!

So, he created an Ajax Ascii Art generator:

So when I saw this Ajaxian Article about an ASCII art generator in Flash I felt compelled to demonstrate it could easily be done in a standardized set of web technologies.

I set out to see if I could find some libraries to use, and I found Sau Fan Lee's codeproject article about his ASCII fying .Net library. It was GPL so it mixed perfectly together with Gaia. So I just brushed it up a little bit, added some Gaia Ajax for falvor, and voila! Have fun!

All the Ajax is of course built with Gaia Ajax Widgets ;)

All the code can be downloaded here and is GPL so you can use it as you wish as long as you comply with the GPL license terms. If you find bugs, cleans up the code or in any other ways improves it (hint; Linux/Mono port would be awesome) I'd be more than willing to host the modified code here and update the running version with credits to you, email it then if so to thomas dot hansen at gaiaware dot net :)

ASCII Art Options

Posted by Dion Almaer at 10:21 am
1 Comment

++++-
4 rating from 36 votes

ShiftEdit: Live blogging tool

Category: Showcase

Jonathan Keebler has updated ShiftEdit to be a nice little live blogging tool.

You can login via Facebook or Windows Live (what no OpenID? :) and then can start new live events. You can imagine going to a conference or a Steve-note and popping this bad boy up and typing away.

ShiftEdit Live Blogging

Posted by Dion Almaer at 6:46 am
1 Comment

++++-
4.2 rating from 5 votes

Friday, March 14th, 2008

Lessons learned from improving Google Code web site performance

Category: Google, Performance, Showcase

We went through Google Code and did a lot of work to get it running faster.

The team used a lot of the principles from Steve Souders book: High Performance Web Sites and ended up with a nice gain:

According to our latency measurement stats, the user-perceived latency on Google Code dropped quite a bit, anywhere between 30% and 70% depending on the page. This is a huge return for relatively small investments we've made along the way, and we hope you'll find these techniques useful for your own web development as well.

The changes were low hanging fruit that most of the sites could also implement:

  • Combined and minimized JavaScript and CSS files used throughout the site
  • Implemented CSS sprites for frequently-used images
  • Implemented lazy loading of Google AJAX APIs loader module (google.load)

Posted by Dion Almaer at 3:58 pm
2 Comments

+++--
3.8 rating from 20 votes

Wednesday, March 12th, 2008

WiseMapping: More Ajax Mind Mapping

Category: SVG, Showcase

WiseMapping is the latest Ajax mind mapping tool developed by Paulo Veiga and three friends.

Wise Mapping is a free web mind mapping tool that leverages the power of Mind Maps mixing new technologies like vectorial languages (SVG and VML) and the power of the whole Web 2.0 concept. The tools uses SVG and VML which allows straightforward vector graphics animation without the need of installing any plug-in.

We asked Paulo about the development experience.

The main challenge was to develop an abstraction layer between SVG and VML (there was no open source framework to do this at the time we started working on the project) in order to support multiple browsers such as IE and Firefox/Opera (some efforts are being made at the moment to support Safari 3.0.4+). Using this layer for the core for the client side, a very intuitive, simple, nice looking, full Drag and Drop enabled graphical mind map editor is provided.

All the UI is powered by Mootools using DWR for the Ajax interaction with a backend made with Java 1.6 with Web Spring for MVC layer and Hibernate.

There have been some reports that VML is broken on IE 8. Hopefully this is a beta 1 bug, as without that legacy support, a bunch of applications (including this one) will not work.

There seem to be many mind mapping tools in Ajax, second only to RSS readers.

WiseMapping

Posted by Dion Almaer at 10:21 am
10 Comments

++++-
4.4 rating from 16 votes

Wednesday, March 5th, 2008

Me.dium shows off new IE 8 features

Category: IE, Showcase

Me.dium, the social browsing folks, have put together some examples using the new Activities and Web Slices features.

You can install their Activity if you have IE 8, or you can take a look below:

As part of Activities,
Me.dium now offers a powerful “Social Discovery” Activity from any page. Me.dium’s “Discover” Activity gives you recommendations, related to a page or selected key words, which are influenced by the real time surfing activity of all Me.dium users. Me.dium also displays a “real-time map” of user activity on the pages related to the selected text, page, or link so users can see how popular those pages are with Me.dium users in real time.

Me.dum activity

This is their XML file.

XML:
  1.  
  2. <openservicedescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">
  3.   <homepageurl>https://me.dium.com</homepageurl>
  4.   <display>
  5.     <name>Discover with Me.dium</name>
  6.     <icon>https://me.dium.com/images/favicon.ico</icon>
  7.   </display>
  8.   <activity category="Discover">
  9.     <activityaction context="document">