<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>a little bit of zeank</title>
	<atom:link href="http://blog.jwchat.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jwchat.org</link>
	<description>coding and stuff</description>
	<lastBuildDate>Wed, 30 Mar 2011 07:07:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>bosh speed tests</title>
		<link>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/</link>
		<comments>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 16:07:10 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=140</guid>
		<description><![CDATA[Now with the newly announced node-xmpp-bosh (NXB) my first tests left me with the impression that this thing is pretty speedy to what I am used to. So I decided to do some quick benchmarks on different implementations of BOSH. I did these tests on my desktop (some intel core 2 duo with 2,4 GHz [...]]]></description>
			<content:encoded><![CDATA[<p>Now with the newly announced <a href="http://code.google.com/p/node-xmpp-bosh/">node-xmpp-bosh</a> (NXB) my first tests left me with the impression that this thing is pretty speedy to what I am used to. So I decided to do some quick benchmarks on different implementations of BOSH. I did these tests on my desktop (some intel core 2 duo with 2,4 GHz and 4GB of RAM).</p>
<p>Login-Times (in ms):</p>
<table border="1" cellspacing="0">
<tr>
<td></td>
<th>Native</th>
<th>NXB</th>
</tr>
<tr>
<th>Ejabberd 2.1.6</th>
<td>593 (process_delay: 100ms)<br />417 (process_delay 10ms)</td>
<td>204</td>
</tr>
<tr>
<th>Tigase 4.3.1</th>
<td>145</td>
<td>222</td>
</tr>
<tr>
<th>Prosody 0.7.0</th>
<td>111</td>
<td>170</td>
</tr>
</table>
<p>So what we can see here is that NXB might be a feasible improvement over ejabberd&#8217;s native BOSH interface while tigase and prosody do fine in both cases.<br />
Would be nice of course to also test with some decent load and see how the configurations behave with different loads put on them. But that&#8217;s out of scope of my quick tests for now, sorry.</p>
<p><b>Update:</b> Ejabberd honors a &#8216;process_delay&#8217; parameter which makes the BOSH CM wait for this amount of 100ms for incoming packets from the server in order to reduce the overall number of roundtrips between client and BOSH CM. This results in an overall improved client experience. Although it might be a bit slower at login times.<br />
By default this value is set to 100ms so I did my tests again with &#8216;process_delay&#8217; set to 10ms. A value of 1ms or 0ms made ejabberd fail to work properly unfortunately so I can&#8217;t provide any further numbers. But as the overall number of request roundtrips for a login is 4, the maximum number of time saved for the login would be 40ms in best case when only dealing with the &#8216;process_delay&#8217; parameter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2011/03/29/bosh-speed-tests/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>JSJaC v1.3.4 bugfix release</title>
		<link>http://blog.jwchat.org/2011/03/09/jsjac-v134-bugfix-release/</link>
		<comments>http://blog.jwchat.org/2011/03/09/jsjac-v134-bugfix-release/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 10:36:15 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[JSJaC]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=138</guid>
		<description><![CDATA[Unfortunately the last version of JSJaC (v1.3.3) released just some days ago contained some serious bugs regarding handling of xmlns attributes and namespaces correctly. It was introduced by a fix for IE9 which caused other browsers to fail. So if you&#8217;re using JSJaC v1.3.3 and your app deals with accessing elements identified by namespaces you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>Unfortunately the last version of <strong><a href="http://blog.jwchat.org/jsjac/">JSJaC</a></strong> (v1.3.3) <a href="http://blog.jwchat.org/2011/03/05/jsjac-133-grab-it-while-its-hot/">released just some days ago</a> contained <a href="https://github.com/sstrigler/jsjac/issues/closed#issue/5">some serious bugs</a> regarding handling of xmlns attributes and namespaces correctly. It was introduced by a fix for IE9 which caused other browsers to fail. So if you&#8217;re using JSJaC v1.3.3 and your app deals with accessing elements identified by namespaces you&#8217;re strongly encouraged to update in order to avoid heavy brain damage.</p>
<ul>
<li>Tar: <a href="http://blog.jwchat.org/download/jsjac-1.3.4.tar.gz">JSJaC v1.3.4</a></li>
<li>ZIP: <a href="http://blog.jwchat.org/download/jsjac-1.3.4.zip">JSJaC v1.3.4</a></li>
<li>For older versions please see the <a href="http://blog.jwchat.org/download/">Download Archive</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2011/03/09/jsjac-v134-bugfix-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSJaC 1.3.3: Grab it while it&#8217;s hot!</title>
		<link>http://blog.jwchat.org/2011/03/05/jsjac-133-grab-it-while-its-hot/</link>
		<comments>http://blog.jwchat.org/2011/03/05/jsjac-133-grab-it-while-its-hot/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 13:01:58 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[JSJaC]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=137</guid>
		<description><![CDATA[Thought it&#8217;s about time to release all the little fixes and patches I&#8217;ve collected over the years for JSJaC and here it is: JSJaC 1.3.3! Along with innumerable bug fixes it contains fixes for IE 9 and two new functions which allow to implement your own data store when suspending or resuming a BOSH session. [...]]]></description>
			<content:encoded><![CDATA[<p>Thought it&#8217;s about time to release all the little fixes and patches I&#8217;ve collected over the years for <a href="/jsjac/">JSJaC</a> and here it is: <a href="/download/jsjac-1.3.3.tar.gz">JSJaC 1.3.3</a>! Along with innumerable bug fixes it contains fixes for IE 9 and two new functions which allow to implement your own data store when suspending or resuming a BOSH session. Have a look at <a href="/jsjac-1.3.3/doc/">the docs</a> if you&#8217;re curious. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2011/03/05/jsjac-133-grab-it-while-its-hot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jwchat.org now with like button</title>
		<link>http://blog.jwchat.org/2011/03/04/jwchatorg-now-with-like-button/</link>
		<comments>http://blog.jwchat.org/2011/03/04/jwchatorg-now-with-like-button/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 09:31:09 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[jwchat.org]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=136</guid>
		<description><![CDATA[Better late than never: jwchat.org new features a facebook like button plus a flattr button. So if you like the service here&#8217;s your chance to let us know!]]></description>
			<content:encoded><![CDATA[<p>Better late than never: <a href="http://jwchat.org">jwchat.org</a> new features a facebook like button plus a flattr button. So if you like the service here&#8217;s your chance to let us know! <img src='http://blog.jwchat.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2011/03/04/jwchatorg-now-with-like-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ezmlm on debian with dotdeb broken</title>
		<link>http://blog.jwchat.org/2010/04/13/ezmlm-on-debian-with-dotdeb-broken/</link>
		<comments>http://blog.jwchat.org/2010/04/13/ezmlm-on-debian-with-dotdeb-broken/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 13:04:18 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=134</guid>
		<description><![CDATA[Today I discovered my ezmlm-idx hasn&#8217;t been working anymore. Unfortunately this hasn&#8217;t been noticed for quite some time. I&#8217;m using the precompiled qmail stack from dotdeb.org. What I found in my logs was ezmlm-send:_fatal:_temporary_qmail-queue_error:_unable_to_exec_qq_(#4.3.0)/ezmlm-gate:_fatal:_temporary_error_from_child/ Now that got me real headaches as there aren&#8217;t many useful results on google for this topic. The more I was [...]]]></description>
			<content:encoded><![CDATA[<p>Today I discovered my ezmlm-idx hasn&#8217;t been working anymore. Unfortunately this hasn&#8217;t been noticed for quite some time. I&#8217;m using the precompiled qmail stack from dotdeb.org. What I found in my logs was</p>
<pre>ezmlm-send:_fatal:_temporary_qmail-queue_error:_unable_to_exec_qq_(#4.3.0)/ezmlm-gate:_fatal:_temporary_error_from_child/</pre>
<div>Now that got me real headaches as there aren&#8217;t many useful results on google for this topic. The more I was surprised when I found out what caused the problem (thanks to &#8216;strace -f&#8217;): ezmlm was expecting qmail-queue to be found at /var/lib/qmail/bin. While it&#8217;s actually at /usr/sbin/qmail-queue. Adding a symlink to it fixed the issue for me.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2010/04/13/ezmlm-on-debian-with-dotdeb-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gateways blocked</title>
		<link>http://blog.jwchat.org/2009/12/18/gateways-blocked/</link>
		<comments>http://blog.jwchat.org/2009/12/18/gateways-blocked/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 08:59:45 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=124</guid>
		<description><![CDATA[Short note: due to abuse I had to block access to all gateways (transports) of jwchat.org for external usage. I&#8217;m sorry about this but currently there&#8217;s no other way to maintain regular services as is.]]></description>
			<content:encoded><![CDATA[<p>Short note: due to abuse I had to block access to all gateways (transports) of jwchat.org for external usage. I&#8217;m sorry about this but currently there&#8217;s no other way to maintain regular services as is.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/12/18/gateways-blocked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Plugin to monitor BOSH services</title>
		<link>http://blog.jwchat.org/2009/06/17/nagios-plugin-to-monitor-bosh-services/</link>
		<comments>http://blog.jwchat.org/2009/06/17/nagios-plugin-to-monitor-bosh-services/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 15:29:18 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[scriplets]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=123</guid>
		<description><![CDATA[Enjoy! #!/usr/bin/perl -w # # check_bosh plugin for nagios # # usage: # check_bosh -U url -H host # # Check if bosh service running at specified address # # initial version: 3 May 2000 by Truongchinh Nguyen and Karl DeBisschop # # current status: $Revision: 1196 $ # # Copyright Notice: GPL # $Id: [...]]]></description>
			<content:encoded><![CDATA[<p>Enjoy!</p>
<p><code><br />
#!/usr/bin/perl -w<br />
#<br />
# check_bosh plugin for nagios<br />
#<br />
# usage:<br />
#    check_bosh -U url -H host<br />
#<br />
# Check if bosh service running at specified address<br />
#<br />
# initial version: 3 May 2000 by Truongchinh Nguyen and Karl DeBisschop<br />
#<br />
# current status: $Revision: 1196 $<br />
#<br />
# Copyright Notice: GPL<br />
# $Id: check_bosh.pl 1196 2009-06-17 15:20:46Z s.strigler $<br />
#</p>
<p>use strict;<br />
use lib "/usr/lib/nagios/plugins";<br />
use utils qw($TIMEOUT %ERRORS &#038;print_revision &#038;support);<br />
use vars qw($PROGNAME);<br />
my ($verbose,$host,$response,$state);<br />
my ($opt_V,$opt_H,$opt_h,$opt_U);<br />
$opt_V = $opt_h, $opt_h = $opt_U = '';<br />
$state = 'UNKNOWN';</p>
<p>$PROGNAME = "check_bosh";<br />
sub print_help ();<br />
sub print_usage ();</p>
<p>$ENV{'BASH_ENV'}='';<br />
$ENV{'ENV'}='';<br />
$ENV{'PATH'}='';<br />
$ENV{'LC_ALL'}='C';</p>
<p>use Getopt::Long;<br />
Getopt::Long::Configure('bundling');<br />
GetOptions(<br />
	"V"   => \$opt_V,   "version"    => \$opt_V,<br />
	"h"   => \$opt_h,   "help"       => \$opt_h,<br />
 	"U=s" => \$opt_U,   "url=s"      => \$opt_U,<br />
    "H=s" => \$opt_H,   "host=s"     => \$opt_H,<br />
 	"v+"  => \$verbose, "verbose+"   => \$verbose<br />
);</p>
<p># -h means display verbose help screen<br />
if ($opt_h) { print_help(); exit $ERRORS{'OK'}; }</p>
<p># -V means display version number<br />
if ($opt_V) {<br />
	print_revision($PROGNAME,'$Revision: 1196 $ ');<br />
	exit $ERRORS{'OK'};<br />
}</p>
<p># -U means URL<br />
unless ($opt_U) { print_usage(); exit $ERRORS{'UNKNOWN'}; }</p>
<p># -H means host name<br />
unless ($opt_H) { print_usage(); exit $ERRORS{'UNKNOWN'}; }</p>
<p>if (! utils::is_hostname($opt_H)){<br />
	print "$opt_H is not a valid host name\n";<br />
	print_usage();<br />
	exit $ERRORS{"UNKNOWN"};<br />
}</p>
<p># Just in case of problems, let's not hang Nagios<br />
$SIG{'ALRM'} = sub {<br />
        print ("ERROR: No response from RPC server (alarm)\n");<br />
        exit $ERRORS{"UNKNOWN"};<br />
};<br />
alarm($TIMEOUT);</p>
<p>$state = &#038;check_bosh($opt_U, $opt_H);</p>
<p>if ($state eq 'OK') {<br />
	print "$state: BOSH service at $opt_U up and running\n";<br />
}elsif ($state eq 'WARNING') {<br />
    print "$state: BOSH service not working correctly. Bad hostname given?\n";<br />
}else{<br />
    print "$state: BOSH service at $opt_U is not running\n";<br />
}<br />
exit $ERRORS{$state};</p>
<p>sub check_bosh() {<br />
    my $url = shift;<br />
    my $host = shift;</p>
<p>    use LWP::UserAgent;<br />
    my $ua = LWP::UserAgent->new;</p>
<p>    my $req = HTTP::Request->new(POST => $url);<br />
    $req->content_type('text/xml; charset=utf-8');<br />
    my $payload =  "<body content='text/xml; charset=utf-8' hold='1' xmlns='http://jabber.org/protocol/httpbind' to='$host' wait='300' rid='205152' ver='1.6' xmlns:xmpp='urn:xmpp:xbosh' xmpp:version='1.0'/>";<br />
    print "SEND: ", $payload, "\n" if($verbose);</p>
<p>    $req->content($payload);</p>
<p>    my $res = $ua->request($req);</p>
<p>    if ($res->is_success) {<br />
        print "RECV: ", $res->content, "\n" if ($verbose);</p>
<p>        if ($res->content =~ /type='terminate'/) {<br />
            return 'WARNING';<br />
        } elsif ($res->content =~ /sid='([^']+)'/) {<br />
            $req = HTTP::Request->new(POST => $url);<br />
            $req->content_type('text/xml; charset=utf-8');</p>
<p>            $payload = "<body content='text/xml; charset=utf-8' xmlns='http://jabber.org/protocol/httpbind' sid='$1' rid='205153' type='terminate'/>";<br />
            print "SEND: ", $payload, "\n" if($verbose);<br />
            $req->content($payload);</p>
<p>            $res = $ua->request($req);</p>
<p>            if ($res->is_success) {<br />
                print "RECV: ", $res->content, "\n" if ($verbose);<br />
            }<br />
            else {<br />
                print $res->status_line, "\n" if ($verbose);<br />
                return 'CRITICAL';<br />
            }<br />
        }<br />
    }<br />
    else {<br />
        print $res->status_line, "\n" if ($verbose);<br />
        return 'CRITICAL';<br />
    }</p>
<p>    return 'OK';<br />
}</p>
<p>sub print_help() {<br />
	print_revision($PROGNAME,'$Revision: 1196 $ ');<br />
	print "Copyright (c) 2009 Stefan Strigler\n";<br />
    print "adopted from check_rpc by Karl DeBisschop/Truongchinh Nguyen/Subhendu Ghosh\n";<br />
	print "\n";<br />
	print "Check if bosh service is up and running\n";<br />
	print "\n";<br />
	print_usage();<br />
	print "\n";<br />
	print "  <url>           URL of bosh service\n";<br />
    print "  <host>          XMPP host name\n";<br />
	print "  [-v]            Verbose \n";<br />
	print "  [-v -v]         Verbose - will print supported programs and numbers \n";<br />
	print "\n";<br />
	support();<br />
}</p>
<p>sub print_usage () {<br />
	print "Usage: \n";<br />
	print " $PROGNAME -U url -H host [-v]\n";<br />
	print " $PROGNAME [-h | --help]\n";<br />
	print " $PROGNAME [-V | --version]\n";<br />
}<br />
</host></url></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/06/17/nagios-plugin-to-monitor-bosh-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox 3.0.6 not able to read Cookie (breaks MUCkl/JWChat with HTTP Polling)</title>
		<link>http://blog.jwchat.org/2009/02/10/firefox-306-not-able-to-read-cookie-breaks-muckljwchat-with-http-polling/</link>
		<comments>http://blog.jwchat.org/2009/02/10/firefox-306-not-able-to-read-cookie-breaks-muckljwchat-with-http-polling/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 10:38:27 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[JSJaC]]></category>
		<category><![CDATA[JWChat]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[MUCkl]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=122</guid>
		<description><![CDATA[Firefox as of version 3.0.6 seems to not allow reading cookies from HTTP headers when doing AJAX requests. As a consequence JSJaC&#8217;s HTTP Polling backend can&#8217;t work correctly anymore and breaks usage of MUCkl and JWChat with this version of Firefox. If your site is affected please consider switching to HTTP Binding (aka BOSH) which [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.jwchat.org/jsjac/ticket/54">Firefox as of version 3.0.6 seems to not allow reading cookies from HTTP headers</a> when doing AJAX requests. As a consequence JSJaC&#8217;s HTTP Polling backend can&#8217;t work correctly anymore and breaks usage of MUCkl and JWChat with this version of Firefox. If your site is affected please consider switching to HTTP Binding (aka BOSH) which should fix this issue.<br />
HTTP Binding has been designed specifically to address issues with constrained clients not capable of reading HTTP header cookies.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/02/10/firefox-306-not-able-to-read-cookie-breaks-muckljwchat-with-http-polling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSJaC inherit</title>
		<link>http://blog.jwchat.org/2009/01/17/jsjac-inherit/</link>
		<comments>http://blog.jwchat.org/2009/01/17/jsjac-inherit/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 12:07:00 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[JSJaC]]></category>
		<category><![CDATA[JWChat]]></category>
		<category><![CDATA[Jabber]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=121</guid>
		<description><![CDATA[When integrating a web chat (like JWChat) into your existing community most likely you don&#8217;t want to have your users sign in a second time just for the chat. A possible solution to this problem domain is to let your web server handle BOSH session instantiation and xmpp authentication. Once successfull you can pass the [...]]]></description>
			<content:encoded><![CDATA[<p>When integrating a web chat (like JWChat) into your existing community most likely you don&#8217;t want to have your users sign in a second time just for the chat. A possible solution to this problem domain is to let your web server handle BOSH session instantiation and xmpp authentication. Once successfull you can pass the credentials (i.e. the runtime data) of this BOSH session to JSJaC. There&#8217;s an undocumented method call &#8216;inherit&#8217; which handles this.<br />
Here&#8217;s a fine tutorial on how to do this: <a href="http://codingcromulence.blogspot.com/2009/01/chat-hacking-part-ii.html">Chat Hacking, Part II</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/01/17/jsjac-inherit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dojo vs. isArray</title>
		<link>http://blog.jwchat.org/2009/01/16/dojo-vs-isarray/</link>
		<comments>http://blog.jwchat.org/2009/01/16/dojo-vs-isarray/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 08:46:18 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=120</guid>
		<description><![CDATA[Some days ago a spent many hours to fix a somewhat broken toJson output from dojo. I&#8217;ve been copying around an array between different frames and ended up having an object instead of an array as it should be. Seems Ajaxian has a solution to this array bug now. So please dojo could you please [...]]]></description>
			<content:encoded><![CDATA[<p>Some days ago a spent many hours to fix a somewhat broken toJson output from dojo. I&#8217;ve been copying around an array between different frames and ended up having an object instead of an array as it should be. Seems Ajaxian has <a href="http://ajaxian.com/archives/isarray-why-is-it-so-bloody-hard-to-get-right">a solution to this array bug</a> now. So please <a href="http://dojotoolkit.org">dojo</a> could you please fix your <a href="http://api.dojotoolkit.org/jsdoc/dojo/1.2/dojo.isArray">dojo.isArray</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/01/16/dojo-vs-isarray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

