'Industry' news: Posts

Snook on Adobe AIR

There’s a nice new article by Jonathan Snook on Adobe AIR that is worth the read. I was about to write all about it here but I see that Ajaxian wrote about it yesterday. I’ll, instead, just post what they had to say about it:

It looks like everyone wants to put out some form of Adobe AIR application and Twitter-based apps seem to be all of the rage, possibly because of the ease of integrating with Twitter’s API.

Apparently, Jonathan Snook didn’t want to be left out of the fun and created his new Twitter app appropriately called Snitter:

I built Snitter for a couple reasons. First off, I wanted to take AIR out for a spin and see what it could do. Secondly, I find using the Twitter web site frustrating at times because it doesn’t offer up features that I’ve always felt could be easily added. So, I’ve gone ahead and built an app with the features that I’ve always wanted.

Jonathan definitely has a flare for style and he’s brought that over to a really nice looking application:

You’ll need the following to run the app:

Yahoo! Announces YSlow, Firebug based performance tool

This. Is. Brilliant.via ajaxian:

Steve Souders, performance architect at Yahoo!, announced today the public release of YSlow.

Stoyan Stefanov reviewed it briefly and gave tips for custom scoring at his blog.

What’s YSlow?

It’s an extension to Firebug (yes, correct, Firebug, not Firefox) that helps with performance optimization efforts. It scores your page on the scale A to F, based on compliance with Yahoo’s performance rules. It’s a tool that has been used internally at Yahoo and is now released to the world.

Steve is going to be speaking about YSlow at the Ajax Experience that just kicked off. I am looking forward to meeting him and check out the tool. We should give it a run on your sites and post how you did (don’t run it on Ajaxian ;).

MSFT Fixes Memory Leaks in IE6

Hell must have frozen over or something. I don’t know if this just fixes certain kinds of leaks or all of them; explicit circular references in your code should still be avoided. Xopus, via Snook:

At Xopus we develop a pretty big (~50k lines) JavaScript application to edit XML documents through a WYSIWYG interface. With such a large application there’s a large risk of memory leaks. Indeed, this is what we’ve been experiencing in Internet Explorer 6. We’ve also seen a decrease in performance as memory usage increased. These leaks, however, do not occur in Internet Explorer 7. And, as of just 10 days ago, they no longer occur in IE6 on Windows XP.

On June 12th, Microsoft released security update MS07-033. Included in this update is the following:

General distribution release (GDR) fixes
A memory leak occurs in Internet Explorer 6 when you view a Web page that uses JScript scripting on a Windows XP-based computer (KB929874)

And indeed, IE 6 on Windows XP no longer leaks memory, nor performance. This is great news for all JavaScript hackers, there’s no need to worry about memory leaks anymore!

The one cave-at is that this fix is only available for Windows XP. For Xopus this means we’ll still have to fix the leaks, since some of our clients are still running Windows 2000. Users who haven’t installed the latest security updates will also experience memory leaks in IE 6. In the end though, Microsoft fixed the memory leak issues in Internet Explorer, and I’m thankful for that.

Recent news round-up

Over on the Mootools forum digitarald (a contributor to Mootools) has posted date.js, a date parsing script that converts just about any date a user could imagine entering into a field into an actual date. I'm probably going to add this to our /mootools.extensions/Native folder and integrate it in with our own date.picker.js.

JavaScript:
var date1 = date2 = new Date() = "Fri Jun 08 2007 14:42:57 GMT+0200"
date1.increment('day', 2) = " Sun Jun 10 2007 14:42:57 GMT+0200 "
date2.decrement('hour', 12) = " Fri Jun 08 2007 02:42:57 GMT+0200 "
date1.diff(date2, 'hour') = " 60 "
date1.getOrdinal() = " st "
date1.getDayOfYear() = " 161 "
date1.lastDayofMonth() = " 30 "
date1.getWeek() = " 24 "
date1.getTimezone() = " GMT "
date1.getGMTOffset() = " +0200 "
date1.format('db') = " 2007-06-10 14:42:57 "
date1.format('iso8601') = " 2007-06-10T14:42:57+0200 "
date1.format('rfc822') = " Sun, 10 Jun 2007 14:42:57 GMT "
date1.format('short') = " 10 Jun 14:42 "
date1.format('long') = " June 10, 2007 14:42 "
date1.format various strftime = " a = Sun ; A = Sunday ; b = Jun ; B = June ; c = Sun Jun 10 2007 14:42:57 GMT+0200 ; d = 10 ; H = 14 ; I = 02 ; j = 161 ; m = 06 ; M = 42 ; p = PM ; S = 57 ; U = 24 ; w = 0 ; x = 06/10/2007 ; X = 02:42PM ; y = 07 ; Y = 2007 ; T = +0200 ; Z = GMT "
Date.daysInMonth(2, 2006) = " 31 "
Date.isLeapYear(2006) = " false "
Date.parse('10/12/1982') = " Tue Oct 12 1982 14:42:57 GMT+0200 "
Date.parse('2007-06-08 16:34:52') = " Fri Jun 08 2007 18:34:52 GMT+0200 "
Date.parse('2007-06-08T16:34:52+0200') = " Fri Jun 08 2007 16:34:52 GMT+0200 "
Date.parse('today') = " Fri Jun 08 2007 14:42:57 GMT+0200 "
Date.parse('tomorrow') = " Sat Jun 09 2007 14:42:57 GMT+0200 "
Date.parse('yesterday') = " Thu Jun 07 2007 14:42:57 GMT+0200 "
Date.parse('next monday') = " Mon Jun 11 2007 14:42:57 GMT+0200 "
Date.parse('1st') = " Fri Jun 01 2007 14:42:57 GMT+0200 "
Date.parse('14th October') = " Sun Oct 14 2007 14:42:57 GMT+0200 "
Date.parse('24th May, 2007') = " Thu May 24 2007 14:42:57 GMT+0200 "
Date.parse('May 3rd 2006') = " Wed May 03 2006 14:42:57 GMT+0200 "

drag to resize


History Manager

Here's another digitarald script that I'm eyeing with a bit of interest, a state manager for ajax environments. From his site:

“Ajax History”, “Back-Button”, “Ajax Bookmarks”, call it however you like. This is an unobtrusive MooTools plugin to allow history handling for multiple modules, try it out. It can handle back/forward history actions and bookmarks with the location hash.

Features

  • Allow users to bookmark your ajaxified application in the current state
  • Forward/Backward history browsing for your Accordion and every other
  • Save states of One-Page-Applications over sessions
  • Change easily default options and customize the behaviour with Events

New Mootools Blog

The Mootools site now has a nifty blog and it's got some great stuff on it already. First up is a quick set of reference links to everything you need to learn javascript. Many of these things are stuff I've linked to in my side-bar or in various posts, but it's a nice collection for sure.

SlickSpeed

You might have seen this show up on Ajaxian, but the Mootools gang released Slickspeed, a set of browser tests for dom selector comparisons for various browsers:

IE Debugger: My DebugBar

Here's a new debugger for IE that looks promising. I haven't fooled around with it yet but if anyone has or does, post a comment with your thoughts!

Google Gears

If you've followed ajaxian in the last two weeks no doubt you've seen this already, but Google launched Google Gears a week or two ago. In their words:

Google Gears (BETA) is an open source browser extension that enables web applications to provide offline functionality using the following JavaScript APIs:

  • Store and serve application resources locally
  • Store data locally in a fully-searchable relational database
  • Run asynchronous Javascript to improve application responsiveness

    Sounds promising. Here's a nice little write up from Uriel Katz.

    Fx.Morph

    Was glancing through the demos at http://demos.mootools.net and stumbled on to Fx.Morph, a short little Fx class that transitions an element's properties from one css class to another. I wrote something like this a few months ago but ultimately decided I didn't really need it but now I'm giving it a second thought.

    AOL’s beta site looks like Yahoo

    A little Friday fun for you all. Via Boingboing:

    AOL's beta site looks like Yahoo

    Picture 10-2Picture 9-7
    (Click on thumbnails for enlargement)

    AOL's new beta site looks just a teensy bit like Yahoo's home page, wouldn't you say? (Thanks, Patrick!)

    posted by Mark Frauenfelder at 03:16:17 PM permalink | blogs' comments

    Upcoming changes to Mootools: version 1.0 to 1.1 changelog

    Valerio posted over on the Mootools forums today a list of changes in the upcoming 1.1 version of mootools. We've been hard at work on a lot of this stuff and I'm excited to see it come out. After this version, we anticipate working less on the core framework and more on plugins and widgets.

    ------------------------------------------------------------------------------------------------------------
    #Additions
    ------------------------------------------------------------------------------------------------------------

    • CUSTOM EVENTS!
    • $each also iterates objects
    • added Element::getStyles
    • added Element::hasChild
    • added Array::include
    • added Array::merge
    • added $merge, to merge objects
    • Dom.js uses XPATH in supporting browsers
    • the use of +'px' in setStyle is not required anymore.
    • added XHR::cancel

    ------------------------------------------------------------------------------------------------------------
    #Changes
    ------------------------------------------------------------------------------------------------------------

    • Object.extend is now $extend, still compatible
    • Object.native is now $native, still compatible
    • Element has been splitted in Element.Events, Element.Form, Element.Dimensions

    ------------------------------------------------------------------------------------------------------------
    #Elements Creation
    ------------------------------------------------------------------------------------------------------------

    • elements creation is easier: new Element accepts second param
    • elements creation for elements with name/type is easier, just use second argument.
    • setProperty for name/type are is supported anymore.

    ------------------------------------------------------------------------------------------------------------
    #Notable Fixes
    ------------------------------------------------------------------------------------------------------------

    • dom logic is highly optimized and its blazing fast
    • better sortables, no more flickering, removed Drag dependency
    • Fx.Slide now accepts borders and margins. Positioning is now possible.
    • Element::toQueryString in ajax now works as intended with all Form elements, including multiple selects.
    • Element::setStyle supports float
    • Element::setProperty and Element::getProperty now supports "for"

    ------------------------------------------------------------------------------------------------------------
    #Obvious Things
    ------------------------------------------------------------------------------------------------------------

    • code cleanup and optimization
    • bugs and incompatbilities fixed
    • mootools is faster, FASTER, FAAASTEEERRR

    ------------------------------------------------------------------------------------------------------------
    #TODO
    ------------------------------------------------------------------------------------------------------------

    • some bugs left
    • testing
    • css3 selectors (?)
    • ???

    Yahoo! Pipes: Ajax Mashup Builder

    Ajaxian has a post on Yahoo!'s latest and greatest: pipes. I haven't had the time (and am not likely to get the time) . I'm somewhat blown away. It's stuff like this that makes me wonder what the interweb is gonna be like in a few years. I'm beginning to think that I am going to need a Gibson-esque Johnny Mnemonic port or something.

    Crafty. Very crafty.

    Yahoo! has a new service called Pipes that aims to make it easy to build mashups:

    Pipes is a hosted service that lets you remix feeds and create new data mashups in a visual programming environment. The name of the service pays tribute to Unix pipes, which let programmers do astonishingly clever things by making it easy to chain simple utilities together on the command line.

    The UI is a rich Ajax application using YUI of course. It is the kind of UI that feels like Flash, but then you do a view source and you see:

    HTML:
    <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/yahoo-dom-event_2.1.2.js"></script>
    <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/connection_2.1.2.js"></script>
    <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/animation_2.1.2.js"></script>
    <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dragdrop_2.1.2.js"></script>
    <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/widgets/2/logger/logger_2.1.2.js"></script>
    <script type="text/javascript" src="/js/maxwell.js"></script>

    drag to resize


    pipes

    Firebug 1.0 presentation

    Today on Ajaxian there's a post about Joe Hewitt's recent presentation where he demonstrates the nice new features in Firebug 1.0 (note that the ajaxian post actually includes a video of Joe presenting Firebug from last may, which I think is an error as the post refers to this most recent presentation). If you haven't had time to fool around with Firebug, or feel like you're not getting everything out of it that you can, you really should watch this presentation.

    Fancy new site design

    When I first launched clientside internally at cnet.com, I used the default wordpress "Kubrick" template because I didn't care what it looked like.

    Then I launched the blog so that others outside our network could see it and felt compelled to make it look a little more unique, but I was in a mad rush to get the content out and continue my other work. So I threw together your generic blog layout template with some colors and a logo in an hour and up it went. I was never happy with it, but it would suffice.

    Well, after a few months of staring at it I finally caved and redesigned it. I hope it looks good in your browser and that you find it easier to read and what not.

    Why I re-post things from Ajaxian and others

    There's a comment on a recent post I made of Ajaxian's predictions for 07 from a nice fellow by the name of Steve that reads as follows:

    Aaron, I would imagine that the majority of people who read your blog also read Ajaxian. I can understand aggregating interesting posts from across the web and adding one’s own commentary, etc., but seriously, your blog is little more than a mirror of a random selection of Ajaxian posts. On the other hand, I’m actually interested in the occasional stuff you write that isn’t ripped wholesale from Ajaxian.

    | Read the rest »

    Categories

    Archives

    Links and whatnot