<?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 &#187; Jabber</title>
	<atom:link href="http://blog.jwchat.org/category/jabber/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>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>ejabberd memory leak</title>
		<link>http://blog.jwchat.org/2009/01/14/ejabberd-memory-leak/</link>
		<comments>http://blog.jwchat.org/2009/01/14/ejabberd-memory-leak/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 11:00:41 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>
		<category><![CDATA[ejabberd]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=119</guid>
		<description><![CDATA[If your ejabberd seems to leak memory it might result out of this bug in erlang&#8217;s mnesia database. You can easily find out by starting a remote shell to your running ejabberd and whatch results for the following command: lists:foldl(fun(Tab, Acc) -> ets:info(Tab, memory) * 8 + Acc end, 0, ets:all()). The bug is fixed [...]]]></description>
			<content:encoded><![CDATA[<p>If your ejabberd seems to leak memory it might result out of <a href="http://erlang.org/pipermail/erlang-questions/2008-July/036559.html">this bug in erlang&#8217;s mnesia database</a>. You can easily find out by starting a remote shell to your running ejabberd and whatch results for the following command:</p>
<p><code>lists:foldl(fun(Tab, Acc) -> ets:info(Tab, memory) * 8 + Acc end, 0, ets:all()).</code></p>
<p>The bug is fixed at erlang OTP R12B5.</p>
<p>EDIT:<br />
A good description of the problem can also be found at <a href="http://yanovsky.agenstvo.com/?p=31">Yaws, Mnesia stress test notes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/01/14/ejabberd-memory-leak/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ejabberd mysql drivers for debian and ubuntu</title>
		<link>http://blog.jwchat.org/2009/01/14/ejabberd-mysql-drivers-for-debian-and-ubuntu/</link>
		<comments>http://blog.jwchat.org/2009/01/14/ejabberd-mysql-drivers-for-debian-and-ubuntu/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 10:30:36 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>
		<category><![CDATA[ejabberd]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=118</guid>
		<description><![CDATA[Debian (and ubuntu) packages for ejabberd don&#8217;t contain drivers for mysql. If you want to connect your ejabberd to mysql you need to get those drivers separately from the external ejabberd modules repository and compile them on your own. For convenience I&#8217;ve built a debian package containing the precompiled modules: ejabberd-mysql-20090114_1-2_all.deb Note: this package is [...]]]></description>
			<content:encoded><![CDATA[<p>Debian (and ubuntu) packages for ejabberd don&#8217;t contain drivers for mysql. If you want to connect your ejabberd to mysql you need to get those drivers separately from the external <a href="http://www.ejabberd.im/ejabberd-modules">ejabberd modules</a> repository and compile them on your own.<br />
For convenience I&#8217;ve built a debian package containing the precompiled modules:<br />
<a href="http://blog.jwchat.org/download/ejabberd-mysql-20090114_1-2_all.deb">ejabberd-mysql-20090114_1-2_all.deb</a></p>
<p>Note: this package is not of the usual quality you&#8217;d expect from an official debian package. It&#8217;s just an alien&#8217;ed tarball containing the drivers at the right place (i.e. &#8216;/usr/lib/ejabberd/ebin&#8217;).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2009/01/14/ejabberd-mysql-drivers-for-debian-and-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JWChat 1.0</title>
		<link>http://blog.jwchat.org/2008/12/10/jwchat-10/</link>
		<comments>http://blog.jwchat.org/2008/12/10/jwchat-10/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 16:51:49 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[JWChat]]></category>
		<category><![CDATA[Jabber]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=117</guid>
		<description><![CDATA[After releasing JSJaC and MUCkl today I&#8217;m proud to announce another long awaited release: JWChat v1.0. JWChat is a web based yet full fledged jabber client. It supports most modern browsers like MSIE 6 and 7, Firefox 2.x, Firefox 3.x, Opera, Safari and many more. Just like meebo you can do instant messaging with a [...]]]></description>
			<content:encoded><![CDATA[<p>After releasing JSJaC and MUCkl today I&#8217;m proud to announce another long awaited release: JWChat v1.0. JWChat is a web based yet full fledged jabber client. It supports most modern browsers like MSIE 6 and 7, Firefox 2.x, Firefox 3.x, Opera, Safari and many more.<br />
Just like meebo you can do instant messaging with a variety of different networks by use of jabber transports. JWChat also has full support for MUC built in which lets you take part at groupchats.<br />
There is a demo site at <a href="http://jwchat.org">http://jwchat.org</a> where you can give it a first try. Downloads can be found at <a href="http://blog.jwchat.org/jwchat/download/">http://blog.jwchat.org/jwchat/download/</a>.</p>
<p>I appologize that there is no war file for this release yet. I&#8217;ll try to upload one ASAP but I have to fix my tomcat setup here first.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2008/12/10/jwchat-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MUCkl 0.4.4 is out</title>
		<link>http://blog.jwchat.org/2008/12/10/muckl-044-is-out/</link>
		<comments>http://blog.jwchat.org/2008/12/10/muckl-044-is-out/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 12:25:37 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>
		<category><![CDATA[MUCkl]]></category>

		<guid isPermaLink="false">http://blog.jwchat.org/?p=116</guid>
		<description><![CDATA[A new release of MUCkl is available. MUCkl is a lightweight spin off project of JWChat. It offers web based access to Jabber/XMPP groupchats/conferences based on the MUC protocol without having to register for a jabber account (just enter your nickname and off you go!). This release mainly fixes support for Firefox 3 plus some [...]]]></description>
			<content:encoded><![CDATA[<p>A new release of <a href="http://blog.jwchat.org/muckl/">MUCkl</a> is available. MUCkl is a lightweight spin off project of <a href="http://jwchat.org">JWChat</a>. It offers web based access to Jabber/XMPP groupchats/conferences based on the MUC protocol without having to register for a jabber account (just enter your nickname and off you go!).<br />
This release mainly fixes support for Firefox 3 plus some minor bugs.<br />
Try out MUCkl at <a href="http://muckl.org">http://muckl.org</a> or download it from <a href="http://blog.jwchat.org/muckl/">http://blog.jwchat.org/muckl/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jwchat.org/2008/12/10/muckl-044-is-out/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

