<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>jabber @ www.talios.com</title><link>http://www.talios.com/</link><description>(jabber) </description><copyright>Copyright 2010 www.talios.com</copyright><generator>Mark Derricutt</generator><lastBuildDate>Wed, 26 May 2010 13:46:00 GMT</lastBuildDate><image><title>jabber @ www.talios.com</title><url>http://server1.blog-city.com/images/bc_v5_logo_small.gif</url><link>http://www.talios.com/</link></image><ttl>360</ttl><docs>http://backend.userland.com/rss</docs><item><title>Is this why Twitter-IM doesnt scale?</title><guid isPermaLink="true">http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm</guid><link>http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm</link><pubDate>Thu, 12 Jun 2008 11:37:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=is%5Fthis%5Fwhy%5Ftwitterim%5Fdoesnt%5Fscale</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<p>It's been said that twitters IM gateway has been one of the causes for their scale issues, and I just logged into one my older gmail accounts I only use for IM (and twitter-im in particular):</p>
<p style="text-align: center"><img src="http://files.blog-city.com/files/aa/16275/p/f/twitterimstupid.png" /></p>
<p>What I found greeting me was 3-4 messages with "off line IM messages" from twitter - 795 lines in one, 1675 in another, and a few other.</p>
<p>Could it be that a simple scaling technique twitter could use is to follow a users jabber presence and NOT send them thousands of off line messages? I had actually thought they already did, but I guess not. Surely only sending IM messages when the user is online would lower their resource consumption tremendously.</p>

<div class="posttagsblock"><a href="http://technorati.com/tag/web2.0" rel="tag">web2.0</a></div><p><a href='http://www.talios.com/console/comments/popup/?f=is%5Fthis%5Fwhy%5Ftwitterim%5Fdoesnt%5Fscale'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm'>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</a></li><li><a href='http://www.talios.com/twitter_me_this.htm'>Twitter me this...</a></li><li><a href='http://www.talios.com/myjabbernet_transports_offline.htm'>myjabber.net transports offline...</a></li><li><a href='http://www.talios.com/peter_millard.htm'>Peter Millard</a></li><li><a href='http://www.talios.com/instant_mobile_messaging__pull_me_push_me_make_me_beep.htm'>Instant Mobile Messaging - Pull Me Push Me Make Me Beep</a></li><li><a href='http://www.talios.com/google_talk.htm'>Google Talk...</a></li></ul>]]></description><category>twitter</category><category>jabber</category><category>scale</category><category>fail</category></item><item><title>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</title><guid isPermaLink="true">http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm</guid><link>http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm</link><pubDate>Tue, 06 Nov 2007 03:32:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=messenger%5F9%5Fgtalk%5Fintegration%5Fmessenger%5Fapi%5Fnew%5Fclient%5Ffo</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<p>Is Microsoft finally recognizing the power of the XMPP/Jabber protocol for IM? It doesn't quite sound like it, but would be good to see them just adopt XMPP natively (even if they did so in a Microsoft styled walled garden network).</p>
<blockquote cite="http://www.liveside.net/blogs/main/archive/2007/10/31/messenger-9-gtalk-integration-messenger-api-new-client-for-mac-os-x-news-unveiled-at-georgia-tech-presentation-whew.aspx">
  Internal builds are already at WLM 9 and includes many of the API components. They have a team working on multi-person audio/video chat for WLM that may or may not be in 9, but should be in by 10. They are also trying to work out a way for WLM users to chat with AIM/GTalk/ICQ users like the way Yahoo! works now, and they have an internal version that works with GTalk already (but very basic). MS will no longer update the MSN Messenger for Mac, but they are going to release a brand new client for Mac OS X that is according to him "Really, really cool and awesome" but he would not provide anymore details due to his NDA. [From <a href="http://www.liveside.net/blogs/main/archive/2007/10/31/messenger-9-gtalk-integration-messenger-api-new-client-for-mac-os-x-news-unveiled-at-georgia-tech-presentation-whew.aspx"><cite>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</cite></a>]
</blockquote><p><a href='http://www.talios.com/console/comments/popup/?f=messenger%5F9%5Fgtalk%5Fintegration%5Fmessenger%5Fapi%5Fnew%5Fclient%5Ffo'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/a_java_guy_goes_to_microsoft_codecamp.htm'>A Java guy goes to Microsoft Codecamp</a></li><li><a href='http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm'>Is this why Twitter-IM doesnt scale?</a></li><li><a href='http://www.talios.com/myjabbernet_transports_offline.htm'>myjabber.net transports offline...</a></li><li><a href='http://www.talios.com/peter_millard.htm'>Peter Millard</a></li><li><a href='http://www.talios.com/google_talk_problems.htm'>Google talk problems...</a></li><li><a href='http://www.talios.com/instant_mobile_messaging__pull_me_push_me_make_me_beep.htm'>Instant Mobile Messaging - Pull Me Push Me Make Me Beep</a></li><li><a href='http://www.talios.com/google_talk.htm'>Google Talk...</a></li></ul>]]></description><category>xmpp</category><category>microsoft</category><category>jabber</category></item><item><title>El Cheapo VOIP Phone</title><guid isPermaLink="true">http://www.talios.com/el_cheapo_voip_phone.htm</guid><link>http://www.talios.com/el_cheapo_voip_phone.htm</link><pubDate>Sat, 03 Mar 2007 04:59:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=el%5Fcheapo%5Fvoip%5Fphone</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<div>
<div style="float: right; margin: 5px">
<img src="http://files.blog-city.com/files/aa/16275/p/f/dse_voip_phone.jpg">
</div>
<div>
<p>Picked up an <a href="http://www.dse.co.nz/cgi-bin/dse.storefront/45e8fd4300f638ba273fc0a87f3306f3/Product/View/XH7170">el-cheapo USB Skype Phone</a> from Dick Smith Electronics today - not sure if I'll use it much as I don't use Skype - favouring Google Talk instead, although the new release of <a href="http://www.gizmoproject.com/">Gizmo Project</a> is looking interesting.</p>
<p>Amusingly I sent myself a Google Talk voice mail from one account to another, which was picked up by <a href="http://www.bulletinonline.net/bw/products/bulletin_mail.htm">Bulletin Mail</a> account and pushed to my mobile - a few clicks later and my voice mail was being played to me form my cellphone... Neat!</p>
</div>
<div style="clear: both"/>
</div><p><a href='http://www.talios.com/console/comments/popup/?f=el%5Fcheapo%5Fvoip%5Fphone'>Leave Comment</a></p>]]></description></item><item><title>myjabber.net transports offline...</title><guid isPermaLink="true">http://www.talios.com/myjabbernet_transports_offline.htm</guid><link>http://www.talios.com/myjabbernet_transports_offline.htm</link><pubDate>Thu, 14 Dec 2006 05:28:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=myjabbernet%5Ftransports%5Foffline</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<p>For the last week or so I've noticed that myjabber.net's MSN, ICQ, and AOL transports have been offline with no response from the support email address.  I know I can't really complain about a free service but, wait - yes I can :(  Responding to the support@ email  would be a start at least (something beyond the automated response that appeared 5 seconds after I sent the email).</p>

<center><img src="http://files.blog-city.com/files/aa/16275/b/myjabber_transports_offline.png"></center>

<p>So anyway, I'm thinking of just moving everything over to use Google Talk - anyone know of any servers running (stable) transports one could hook into a Google Talk account?</p><p><a href='http://www.talios.com/console/comments/popup/?f=myjabbernet%5Ftransports%5Foffline'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/google_xml_pages.htm'>Google XML Pages</a></li><li><a href='http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm'>Is this why Twitter-IM doesnt scale?</a></li><li><a href='http://www.talios.com/new_inbox0_strategy.htm'>New INBOX:0 Strategy</a></li><li><a href='http://www.talios.com/google_analytics_new_eventing_model.htm'>Google Analytics new Eventing Model</a></li><li><a href='http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm'>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</a></li><li><a href='http://www.talios.com/official_google_reader_blog_we_found_it.htm'>Official Google Reader Blog: "We found it!"</a></li><li><a href='http://www.talios.com/google_reader_goes_offline_with_gears.htm'>Google Reader Goes Offline with Gears</a></li><li><a href='http://www.talios.com/howo_use_google_cache_as_a_backup_engine.htm'>Howo use Google Cache as a backup engine...</a></li><li><a href='http://www.talios.com/peter_millard.htm'>Peter Millard</a></li><li><a href='http://www.talios.com/google_talk_problems.htm'>Google talk problems...</a></li></ul>]]></description><category>jabber</category><category>xmpp</category><category>google</category><category>gmail</category></item><item><title>Peter Millard</title><guid isPermaLink="true">http://www.talios.com/peter_millard.htm</guid><link>http://www.talios.com/peter_millard.htm</link><pubDate>Fri, 28 Apr 2006 11:00:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=peter%5Fmillard</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[&lt;message to="pgmillard@jabber.org"&gt;<br/>
&lt;body&gt;<br/>
<div style="margin-left: 10px;">
Hmmm, I've started this post about ten times alredy, everything I write just doesn't quite fit or sound right - silence is about as much that seems appropriate.<br/>
<br/>
Via <a href="http://ralphm.net/blog/2006/04/28/pgm">Ralph</a> and <a href="http://www.saint-andre.com/blog/2006-04.html#2006-04-27T09:15">St Peter</a> I heard of <a href="http://www.pgmillard.com/blog/index.php?paged=2">Peter Millard's</a> passing.<br/>
<br/>
*insert silence and respect here*<br/>
<br/>
You got to hold Zoe, and Zoe got be held by you.<br/>
<br/>
That's all I can say - rest in peace.<br/>
</div>
&lt;/body&gt;<br/>
&lt;/message&gt;><p><a href='http://www.talios.com/console/comments/popup/?f=peter%5Fmillard'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm'>Is this why Twitter-IM doesnt scale?</a></li><li><a href='http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm'>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</a></li><li><a href='http://www.talios.com/myjabbernet_transports_offline.htm'>myjabber.net transports offline...</a></li><li><a href='http://www.talios.com/unexpect.htm'>Unexpect...</a></li><li><a href='http://www.talios.com/bye_bye_shona.htm'>Bye bye Shona</a></li><li><a href='http://www.talios.com/google_talk_problems.htm'>Google talk problems...</a></li><li><a href='http://www.talios.com/instant_mobile_messaging__pull_me_push_me_make_me_beep.htm'>Instant Mobile Messaging - Pull Me Push Me Make Me Beep</a></li><li><a href='http://www.talios.com/google_talk.htm'>Google Talk...</a></li></ul>]]></description><category>xmpp</category><category>death</category><category>cancer</category><category>jabber</category></item><item><title>Instant Mobile Messaging - Pull Me Push Me Make Me Beep</title><guid isPermaLink="true">http://www.talios.com/instant_mobile_messaging__pull_me_push_me_make_me_beep.htm</guid><link>http://www.talios.com/instant_mobile_messaging__pull_me_push_me_make_me_beep.htm</link><pubDate>Tue, 13 Sep 2005 10:32:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=instant%5Fmobile%5Fmessaging%5F%5Fpull%5Fme%5Fpush%5Fme%5Fmake%5Fme%5Fbeep</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<img vspace="0" hspace="0" border="0" align="right" src="http://files.blog-city.com/files/aa/16275/b/bullmail_external_servers.png" />Several weeks ago a new version of our popular UK product <a href="http://www.bulletinmail.com">Bulletin Mail</a> was released with support for external IMAP, POP3, and Jabber/XMPP servers.  A Bulletin Mail account gives the user an email address which maps to their mobile allowing anyone to email your phone without knowing your number.<br /><br />The new functionality allows you to connect up any number of IMAP, POP3, and XMPP accounts to provide even more pushed email to your mobile.  Once configured the service monitors your email accounts in the background looking for new and unread messages to to push to your mobile via an SMS alert, and a WAP based &quot;full content&quot; display.<br /><br />Any XMPP connections maintain a low priority, server-side &quot;/mobile&quot; resource offering mobile connectivity to online contacts, with new IM messages pushed to your handset via the same SMS/WAP interface.  The beauty of this combination comes from having the majority of communications on the server: no need for constant GPRS connections/charges, and no need for GPRS/WAP at all (unless you want to make use of the extended functionality).<br /><br />All server connections are SSL encrypted, and honour Spam Assassin headers for dropping spam (as well as the services own filter/blocking rules).<br /><br />I find it somewhat amusing that it wasn't untill my membership to the Jabber Software Foundation expired that I actually got Jabber related code into production, but thats the way it goes isn't it?<br /><br />Maybe I'll reapply when the time comes...<br /><p><a href='http://www.talios.com/console/comments/popup/?f=instant%5Fmobile%5Fmessaging%5F%5Fpull%5Fme%5Fpush%5Fme%5Fmake%5Fme%5Fbeep'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/illegal_argument_5_1.htm'>Illegal Argument #5</a></li><li><a href='http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm'>Is this why Twitter-IM doesnt scale?</a></li><li><a href='http://www.talios.com/sony_ericson_xperia_windows_mobile_phone.htm'>Sony Ericson Xperia (Windows Mobile Phone)</a></li><li><a href='http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm'>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</a></li><li><a href='http://www.talios.com/kai_kanola_off_camera.htm'>Kai Kanola off camera</a></li><li><a href='http://www.talios.com/reblogging__diego_and_russell_return.htm'>Reblogging - Diego and Russell Return</a></li><li><a href='http://www.talios.com/myjabbernet_transports_offline.htm'>myjabber.net transports offline...</a></li><li><a href='http://www.talios.com/peter_millard.htm'>Peter Millard</a></li><li><a href='http://www.talios.com/google_talk_problems.htm'>Google talk problems...</a></li><li><a href='http://www.talios.com/google_talk.htm'>Google Talk...</a></li></ul>]]></description><category>xmpp</category><category>mobile</category><category>sms</category><category>jabber</category></item><item><title>Google Talk...</title><guid isPermaLink="true">http://www.talios.com/google_talk.htm</guid><link>http://www.talios.com/google_talk.htm</link><pubDate>Wed, 24 Aug 2005 03:12:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=google%5Ftalk</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[It looks like everyones talking about Google's forth coming XMPP/Jabber server at the moment, <a href="http://hybernaut.com/google-gaim-01"><span class="submitted"></span></a><a title="View user profile." href="http://hybernaut.com/user/2">Brian Del Vecchio</a> has a page showing connection details for Gaim.<br /><br />The guts of it are that your &quot;JID&quot; (Jabber User Id) is the same as your Gmail email address, but the Jabber server is talk.google.com.  Not all clients appear to let you use a different server than whats in the JID (Gaim and Gossip both do) so you may need to hunt around.<br /><br />Currently I've been able to talk to other Gmail users ONLY after they've been added to my roster (good for anti spam) and as yet no form of server-to-server comms - this may be due to Google not providing s2s, but may also be related to using a different server hostname than whats mentioned in the JID (I'm unfamiliar with now this actually works, so that may be a non-issue).<br /><br />This'll be an interesting thing to watch...<br /><br /><span style="font-weight: bold;">Update:</span> Google themselves now have an <a href="http://www.google.com/support/talk/bin/answer.py?answer=24073">official page showing gaim settings</a>.<br /><p><a href='http://www.talios.com/console/comments/popup/?f=google%5Ftalk'>Leave Comment</a></p><p>Related Entries:</p><ul><li><a href='http://www.talios.com/google_xml_pages.htm'>Google XML Pages</a></li><li><a href='http://www.talios.com/is_this_why_twitterim_doesnt_scale.htm'>Is this why Twitter-IM doesnt scale?</a></li><li><a href='http://www.talios.com/new_inbox0_strategy.htm'>New INBOX:0 Strategy</a></li><li><a href='http://www.talios.com/google_analytics_new_eventing_model.htm'>Google Analytics new Eventing Model</a></li><li><a href='http://www.talios.com/messenger_9_gtalk_integration_messenger_api_new_client_fo.htm'>Messenger 9, GTalk integration, Messenger API, new client for Mac OS X - news unveiled at Georgia Tech presentation (whew) - LiveSide - News blog</a></li><li><a href='http://www.talios.com/official_google_reader_blog_we_found_it.htm'>Official Google Reader Blog: "We found it!"</a></li><li><a href='http://www.talios.com/google_reader_goes_offline_with_gears.htm'>Google Reader Goes Offline with Gears</a></li><li><a href='http://www.talios.com/myjabbernet_transports_offline.htm'>myjabber.net transports offline...</a></li><li><a href='http://www.talios.com/howo_use_google_cache_as_a_backup_engine.htm'>Howo use Google Cache as a backup engine...</a></li><li><a href='http://www.talios.com/peter_millard.htm'>Peter Millard</a></li></ul>]]></description><category>xmpp</category><category>google</category><category>gmail</category><category>jabber</category></item><item><title>JSF Dis-Membership...</title><guid isPermaLink="true">http://www.talios.com/jsf_dismembership.htm</guid><link>http://www.talios.com/jsf_dismembership.htm</link><pubDate>Mon, 09 May 2005 12:29:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=jsf%5Fdismembership</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[I seem to be in the unfortunate position to be on the list of people up for renewal in the current JSF election round, but due to a mailserver rebuild/crash I lost alot of mail and didn't become aware of this untill it was too late.

<p/>Unfortunately I've also not been as active as a JSF member, or in the general Jabber community as much as I initially hoped, all the Jabber related code I was hoping to do at ${PLACE_OF_WORK} kinda got thrown out the window with other other projects getting in the way, which somewhat sucks as I was looking forward to it.

<p/>So it would seem my tenure with the JSF is about to come to an end, unless I reapply again in the future.  However, I'm still not entirely sure what the point of the JSF really is, besides promoting Jabber/XMPP, furthering standards and specifications, and working on the code associated with them, what actually is there?  The members list prooved to be an incredibly quiet list, whilst  every other list was more a small forrestry reserve.  I also never actually managed to make it to a JSF meeting in the chatrooms due to timezone differences and/or other "real world" commitments.

<p/>Leaving the JSF won't stop me ranting incessantly to people about Jabber and XMPP, nor will it revert me back to a MSN or ICQ client user, so was JSF membership mearly a status symbol?  A badge to be worn as one might membership to the New Zealand Open Source Societry or the Association of Shareware Professionals?  Part of me sees it like that, an intangible badge to be worn to show ones devotion, or allegiance, and yet - it's soo much more than that.

<p/>It's been a good ride, but I'm glad I still have season tickets to the show...<p><a href='http://www.talios.com/console/comments/popup/?f=jsf%5Fdismembership'>Leave Comment</a></p>]]></description></item><item><title>Meeting other bloggers...</title><guid isPermaLink="true">http://www.talios.com/meeting_other_bloggers.htm</guid><link>http://www.talios.com/meeting_other_bloggers.htm</link><pubDate>Mon, 09 May 2005 12:00:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=meeting%5Fother%5Fbloggers</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[<b>Note: </b> This was originally posted as a comment to <a href="http://chaostheory.typepad.com/chaos_theory/2005/05/who_has_met_oth.html">Choas Theory</a> as a comment.  I thought my rant interesting enough to repost as its own story.

<p/>I've always been weirded out by other peoples apparantly weirded-outness of meeting other bloggers, or other internet users. Although I suspect my early years of being a BBS user got me over that period years and years ago.

<p/>That being said, 9 years or so ago I got my first job up here in Auckland, the drive up from Napier had be staying at strange IRC peoples houses, staying with my brother at his flat ( and darn it, I think I knew more about the IRC folk, and they more about me, than my brother and I).

<p/>Shortly afterwards, most of the people I knew were in some way related to the 'net, either working for ISPs, or people I wrote to on the local Delphi Development list, we had user group meetings complete with beer and pizza.

<p/>Were they bloggers? Well, 9 years ago they didn't have "blogs", at least not as they were, but if I discovered they were, would it be wrong for me to continue to meet them?

<p/>In this day and age, it's quite likely that someone you know, even a family member is a blogger, or a user of the internet, why is that that automatically lumps them in leage with child molesters and deranged lunatics?

<p/>Would you meet a blogger without knowing anything about them? Hell no, but then - woud you meet ANYONE without knowing something about them?

<p/>I've known people who'll swear they'd never meet someone off the net, be it an online-matchmaker deal, or a chat room/instant messaging "buddy" that they've spoken to for 5 years, and yet they'll go to the pub and pick up some cheap hussy for a nights forgettable headache without blatting an eyelid.

<p/>But oh no - not those bloggers, you have to carefull with them folk...<p><a href='http://www.talios.com/console/comments/popup/?f=meeting%5Fother%5Fbloggers'>Leave Comment</a></p>]]></description></item><item><title>Jabber SMS transport</title><guid isPermaLink="true">http://www.talios.com/jabber_sms_transport.htm</guid><link>http://www.talios.com/jabber_sms_transport.htm</link><pubDate>Tue, 12 Apr 2005 10:14:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=jabber%5Fsms%5Ftransport</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[Ages ago I wrote the beginnings of an SMS transport as an experimental test-bed for applications at work, unfortunately other-project upon other-project always seemed to get in the way of actually furthering the code, or getting any XMPP related functionality into my application - and now I'm finding an opening to start my long desired IM integration, it seems I've gone and lost the code I'd written; and to top it off - the transport framework I was using ( marbles ) seems to have vanished off the face of the world...

<p/>Ironically, my reinvestigation into this code coincides with the need to reapply for JSF membership, initially I was thinking of just letting it lapse as I've not really been all that active in the areas of jabber lately (gotta hate that work thing at times), but I'm still trying to push XMPP support in the office and our applications (even though we have greater requirements that tend to get in the way of 'the fun stuff').

<p/>A quick look around the googlescape doesn't show me any existing frameworks for developing component services ( <a href="http://www.jabber.org/jeps/jep-0114.html">JEP-0114</a> ) so I may have to look into writing this first, probably wrapping <a href="http://jabberstudio.org/projects/jso/project/view.php">JSO</a>.  Before I do that however I need to work out just what I need for my integration in the first place, and work out the best way to implement and deploy it.

<p/>If anyone out there on Planet Jabber know of any lightweight JEP-0114 containers/wrappers in Java - sing out...<p><a href='http://www.talios.com/console/comments/popup/?f=jabber%5Fsms%5Ftransport'>Leave Comment</a></p>]]></description></item><item><title>Dolphin XMPP Message Sending</title><guid isPermaLink="true">http://www.talios.com/dolphin_xmpp_message_sending.htm</guid><link>http://www.talios.com/dolphin_xmpp_message_sending.htm</link><pubDate>Sun, 26 Sep 2004 12:00:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=dolphin%5Fxmpp%5Fmessage%5Fsending</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[I'm starting to get something of a more working/functional set of classes to drive XMPP/Jabber from Dolphin Smalltalk.  Now at the point that I need to think about HOW I want to use XMPP from Dolphin; how the API should look and be used.

<p/>From a fresh workspace, the following code sends my main client instance a chat message after successfully binding and authenticating to the jabber server.

<p/><blockquote><pre>| xmpp |
xmpp := XMPPConnection new.
xmpp jid: 'talios@myjabber.net'.
xmpp password: '********'.
xmpp resource: 'Dolphin'.
xmpp bind ifTrue: 
  [xmpp login ifTrue:
    [ xmpp sendChatMessage: 'hello mark from dolphin smalltalk'
      to: 'talios@myjabber.net/Pandion'.]]</pre></blockquote>

<p/><center><img src="http://files.blog-city.com/files/aa/16275/b/dolphin-xmpp-chatmsg.png"></center>

<p/>The current library is quite flat with <i>everything</i> sitting on the XMPPConnection class, however I'm thinking of breaking things apart to allow something like the following:

<p/><blockquote><pre>chat := xmpp openChatTo: 'talios@myjabber.net/Pandion'.
chat onIncomingMessageDo: [ :message |
  message inspect.].
chat newMessage: 'Hello XMPP';
  send.</pre></blockquote>

This would open a new chat to the specified jid, setup a callback handler/block to respond to chat message replies from this jid with simply "inspects" the incoming message, then make an initial message to the user and send it.

<p/><a href="http://www.cincomsmalltalk.com/userblogs/mls/blogView">Michael Lucas-Smith</a> of <a href="http://www.softwarewithstyle.com">Software With Style</a> has expressed an interest in seeing my XMPP packages appearing for <a href="http://smalltalk.cincom.com/index.ssp">Cincom Visual Works Smalltalk</a>, which I'll definitely be looking into once I've got my head around this current <a href="http://www.object-arts.com">Dolphin</a> implemtation.<p><a href='http://www.talios.com/console/comments/popup/?f=dolphin%5Fxmpp%5Fmessage%5Fsending'>Leave Comment</a></p>]]></description></item><item><title>Dolphin XMPP</title><guid isPermaLink="true">http://www.talios.com/dolphin_xmpp.htm</guid><link>http://www.talios.com/dolphin_xmpp.htm</link><pubDate>Wed, 18 Aug 2004 11:10:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=dolphin%5Fxmpp</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[So whats a self respecting jabber geek to do with a new development environment and language, and a desire to import his roster into a simple messaging application he's working on?  Write a library of course!<p/>

It was only a few years ago when every one's "first program" seemed to be an IRC client, and now it seems to be a <a href="http://www.jabberstudio.org">Jabber/XMPP client</a> ( or framework/library for the extra keen among you ); maybe that's why theres <a href="http://www.saint-andre.com/blog/2004-08.html#2004-08-10T17:01">so many low quality client applications out there</a>.<p/>

Anyway, so here I am with a language that I'm somewhat unfamiliar with; but also an entire way of thinking thats different; with a requirement/desire that on the surface doesn't seem that hard - so where does one start?<p/>

Maybe I'm growing as a developer, or maybe it's just cause I'm hanging out in a Smalltalk environment where it all began, but I started writing this thing test first, starting with a basic shell of a test case:

<blockquote><pre>TestCase subclass: #JabberXMPPTests
    instanceVariableNames: ''
    classVariableNames: ''
    poolDictionaries: ''
    classInstanceVariableNames: ''</blockquote><//pre>

My first test did absolutely nothing, all it does is create an instance of the class, nothing more, nothing less:

<blockquote><pre>testCreate
    "Test if we can even create an instance of the XMPP object."
    | xmpp |
    xmpp := XMPPConnection new.</blockquote></pre>

It may seem worthless, and it probably is, but even so - the test failed :(  Ok, so I create the container XMPPConnection class and the test passes, most excellent!  Lets set some connection properties as I would if I wanted to use it.

<blockquote><pre>testSetConnectionDetails
    "Test setting connection details, its a minor thing,
    but its a first step to a working system."

    | xmpp |
    xmpp := XMPPConnection new.
    xmpp jid: 'talios@myjabber.net'.
    xmpp password: 'XXXXXXX'.
    xmpp resource: 'Dolphin'</blockquote></pre>

It's here on this second test that I first started to notice something subtle about how I was starting to work.  Unlike other environments where you're entire source file is laid out infront of you, in Smalltalk systems you generally browse one method at a time - keeping your focus on the smallest thing possibler.  By simply changing the method name, adding a few lines for params and hitting CTRL-S I'd actually created a new method instead of renaming the old one as one may normally expect.  By changing the method name again and adding one further line to the code, I had yet another test case, which simply added further functionality to the code I would eventually write.<p/>

Following in this manner I soon had quite a collection of test methods, each testing a further level of the unwritten API, which I'm now in catch up mode for; each test method seems to be a versioning of my thoughts, it's nice to see red bars suddenly go green as those small steps get implented.  Sure, theres only 5 tests at the moment, but I think thats 5 more tests than I have in my day-job code (*hides from $employer).<p/>

I'm now about 2-3 hours into coding: figuring out how to drive Dolphin's Socket classes and refreshing my memory of some the XMPP specs and I have a simple client that connects to a server, initiates a stream, auths, but then fails.  Darn it.  Even thou I'm currently hardcoding certainly things at the moment I still can't log in due to some bogus data hitting the wire which I can't currently see.  80% of ethereal downloaded then I can sniff the traffic and see what I'm missing and then I'll be down to 1 failing test ( testReceiveRoster ).<p/>

I'm not sure if this Dolphin stuff will lead anywhere, whilst I'm enjoying the tool, and the refreshing change of server side Java, if I can't get my $EMPLOYER prototype application working suitably soon, we'll likely be contracting the job out do someone else who can stand C++ or Delphi ( coming from a guy who did Delphi for 9 years or so,  I'm not so sure I really want to go back.)  If things don't work out, my 30 day trial of Dolphin Smalltalk will expire and I'll be sitting here looking like someone who gave up book reading time for some wasted hacking...<p/>

Ah well, it was enlightening anyway.<p/>

So ethereal just finnished sniffing, it told me what my unit tests told me - I screwed up my auth code; but that can wait for another day.  It's time for this hacker to head to bed.
<p><a href='http://www.talios.com/console/comments/popup/?f=dolphin%5Fxmpp'>Leave Comment</a></p>]]></description></item><item><title>Writing XMPP Transports in Java</title><guid isPermaLink="true">http://www.talios.com/writing_xmpp_transports_in_java.htm</guid><link>http://www.talios.com/writing_xmpp_transports_in_java.htm</link><pubDate>Thu, 15 Jul 2004 13:18:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=writing%5Fxmpp%5Ftransports%5Fin%5Fjava</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[The other week someone in jdev was asking about writing transports in Java and I've been meaning to write up some example code here, the <a href="http://www.jabber.org">Jabber/XMPP</a> transport code was written using the <a href="http://marbles.jabberstudio.org/">Marbles</a> framework.&nbsp; The <a href="http://www.smsforum.org">SMS</a> code ( which seems to generate more interest than the XMPP side of things ) simply uses $EMPLOYER's SOAP gateway, this means that theres actually very little code in the transport itself - its pretty much just glue.

At the heard of a Marbles based transport is the ComponentConnection class and ComponentConnectionEventListener interface, when your application starts you connect to a jabber server by connecting to the server and attaching our listener:

<blockquote><pre>ComponentConnectionInfo connect_info = <b>new</b> ComponentConnectionInfo(
    APPLICATION_NAME,
    "localhost",&nbsp; <i>// Hostname of Jabber Server</i>
    "secret",&nbsp;&nbsp;&nbsp;&nbsp; <i>// Secret/password to connect to server</i>
    "jabber:component:" + APPLICATION_NAME,
    8002,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>// Port to connect to</i>
    <b>true</b>);

ComponentConnection connection = <b>new</b> ComponentConnection(<b>new</b> MyTransportHandler(), connect_info);
</blockquote>

The MyTransportHandler class implements a somewhat basic interface that simply routes DOM Elements:<br>

<blockquote><pre>public interface</b> ComponentConnectionEventListener { 
    <b>void</b> onActive();  
    <b>void</b> onConfig(Element element);  
    <b>void</b> onPacket(Element element); 
}</pre></blockquote>

A simple implementation of onPacket() to print incoming messages to the console works as follows:

<blockquote><pre><b>public void</b> onPacket(Element element) {
    <i>// We're very simple here, we only handle messages, not chats</i>
    <b>if</b> ( element.getNodeName().equals(<b>"message"</b>) ) {
        <i>// We're also only interested in non-error messages</i>
        <b>if</b> (element.getAttribute(<b>"type"</b>) == <b>null</b> || (!element.getAttribute(<b>"type"</b>).equals(<b>"error"</b>))) { 
            <b>try</b> { 
                String from = element.getAttribute(<b>"from"</b>);
                String to = element.getAttribute(<b>"to"</b>);

                <i>// Loop children of the message and look for the body</i>
                NodeList childList = element.getChildNodes(); 
                String body = <b>""</b>; 
                <b>for</b> ( <b>int</b> i = 0; i &lt; childList.getLength(); i++ ) { 
                    Node node = childList.item(i); 
                    <b>if</b> ( node.getNodeName().equals(<b>"body"</b>)) { 
                        body = node.getChildNodes().item(0).getNodeValue(); 
                    }
                }

                System.out.println("Jabber message from " + from + " to " + to + ": " + body);
            } <b>catch</b> (Exception e) { 
                e.printStackTrace();
            } 
        }
    } 
}</pre></blockquote>

So the code doesn't do much, but once you've got XMPP messages coming into your code, you're free to bounce it into what ever other layer you want to implement, in the case of using $EMPLOYERS SMS gateway, all I did was:<br>

<blockquote><pre><i>// Find SMS Gateway WebService</i>
BulletinServerProxy proxy = BulletinServerProxyLocator.getBulletinServerProxy();
BulletinMessage message = getMessageFromElement(element);
proxy.send(BulletinConnectComponent.APPLICATION_NAME, 1, message );

<i>// Store message in database</i>
recordMessageHistory(from, message);</pre></blockquote>

Now that we have this funky java based XMPP transport running we need a Jabber server to connect to, under jabberd 1.4 two entries in jabber.xml are required, the first inside the sessions service element:

<blockquote><pre>&lt;service type="sms" jid="sms.yourhost" name="Some Descriptive name"&gt;
    &lt;ns&gt;jabber:iq:gateway&lt;/ns&gt;
    &lt;ns&gt;jabber:iq:register&lt;/ns&gt;
&lt;/service&gt;</pre></blockquote>

and the second in its own &lt;service&gt; element:

<blockquote><pre>&lt;service id="bcjab"&gt;
    &lt;host&gt;sms.yourhost&lt;/host&gt;
    &lt;accept&gt;
        &lt;ip&gt;127.0.0.1&lt;/ip&gt;
        &lt;port&gt;8002&lt;/port&gt;
        &lt;secret&gt;secret&lt;/secret&gt;
    &lt;/accept&gt;
&lt;/service&gt;</pre></blockquote>

Simply match up the <b>APPLICATION_NAME</b> to the service id, ip, port, and secret with the ComponentConnectionInfo in the transport and you're away laughing, or at least away debugging.<p><a href='http://www.talios.com/console/comments/popup/?f=writing%5Fxmpp%5Ftransports%5Fin%5Fjava'>Leave Comment</a></p>]]></description></item><item><title>MSN Transport with File Transfer</title><guid isPermaLink="true">http://www.talios.com/msn_transport_with_file_transfer.htm</guid><link>http://www.talios.com/msn_transport_with_file_transfer.htm</link><pubDate>Tue, 22 Jun 2004 12:00:00 GMT</pubDate><comments>http://www.talios.com/console/comments/popup/?f=msn%5Ftransport%5Fwith%5Ffile%5Ftransfer</comments><dc:creator>Mark Derricutt</dc:creator><description><![CDATA[Spotted on the jdev mailing list from James Brunton:

<blockquote>Hi. I've just put a new release of MSN-t online with very experimental file transfer support.

Any files that a MSN user sends will be accepted and downloaded to the server that MSN-t runs on. There are a few problems with the way this works now, most notably the fact that all files are accepted, and that all the data is read into ram before being saved to disk.

I'll update this soon to actually send the file to the Jabber user that it's intended for, and then hopefully eventually we'll have two-way file transfer.

Anybody interested in contributing some code would be most welcome, testers aren't needed at the moment, but will be later.

Also, does anybody know of any existing C code that either uses the Jabberd1.4 API, or would be compatibly with it, that does file transfers?

Have fun with it everybody..
http://msn-transport.jabberstudio.org</blockquote>

Looks like it's still early days for full two way transfers, but an excellent move forward in any case.<p><a href='http://www.talios.com/console/comments/popup/?f=msn%5Ftransport%5Fwith%5Ffile%5Ftransfer'>Leave Comment</a></p>]]></description></item></channel></rss>