<?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://stefan-strigler.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://stefan-strigler.de</link>
	<description>coding and stuff</description>
	<lastBuildDate>Sun, 17 Mar 2013 12:08:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F&amp;language=en_US&amp;category=text&amp;title=a+little+bit+of+zeank&amp;description=coding+and+stuff&amp;tags=blog" type="text/html" />
		<item>
		<title>Cookie monster&#8217;s eating all of my Websockets</title>
		<link>http://stefan-strigler.de/2013/02/06/cookie-monsters-eating-all-of-my-websockets/</link>
		<comments>http://stefan-strigler.de/2013/02/06/cookie-monsters-eating-all-of-my-websockets/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 11:35:06 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[erlang]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JSJaC]]></category>

		<guid isPermaLink="false">http://stefan-strigler.de/?p=177</guid>
		<description><![CDATA[Lately I came across to playing around with XMPP Over Websockets. The objective was to get something like page transitions working for Websockets as well as they do with BOSH. With page transitions I mean being able to integrate some XMPP client into a web site that still has the old habit of loading new [...]]]></description>
				<content:encoded><![CDATA[<p>Lately I came across to playing around with <a href="http://datatracker.ietf.org/doc/draft-moffitt-xmpp-over-websocket/">XMPP Over Websockets</a>. The objective was to get something like page transitions working for Websockets as well as they do with BOSH. With page transitions I mean being able to integrate some XMPP client into a web site that still has the old habit of loading new pages every time new content needs to be displayed. You know this thing with hyperlinks, what we did when we were young. Anyway, in such a case a XMPP client must be able to store it&#8217;s state upon unloading a page and restore it once the new page is being loaded. This also applies to the underlying XMPP stream the client is attached to. </p>
<p>The current proposal of <a href="http://datatracker.ietf.org/doc/draft-moffitt-xmpp-over-websocket/">XMPP Over Websockets</a> does not support this scenario as the websocket is within a 1:1 relationship to the c2s session (aka the XMPP stream). So upon unloading a page the websocket would be closed and as such the c2s session would have to be terminated as well. So I introduced the notion of a <a href="https://github.com/sstrigler/ejabberd_esl_mniec/tree/websock_muc_ux">websocket session</a> that manages the underlying XMPP stream and allows websockets being attached to it. The idea was to use session IDs that are being stored at a cookie being sent of the websocket.</p>
<p>Now unfortunately this didn&#8217;t work well. As of time of this writing (Feb, 2013) only latest versions of Firefox and Chrome support cookies at the websockets level. E.g. Safari doesn&#8217;t handle them at all. Second both are unable to expose this cookie to the JavaScript API. While <a href="https://github.com/sstrigler/JSJaC/tree/websockets_reloaded">getting the success case working</a> fine with this approach for the mentioned browsers you fail to being able to handle edge cases like sessions that ran into a timeout and having session IDs which are invalid. Bummer!</p>
<p>So probably we&#8217;ll come up with a solution that deals with those situations at the stream level itself using <a href="http://xmpp.org/extensions/xep-0198.html">XEP-0198 &#8211; Stream Management</a>. To make this work with XMPP Over Websockets there will be slight changes to the draft that allow to not close the stream immediately after closing the websockets but uses some predefined timeout instead.</p>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=177&amp;md5=0f817a7dd11642ae5d1ed6e3c8aa41a4" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2013/02/06/cookie-monsters-eating-all-of-my-websockets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2013%2F02%2F06%2Fcookie-monsters-eating-all-of-my-websockets%2F&amp;language=en_GB&amp;category=text&amp;title=Cookie+monster%26%238217%3Bs+eating+all+of+my+Websockets&amp;description=Lately+I+came+across+to+playing+around+with+XMPP+Over+Websockets.+The+objective+was+to+get+something+like+page+transitions+working+for+Websockets+as+well+as+they+do+with+BOSH....&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Introducing Tumblikes</title>
		<link>http://stefan-strigler.de/2012/10/19/introducing-tumblikes/</link>
		<comments>http://stefan-strigler.de/2012/10/19/introducing-tumblikes/#comments</comments>
		<pubDate>Fri, 19 Oct 2012 14:13:44 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://stefan-strigler.de/?p=167</guid>
		<description><![CDATA[Tumblikes is a webapp based on node.js that allows you to download all your liked posts at Tumblr. It&#8217;s useful for backup or offline access. The project is opensource (AGPL) and hosted at Github. For convenience there&#8217;s an npm package as well. So you might just want to $ npm install tumblikes If you just [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://tumblikes.x-berg.de">Tumblikes</a> is a webapp based on node.js that allows you to download all your liked posts at Tumblr. It&#8217;s useful for backup or offline access. The project is opensource (AGPL) and <a href="https://github.com/sstrigler/tumblikes">hosted at Github</a>. For convenience there&#8217;s an <a href="https://npmjs.org/package/tumblikes">npm package</a> as well. So you might just want to<br />
<code><br />
$ npm install tumblikes</code><br />
If you just want to use it, there&#8217;s an instance up and running for you at <a href="http://tumblikes.x-berg.de">http://tumblikes.x-berg.de</a>. Enjoy!</p>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=167&amp;md5=79003d016e13b286e05d9a1061991c46" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2012/10/19/introducing-tumblikes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2012%2F10%2F19%2Fintroducing-tumblikes%2F&amp;language=en_GB&amp;category=text&amp;title=Introducing+Tumblikes&amp;description=Tumblikes+is+a+webapp+based+on+node.js+that+allows+you+to+download+all+your+liked+posts+at+Tumblr.+It%26%238217%3Bs+useful+for+backup+or+offline+access.+The+project+is+opensource+%28AGPL%29...&amp;tags=backup%2Cnode.js%2Ctumblr%2Cblog" type="text/html" />
	</item>
		<item>
		<title>JSJaC v1.4</title>
		<link>http://stefan-strigler.de/2012/10/19/jsjac-v1-4/</link>
		<comments>http://stefan-strigler.de/2012/10/19/jsjac-v1-4/#comments</comments>
		<pubDate>Fri, 19 Oct 2012 12:34:02 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Jabber]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JSJaC]]></category>

		<guid isPermaLink="false">http://stefan-strigler.de/?p=164</guid>
		<description><![CDATA[Good news folks: JSJaC v1.4 has just been released. With tons of updates and bugfixes for recent versions of browsers it also comes along with support for Facebook authentication, CORS and websockets. Documentation has been switched to JSDoc3 and improved a lot. Thanks a lot to all the contributors (check github to find out more)! [...]]]></description>
				<content:encoded><![CDATA[<p>Good news folks: JSJaC v1.4 has just been released. With tons of updates and bugfixes for recent versions of browsers it also comes along with support for Facebook authentication, <a href="http://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a> and <a href="http://tools.ietf.org/html/draft-moffitt-xmpp-over-websocket-00">websockets</a>. <a href="http://sstrigler.github.com/JSJaC/">Documentation</a> has been switched to JSDoc3 and improved a lot. Thanks a lot to all the contributors (check <a href="https://github.com/sstrigler/JSJaC">github</a> to find out more)! </p>
<p>Downloads available:</p>
<ul>
<li><a href="https://github.com/downloads/sstrigler/JSJaC/jsjac-1.4.zip">JSJaC v1.4 ZIP file</a></li>
<li><a href="https://github.com/downloads/sstrigler/JSJaC/jsjac-1.4.tar.gz">JSJaC v1.4 gzipped tarball</a></li>
</ul>
<p>That said, use git! <img src='http://stefan-strigler.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=164&amp;md5=683b323d497ee00eca1063be6a729074" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2012/10/19/jsjac-v1-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2012%2F10%2F19%2Fjsjac-v1-4%2F&amp;language=en_GB&amp;category=text&amp;title=JSJaC+v1.4&amp;description=Good+news+folks%3A+JSJaC+v1.4+has+just+been+released.+With+tons+of+updates+and+bugfixes+for+recent+versions+of+browsers+it+also+comes+along+with+support+for+Facebook+authentication%2C+CORS...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>bosh speed tests</title>
		<link>http://stefan-strigler.de/2011/03/29/bosh-speed-tests/</link>
		<comments>http://stefan-strigler.de/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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=140&amp;md5=829fce19010b2a8ea2ad85ad016812fe" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2011/03/29/bosh-speed-tests/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2011%2F03%2F29%2Fbosh-speed-tests%2F&amp;language=en_GB&amp;category=text&amp;title=bosh+speed+tests&amp;description=Now+with+the+newly+announced+node-xmpp-bosh+%28NXB%29+my+first+tests+left+me+with+the+impression+that+this+thing+is+pretty+speedy+to+what+I+am+used+to.+So+I+decided...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>JSJaC v1.3.4 bugfix release</title>
		<link>http://stefan-strigler.de/2011/03/09/jsjac-v134-bugfix-release/</link>
		<comments>http://stefan-strigler.de/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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=138&amp;md5=cb05f1c545e86d208b0d73bdd5fe6848" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2011/03/09/jsjac-v134-bugfix-release/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2011%2F03%2F09%2Fjsjac-v134-bugfix-release%2F&amp;language=en_GB&amp;category=text&amp;title=JSJaC+v1.3.4+bugfix+release&amp;description=Unfortunately+the+last+version+of+JSJaC+%28v1.3.3%29+released+just+some+days+ago+contained+some+serious+bugs+regarding+handling+of+xmlns+attributes+and+namespaces+correctly.+It+was+introduced+by+a+fix...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>JSJaC 1.3.3: Grab it while it&#8217;s hot!</title>
		<link>http://stefan-strigler.de/2011/03/05/jsjac-133-grab-it-while-its-hot/</link>
		<comments>http://stefan-strigler.de/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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=137&amp;md5=30a900c65d7bc4e4c789c5a493496227" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2011/03/05/jsjac-133-grab-it-while-its-hot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2011%2F03%2F05%2Fjsjac-133-grab-it-while-its-hot%2F&amp;language=en_GB&amp;category=text&amp;title=JSJaC+1.3.3%3A+Grab+it+while+it%26%238217%3Bs+hot%21&amp;description=Thought+it%26%238217%3Bs+about+time+to+release+all+the+little+fixes+and+patches+I%26%238217%3Bve+collected+over+the+years+for+JSJaC+and+here+it+is%3A+JSJaC+1.3.3%21+Along+with+innumerable+bug+fixes...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>jwchat.org now with like button</title>
		<link>http://stefan-strigler.de/2011/03/04/jwchatorg-now-with-like-button/</link>
		<comments>http://stefan-strigler.de/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://stefan-strigler.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=136&amp;md5=51d4b3abb0e5479929e99bc44b11faf6" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2011/03/04/jwchatorg-now-with-like-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2011%2F03%2F04%2Fjwchatorg-now-with-like-button%2F&amp;language=en_GB&amp;category=text&amp;title=jwchat.org+now+with+like+button&amp;description=Better+late+than+never%3A+jwchat.org+new+features+a+facebook+like+button+plus+a+flattr+button.+So+if+you+like+the+service+here%26%238217%3Bs+your+chance+to+let+us+know%21&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>ezmlm on debian with dotdeb broken</title>
		<link>http://stefan-strigler.de/2010/04/13/ezmlm-on-debian-with-dotdeb-broken/</link>
		<comments>http://stefan-strigler.de/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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=134&amp;md5=424745b62ea7979efb7b0fc1f9c536bd" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2010/04/13/ezmlm-on-debian-with-dotdeb-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2010%2F04%2F13%2Fezmlm-on-debian-with-dotdeb-broken%2F&amp;language=en_GB&amp;category=text&amp;title=ezmlm+on+debian+with+dotdeb+broken&amp;description=Today+I+discovered+my+ezmlm-idx+hasn%26%238217%3Bt+been+working+anymore.+Unfortunately+this+hasn%26%238217%3Bt+been+noticed+for+quite+some+time.+I%26%238217%3Bm+using+the+precompiled+qmail+stack+from+dotdeb.org.+What+I+found+in...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>gateways blocked</title>
		<link>http://stefan-strigler.de/2009/12/18/gateways-blocked/</link>
		<comments>http://stefan-strigler.de/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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=124&amp;md5=a8e172ba6c9b9061afc51c741c071724" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2009/12/18/gateways-blocked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2009%2F12%2F18%2Fgateways-blocked%2F&amp;language=en_GB&amp;category=text&amp;title=gateways+blocked&amp;description=Short+note%3A+due+to+abuse+I+had+to+block+access+to+all+gateways+%28transports%29+of+jwchat.org+for+external+usage.+I%26%238217%3Bm+sorry+about+this+but+currently+there%26%238217%3Bs+no+other+way+to...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Nagios Plugin to monitor BOSH services</title>
		<link>http://stefan-strigler.de/2009/06/17/nagios-plugin-to-monitor-bosh-services/</link>
		<comments>http://stefan-strigler.de/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[coding]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[Jabber]]></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>
 <p><a href="http://stefan-strigler.de/?flattrss_redirect&amp;id=123&amp;md5=f82203a7c2a87b5d59c330c812072183" title="Flattr" target="_blank"><img src="http://stefan-strigler.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://stefan-strigler.de/2009/06/17/nagios-plugin-to-monitor-bosh-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=zeank&amp;popout=1&amp;url=http%3A%2F%2Fstefan-strigler.de%2F2009%2F06%2F17%2Fnagios-plugin-to-monitor-bosh-services%2F&amp;language=en_GB&amp;category=text&amp;title=Nagios+Plugin+to+monitor+BOSH+services&amp;description=Enjoy%21+%23%21%2Fusr%2Fbin%2Fperl+-w+%23+%23+check_bosh+plugin+for+nagios+%23+%23+usage%3A+%23+check_bosh+-U+url+-H+host+%23+%23+Check+if+bosh+service+running+at+specified+address+%23+%23...&amp;tags=blog" type="text/html" />
	</item>
	</channel>
</rss>
