(Translated by https://www.hiragana.jp/)
Ajaxian
The Wayback Machine - https://web.archive.org/web/20070703123348/http://www.ajaxian.com/

Tuesday, July 3rd, 2007

Script.aculo.us Effect.Tooltip

Category: JavaScript, Library, Scriptaculous

Nick Stakenburg has written a nice simple tooltip built on Script.aculo.us called Effect.Tooltip.

It is as simple to setup as:

JAVASCRIPT:
  1.  
  2. new Effect.Tooltip(element, content, {title : 'title', className: 'class', offset: {x:0, y:0}});
  3.  

Effect.Tooltip

Posted by Dion Almaer at 6:25 am
Comment here

++++-
4.4 rating from 7 votes

New York on Tap iPhone App

Category: JavaScript, iPhone

Christopher Lukic has created an iPhone application that has been optimized with the network issues in mind.

It's a bar and subway finder for New York City, and I implement a number of techniques to overcome some of the short coming of AT&T's edge network. Virtually the entire site is composed from a single javascript file of just under 25k. By reusing components and keeping server refreshes to an absolute minimum while pulling data in via ajax, I was able to create a pretty responsive component that feels like it belongs on the iPhone (i hope!).

nyontap

Posted by Dion Almaer at 5:35 am
Comment here

+++--
3 rating from 2 votes

Ajaxed: Ajax for classic ASP

Category: JavaScript, Library, .NET

Are you writing classic ASP pages and want to join in the Ajax revolution too? Really? Well, Ajaxed is for you. The framework is simialr to xajax for PHP, in that it allows you to tie in to a named function on th eserver side.

It looks like this:

JAVASCRIPT:
  1.  
  2. <!--#include virtual="/ajaxed/ajaxed.asp"-->
  3. <%
  4. set page = new AjaxedPage
  5. page.draw()
  6.  
  7. sub init() : end sub
  8.  
  9. sub callback(action)
  10.     if action = "add" then page.return(add(page.RF("a"), page.RF("b")))
  11. end sub
  12.  
  13. function add(a, b)
  14.     if not isnumeric(a) then a = 0
  15.     if not isnumeric(b) then b = 0
  16.     add = cint(a) + cint(b)
  17. end function
  18.  
  19. sub main() %>
  20.  
  21.     <script>
  22.         function added(sum) {
  23.             $('c').value = sum;
  24.         }
  25.     </script>
  26.  
  27.     <form id="frm">
  28.         <input type="Text" name="a" id="a"/>+
  29.         <input type="Text" name="b" id="b"/>=
  30.         <input type="Text" name="c" id="c"/>
  31.         <button onclick="ajaxed.callback('add', added)" type="button">calculate</button>
  32.     </form>
  33.    
  34. <% end sub %>
  35.  

Posted by Dion Almaer at 4:40 am
1 Comment

++---
2.3 rating from 3 votes

Monday, July 2nd, 2007

Monthly Ajaxian Roundup for June, 2007: Airing out the Gears

Category: Ajax, Roundup

High Level / Big News

June has been a busy month, and the focus has been around the release of Google Gears, and the Apple iPhone. Both have shaken up the market showing the the future for Ajax is bright and expanding. It is reaching to the desktop, and the phone.

Offline: Gears and AIR

Shortly after Gears was released we saw a flurry of activity that consisted of apps being ported to work offline and libraries being extended to support offline use:

Adobe renamed Apollo to AIR and continues to stay in the news:

Mobile / iPhone

The hype around the iPhone is almost unprecedented. We have tried to keep from joining in, but there has been a lot of interesting work done around Ajax support, and the iPhone is pushing the bounds on Mobile Ajax, just by getting users online. The users will demand more, and vendors will have to step up. We will then have to deliver the applications that they deserve. In the US there isn't the luxury of a top notch network, so we need to deliver it in a smart way too.

Browsers and Standards

With Safari for Windows being announced there has been a lot of talk around browsers. We also got some good news with significant IE memory leaks being fixed.

Ajax Libraries

General JavaScript

GWT

Moo

The FancyUpload with MooTools component is yet another attempt to help with browser based uploads.

Ext

Ext is growing from strength to strength. The team announced Ext 1.1 Beta + Feed Reader 3 Demo, thoughts on 2.0 alpha, a new Ext Accordion Control, and IDE support via Spket IDE: Ext Support. I think July will be an even bigger month.

Prototype

jQuery

Showcases

Some high profile sites and apps have gotten an upgrade such as Apple, CNN, and Google Docs and Spreadsheets Updated.

We also saw useful tools such as an Entity Lookup that helps.

Posted by Dion Almaer at 10:12 am
Comment here

++++-
4.8 rating from 17 votes

jQuery 1.1.3: 800%+ Faster, still 20KB

Category: jQuery, Announcements

The jQuery team has a new release, jQuery 1.1.3. The main features are:

  • Improved speeds, with DOM traversal over 800% faster than in 1.1.2
  • A re-written event system, with more graceful handling of keyboard events
  • A re-written effects system (with an accompanying fx test suite), featuring faster execution and better cross-platform support
  • New selectors: Unicode, Escape, Inequality, and more
  • Animation Improvements: You can run more simultaneous animations without incurring any speed hits
  • $("div").is(":visible, :first")
  • jQuery.browser.version

jQuery UI

Today, we’re also pleased to announce a secret project that we’ve been working on: jQuery UI. This project, being written by Paul Bakaus, is a whole new Drag & Drop library being developed from the ground up with speed and extensibility taken into consideration. Additionally, great care is being taken to have the code be fully documented and tested — allowing many other developers to use and help extend it.

This library will contain full code for Draggables, Droppables, Sortables, Resizables, and a Slider.

NOTE: At the San Francisco Ajax Experience, John Resig will be giving an introductory overview to jQuery followed by an advanced jQuery talk. Glen Lipka will be giving a talk on designing with jQuery.

Posted by Dion Almaer at 7:42 am
15 Comments

+++--
3.1 rating from 60 votes

Writing a desktop application with Ext, AIR, Aptana, and Red Bull

Category: Adobe, Ext, Offline, Gears

Jack Slocum has kicked off his new Ext JS blog with an entry on his experience writing an application with Ext JS, AIR, Aptana, and lots of Red Bull.

As part of the experience Jack has created Ext.air.MainWindow which makes your AIR window look like a Ext.Window.

Jack actually created two versions, the online one actually uses Google Gears, and he abstracted the database access via Ext.data.SqlDB.

Posted by Dion Almaer at 6:56 am
3 Comments

++++-
4.6 rating from 24 votes

iPhone Javascript and spec benchmark

Category: JavaScript, iPhone

John Murch has been running some benchmarks on both his iPhone and MacBook Pro to get a comparison .

For example, JSSpeed:

iPhone

Try/Catch with errors 378
Layer movement 3078
Random number engine (Did not compute)
Math engine 3474

DOM speed Testing… (998/1000)
Array functions 1739
String functions 535
Ajax declaration 1089
Total Duration
10293 ms

Macbook Pro

Try/Catch with errors 5

Layer movement 33
Random number engine 28
Math engine 43
DOM speed 21
Array functions 10
String functions 11
Ajax declaration 8
Total Duration 159 ms

For more benchmarks check out his post.

Posted by Dion Almaer at 6:06 am
4 Comments

++++-
4.5 rating from 8 votes

Sunday, July 1st, 2007

Firebug for iPhone

Category: Mobile, iPhone

It is no surprise that a bunch of news over the weekend has been related to developers spending time with the iPhone. We aren't interested in "i love the iPhone" posts, but there are some interesting ones such as Firebug for iPhone.

Joe Hewitt was sick thinking about debugging with alert() again, and didn't want to use Firebug Lite for screen real estate issues, so he created Firebug for iPhone as a proxy.

When your JavaScript console.log()'s away, it send the info to your computer which is running a nice 30" monitor for you to debug on.

As another option I would like a Firebug Lite on the iPhone itself though. What if I could do a finger gesture flip and have the debug window show up to play with. Pelle has it working via a double tap.

This all goes to show that whatever you think of the iPhone itself, the biggest gift that has been given to us is the focus on mobile Ajax applications.

Posted by Dion Almaer at 11:32 pm
9 Comments

++++-
4.3 rating from 14 votes

Saturday, June 30th, 2007

How to write a Google Gadget

Category: JavaScript, Google, Programming, Widgets

I've written some notes on the Google Gadget API and how to write a gadget, targeted at developers who already know Ajax.

What's a Gadget?

  • The gadget is an XML file sitting on your server. In my case, http://ajaxify.com/run/widgets/google/diggroundup.xml. It will get cached, so effectively it must be a static file.
  • The user adds your gadget to their igoogle portal, or codes it into their own website, by specifying this URL (it may be done indirectly - via the gadget registry. You'll appear in the registry if you've submitted your gadget to igoogle.)
  • The gadget is rendered as an iframe, so you have all the usual security constraints which stop you borking the portal and other gadgets. This also means you can't communicate with other Gadgets other than via than remote calls to a common third-party server (or has anyone tried hooking them together using the iframe-fragment identifier hack? ).

It's based on a Digg Roundup tool, where the gadget show Digg stories according to user preferences such as topic and whether to go for popular or upcoming stories.

Posted by Michael Mahemoff at 8:13 am
2 Comments

++++-
4.4 rating from 16 votes

iPhone Safari Notes and Quirks

Category: iPhone

Now we can get our hands on an iPhone, developers are testing out Safari to see what is actually available. How is the DOM? What events get fired? How does the keyboard send onkey* events? How is scrolling handled? How is the JavaScript support?

Abe Fettig has been jotting down his notes, which include:

  • Poking around the DOM, I don’t see any special objects, with the possible exception of window.offscreenBuffering (set to true).
  • Bookmarklets work, although you have to go through the bookmarks menu to get to them.
  • Safari crashes are handled gracefully - the main screen fades back in, and you can jump right back into Safari. It will then load page you were visiting when it crashed.
  • Drag and drop, and other behaviors based on picking up mousemove events, don’t work. CSS-based element drag and drop doesn’t work either. Dragging one finger around the iPhone’s version of Safari causes the window to scroll, and that’s it. I assume that scroll events do work. I’m sure somebody is already working on a version of drag and drop based on window scrolling.
  • For documents with no width set, the iPhone uses a default width of 980px.

Joe Hewitt isn't too happy with his experiments:

My first task has been exploring the DOM events that you can handle. You do not get "mousedown" when you touch the screen. You get "mousedown" and "mouseup" at the same time when you release your finger. The "mousemove" event does not seem to fire at all. There is no way to handle double-clicking because that is the action for zooming, and calling event.preventDefault() doesn't seem to override that.

If Safari is the current SDK, we need help as developers to build, and debug, applications.

Posted by Dion Almaer at 1:09 am
11 Comments

++++-
4.1 rating from 17 votes

Friday, June 29th, 2007

htsh: http shell

Category: Showcase

Adeel Khan has created another HTTP shell called htsh using PHP on the backend and jQuery for the front end. It currently supports most common commands, like cd, chmod, cp, edit, exit, ls, mkdir, mv, rm, rmdir, touch, unzip, and zip. It is also very easy to add your own commands. It even supports tab-completion.

There is a demo to play with that doesn't have all of the commands enabled for security reasons.

HTSH

Posted by Dion Almaer at 11:31 am
7 Comments

++++-
4.2 rating from 18 votes

Art with Tables

Category: HTML, Fun

As we rant and rave about CSS the true artists are up to amazing things with HTML tables :)

Here is some Friday fun:


Posted by Dion Almaer at 6:59 am
25 Comments

+++--
3.6 rating from 50 votes

A report on Push versus Pull

Category: Comet

Engin Bozdag, Ali Mesbah, and Arie van Deursen of the Delft University of Technology have compiled a technical report on various push versus pull techniques of building Ajax applications based on an example application that they built.

They concluded that:

In this paper we have compared pull and push solutions for achieving web-based real time event notification. The contributions of this paper include the experimental design, a reusable implementation of a sample application in push and pull style as well as a measurement framework, and the experimental results.

Our experiment shows that if we want high data coherence and high network performance, we should choose the push approach. However, push brings some scalability issues; the server application CPU usage is 7 times higher as in pull. According to our results, the server starts to saturate at 350-500 users. For larger number of users, load balancing and server clustering techniques are unavoidable.

Push Pull
http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2007-016.pdf

Posted by Dion Almaer at 12:08 am
9 Comments

++++-
4.1 rating from 18 votes

Thursday, June 28th, 2007

iPhone Development: Aptana and Morfik

Category: iPhone

People are clamoring on the iPhone buzz to get developers using their products for iPhone development.

Two early IDE folk are Morfik and Aptana:

Aptana iPhone Support

We’ve released the first beta of our iPhone Development Plugin for the Aptana IDE. Since ‘Web 2.0’ is the development model of choice for the iPhone, and that is what the Aptana IDE is all about, it made sense that we’d support it in every way we could. For this first beta, here are the features we have (and some that are coming):

  • Preview of your iPhone projects in horizontal or vertical mode
  • iPhone Project contains starter files to get you going easily on your iPhones apps
  • Several example apps that leverage the iPhone form factor
  • Easy import of Ajax libraries into iPhone projects
  • Integrated content assist for iPhone-specific APIs (coming soon)
  • Help and online documentation (coming soon)

Morfik

Morfik has also provided a web development environment for the iPhone including iChess an example application that works on the iPhone.

Scriptor will have iPhone support released by Friday.

iChess

No matter what you think about the "SDK" issues (I am sure you can get some Cocoa going in the future) it is amazing to see how fast these vendors have jumped in, and how fast developers have built applications. And, this is still before the phone is released.

Posted by Dion Almaer at 3:29 pm
12 Comments

+++--
3.9 rating from 23 votes

Cerny.js - Method call interception, Schemas, Type checking and more

Category: JavaScript, Library

Robert Cerny has created a JavaScript library in his own image Cerny.js.

The library has an entire slew of things:

One of the more out there ideas is for putting design by contract into your JavaScript world via something like this:

JAVASCRIPT:
  1.  
  2. var NewMath = {};
  3.  
  4. (function() {
  5.  
  6.     // Shorten some names
  7.     var check = CERNY.check;
  8.     var pre = CERNY.pre;
  9.     var method = CERNY.method;
  10.  
  11.     // The new division
  12.     function divide(a,b) {
  13.       return a / b;
  14.     }
  15.  
  16.     // For contracts to be enforced, it is necessary
  17.     // that a function is subject to interception. Therefore
  18.     // CERNY.method must be used.
  19.     method(NewMath, "divide", divide);
  20.     // The precondition for a division
  21.     pre(divide, function(a,b) {
  22.        check(b !== 0, "b may not be 0");
  23.     });
  24. })();
  25.  

A lot to check out here.

Posted by Dion Almaer at 8:12 am
5 Comments

++---
2.7 rating from 19 votes

PhotoFolder: JSON Image Gallery API

Category: Prototype, Scriptaculous

Ryan Johnson has developed PhotoFolder, a simple library that "scans a given folder for JPEG files with any number of thumbnail sizes per image. If the resized images do not yet exist, it will automatically create the thumbnails for you. The result is that your workflow for adding new images to an application built with PhotoFolder is a simple as putting named JPEG files in a directory."

The demo will show you all you need to know. Ryan is going to be speaking at The Ajax Experience, so come heckle!

PhotoFolder

Posted by Dion Almaer at 6:23 am
7 Comments

+++--
3.9 rating from 14 votes

Next Page »