<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak8GRH0-cSp7ImA9WhVXFUk.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392</id><updated>2012-04-15T21:00:25.359-07:00</updated><category term="goals" /><category term="news" /><category term="progress" /><title>Soashable Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.soashable.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.soashable.com/" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Soashable" /><feedburner:info uri="soashable" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUEFQ3s8eCp7ImA9WxRUFUw.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-2527415095827422916</id><published>2008-11-23T23:56:00.000-08:00</published><updated>2008-11-24T00:00:12.570-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-24T00:00:12.570-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Offline</title><content type="html">Sorry friends, I can't afford to run the service anymore and I don't have time to maintain it.&lt;br /&gt;&lt;br /&gt;If you would like to host the service and take full charge of it, please let me know. The traffic these days is pretty light.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/2527415095827422916/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=2527415095827422916" title="15 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2527415095827422916?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2527415095827422916?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/saohtjyWL24/offline.html" title="Offline" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>15</thr:total><feedburner:origLink>http://blog.soashable.com/2008/11/offline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYBR3c6fip7ImA9WxdaGEw.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-6221352802453400503</id><published>2008-08-26T22:59:00.001-07:00</published><updated>2008-08-26T23:05:56.916-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-26T23:05:56.916-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Ehanced freedom through GitHub</title><content type="html">I finally feel like &lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt; is available enough to move the main Soashable repo to it. &lt;a href="http://github.com"&gt;GitHub&lt;/a&gt; provides excellent service and has become very easy for n00bs to use--hell, I figured it out :)&lt;br /&gt;&lt;br /&gt;I don't feel like spewing off all the Git rhetoric, but it surely does make the healthy action of forking a million times more accessible and I hope to see Soashable and xmpp4js get contributions through forks.&lt;br /&gt;&lt;br /&gt;Here are the links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/harlanji/soashable"&gt;http://github.com/harlanji/soashable&lt;/a&gt;&lt;br /&gt;&lt;a href="http://github.com/harlanji/xmpp4js"&gt;http://github.com/harlanji/xmpp4js&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Best wishes,&lt;br /&gt;&lt;br /&gt;Harlan</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/6221352802453400503/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=6221352802453400503" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6221352802453400503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6221352802453400503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/fTQnWjsF8o4/ehanced-freedom-through-github.html" title="Ehanced freedom through GitHub" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://blog.soashable.com/2008/08/ehanced-freedom-through-github.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQFSX05fip7ImA9WxdaEko.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-2333074582009376247</id><published>2008-08-20T17:17:00.001-07:00</published><updated>2008-08-20T17:25:18.326-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-20T17:25:18.326-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Scaling Back</title><content type="html">I will be scaling back the network for Soashable to one small VPS. Development has basically halted as I've achieved most of what I wanted to accomplish with the service, and I only expect it to slow more during the new school year.&lt;br /&gt;&lt;br /&gt;As an alternative, you may set up your own installation or use an alternative messenger such as &lt;a href="http://meebo.com"&gt;meebo&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/2333074582009376247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=2333074582009376247" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2333074582009376247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2333074582009376247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/jypDk3hA8-A/scaling-back.html" title="Scaling Back" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/08/scaling-back.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINQH0-eCp7ImA9WxdUGEo.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-4223954526769780538</id><published>2008-08-04T11:50:00.000-07:00</published><updated>2008-08-04T12:36:31.350-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-04T12:36:31.350-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Bugs</title><content type="html">Okay, I fixed an apparently log standing, killer bug that was present in IE6 and some new ones that popped up in all IE versions recently. &lt;span style="font-weight: bold;"&gt;Please do not hesitate to report these things.&lt;/span&gt; While I know I should have a quality assurance process in place, this is an Open Source project and I struggle to stay on top of everything as it is; after all, contribution is what Open Source is about.&lt;br /&gt;&lt;br /&gt;I know many of you are not technical and have no idea what Open Source is or means; it means that anyone can contribute, be it through code or bug reports. In Soashable's case, it also means that there is no money funding the project what-so-ever. I pay for the hosting with my own money and do all the work in my spare time without being paid.&lt;br /&gt;&lt;br /&gt;All I ask is that you help me out  when things are broken. I've added a live support button that you can use to reach me at any time.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/4223954526769780538/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=4223954526769780538" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4223954526769780538?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4223954526769780538?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/ShK7w95YrFM/bugs.html" title="Bugs" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/08/bugs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUFRHc_fyp7ImA9WxdVFks.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-6407738188427106527</id><published>2008-07-21T10:22:00.000-07:00</published><updated>2008-07-21T10:43:35.947-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T10:43:35.947-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="goals" /><title>Contributor Wishlist</title><content type="html">Being that Soashable is an Open Source project, there is limited money and manpower to make things happen. If I had contributors to Soashable, I would wish for:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A Logo&lt;/span&gt;&lt;br /&gt;Probably the most hated part of Soashable is the logo. I'm not one for graphic or UI design, and am not capable of doing anything myself to improve the situation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tutorials and High Level Documentation&lt;/span&gt;&lt;br /&gt;I've not done a lot to communicate what Soashable actually is because I've been busy trying to make a solid piece of software. I'm trying to put emphasis there now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Facebook Chat-like Interface&lt;/span&gt;&lt;br /&gt;I've been calling on people I know to implement this since Facebook Chat was announced and sneek-previewed on YouTube. Meebo now has a spitting image of what I hoped to deliver with Soashable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Infrastructure&lt;/span&gt;&lt;br /&gt;It would be nice to not have to pay for Soashable's infrastructure and maintain it myself. I'd rather just code and try out new ideas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Xmmp4Js with Chaining API&lt;/span&gt;&lt;br /&gt;This is a fun research item, but this weekend I had the idea of meshing jQuery-like function chaining with an API for XMPP. The result would look something like this:&lt;br /&gt;&lt;pre&gt;$xmpp.connect("soashable.com").login({node: "harlan", password: "zzzzz", method: "sasl-md5"});&lt;br /&gt;$xmpp.createMessage({to: "h.iverson@soashable.com".asJid(), body: "Sup player"}).addExtension({xtype:"xhtml",body: "Sup &amp;lt;b&amp;gt;player&amp;lt;/b&amp;gt;"}).send();&lt;br /&gt;$xmpp.createMessage({to: "h.iverson@soashable.com".asJid()}).addExtension({xtype:"buddystates",state: "typing"}).send();&lt;br /&gt;&lt;/pre&gt;I'd love to make this wrap and maybe replace the existing inheritance based API. Read &lt;a href="http://peter.michaux.ca/article/5004"&gt;this article&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/6407738188427106527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=6407738188427106527" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6407738188427106527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6407738188427106527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/ljOGaORfOjc/contributor-wishlist.html" title="Contributor Wishlist" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/contributor-wishlist.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQNSHo4fip7ImA9WxdVE08.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-8660616240348045812</id><published>2008-07-17T12:26:00.000-07:00</published><updated>2008-07-17T12:53:19.436-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-17T12:53:19.436-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>New SSL Certificate</title><content type="html">I got a signed SSL certificate from the Jabber Foundation / XMPP Federation. It works in most browsers except Opera, IE, and Safari on Windows for the time being. Apparently there are political issues surrounding getting the CA cert into the Windows trust store, but it should be supported in the near future. Here is an official but partial list of &lt;a href="http://cert.startcom.org/?app=140"&gt;supported browsers&lt;/a&gt;; one not on the list is Safari for Windows.&lt;br /&gt;&lt;br /&gt;For those who are affected by this, here is how to add the root CA to your trust store and make secure connections work: &lt;a href="http://soashable.com/StartcomFreeSSL.pdf"&gt;PDF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Big thanks to the Jabber Foundation for the the help!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/8660616240348045812/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=8660616240348045812" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/8660616240348045812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/8660616240348045812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/WnJX64kV_Jw/new-ssl-certificate.html" title="New SSL Certificate" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/new-ssl-certificate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEDSH4yfip7ImA9WxdVEUU.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-4568845500705163376</id><published>2008-07-15T21:28:00.000-07:00</published><updated>2008-07-15T21:47:59.096-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-15T21:47:59.096-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Userplane</title><content type="html">Just a shout out to &lt;a href="http://userplane.com/"&gt;Userplane&lt;/a&gt;; they have been getting a lot of good press lately. I finally took the time to check out their site in depth. They are offering some nice products similar to the direction I am working toward with Soashable. Their offerings are closed source, which is of course their right. Soashable will always be Open Source and I imagine playing catch-up with offerings from other companies unless more people get involved with the project.&lt;br /&gt;&lt;br /&gt;Here are a few of their interesting products (headers are links):&lt;br /&gt;&lt;a href="http://www.userplane.com/webchat/"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Web Chat&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a simple, free embedded chat room similar to the old idea of tagboards. In some ways it is  also like a light version of the MeeboMe widget.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.userplane.com/webmessenger/"&gt;Web Messenger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the product that has been getting the great reviews lately. It is similar to the MeeboMe widget crossed with Facebook chat. It is free with ad support, and reasonably priced otherwise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.userplane.com/desktop/"&gt;Desktop&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;This is an interesting idea and actually one of the next ideas I was going to suggest with the &lt;a href="http://www.blogger.com/2008/07/cross-domain-xmpp4js.html"&gt;recently added support for x-domain connections&lt;/a&gt; to Xmpp4Js. There is no free version of this product.&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/4568845500705163376/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=4568845500705163376" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4568845500705163376?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4568845500705163376?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/MnUli-HEJjo/userplane.html" title="Userplane" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/userplane.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGQno6fyp7ImA9WxdWGUQ.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-2486410198053056312</id><published>2008-07-13T18:23:00.001-07:00</published><updated>2008-07-13T18:37:03.417-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-13T18:37:03.417-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Robot Olympics: Anti-Spim Device for Soashable</title><content type="html">Soashable has been attacked by spimmers (IM spammers) twice now. The first time I was short on time, and a quick fix was to close down regular XMPP ports. Now that Soashable is essentially my full time unjob, I have some time to tinker.&lt;br /&gt;&lt;br /&gt;I implemented a bare bones anti-spim device. It is loosely based on &lt;a href="http://www.xmpp.org/extensions/xep-0158.html"&gt;XEP-0158&lt;/a&gt;. Each time you start a new conversation with somebody you must complete a text-based challenge provided by &lt;a href="http://textcaptcha.com/"&gt;textcaptcha.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_eS8rwzJcHas/SHqqyXNXHyI/AAAAAAAAAD0/m78Sf3jAu_U/s1600-h/anti-spim.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_eS8rwzJcHas/SHqqyXNXHyI/AAAAAAAAAD0/m78Sf3jAu_U/s320/anti-spim.png" alt="" id="BLOGGER_PHOTO_ID_5222674500089749282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I plan to fully support legacy and non-legacy qa and possibly hashcash mechanisms. I will thus improve the GUI around completing challenges, so it is its own dialog or panel in the IM window. It would be possible to implement image captcha (ocr), but it doesn't seem worth while right now. I will also take ideas from &lt;a href="http://www.xmpp.org/extensions/xep-0159.html"&gt;XEP-0159&lt;/a&gt; to more intelligently run tests (eg. no tests if you are in the remote person's roster, etc).&lt;br /&gt;&lt;br /&gt;Source code for the Openfire plugin is available in SVN &lt;a href="http://soashable.googlecode.com/svn/trunk/robot-olympics/"&gt;here&lt;/a&gt; (&lt;a href="http://code.google.com/p/soashable/source/browse/trunk/robot-olympics"&gt;browse&lt;/a&gt;),  and I will wrap it up for a stand alone release at some point.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/2486410198053056312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=2486410198053056312" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2486410198053056312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2486410198053056312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/aVrwdN70kWs/robot-olympics-anti-spim-device-for.html" title="Robot Olympics: Anti-Spim Device for Soashable" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_eS8rwzJcHas/SHqqyXNXHyI/AAAAAAAAAD0/m78Sf3jAu_U/s72-c/anti-spim.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/robot-olympics-anti-spim-device-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIGRH08cSp7ImA9WxdWFEs.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-3153942913099858880</id><published>2008-07-07T15:03:00.001-07:00</published><updated>2008-07-07T15:08:45.379-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-07T15:08:45.379-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Removed ExtJS Dependency</title><content type="html">Due to licensing issues, I have been meaning to get away from using ExtJS for a while. The GPL which ExtJS is licensed under is not compatible with LGPL and Apache, which Xmpp4Js is licensed under. I finally managed it today, as of revision 734. Much of the code was pulled from YUI, which is under the BSD license. &lt;br /&gt;&lt;br /&gt;Something that I plan to do sometime is create a changeable adapter layer for Xmpp4Js.&lt;br /&gt;&lt;br /&gt;The Soashable application will continue using ExtJS for the foreseeable future, being that it is itself licensed under the GPL.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/3153942913099858880/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=3153942913099858880" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/3153942913099858880?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/3153942913099858880?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/-ZwTClnKlA8/removed-extjs-dependency.html" title="Removed ExtJS Dependency" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/removed-extjs-dependency.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4FRH8ycSp7ImA9WxdWE08.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-2516206666221661299</id><published>2008-07-05T11:44:00.000-07:00</published><updated>2008-07-05T22:58:35.199-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-05T22:58:35.199-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Cross-Domain Xmpp4Js</title><content type="html">I started implementing cross-domain functionality for &lt;a href="http://xmpp4js.sourceforge.net/"&gt;xmpp4js&lt;/a&gt;. This will remove the requirement of running your own BOSH Servlet/proxy on the same domain as a Soashable installation. Instead, clients can now connect directly to the BOSH implementation of Openfire or ejabberd with no special proxy or Servlet.&lt;br /&gt;&lt;br /&gt;This is accomplished by implementing the &lt;a href="http://www.xmpp.org/extensions/xep-0124.html#script"&gt;Alternative Script Syntax&lt;/a&gt; section of XEP-0124, which I did not know existed before =). The changes are in trunk, but in the spirit of Agile they are implemented in a way that works but is not elegant; I'll be working on that soon. It works in all major browers (though it limps in Opera for some reason).&lt;br /&gt;&lt;br /&gt;There is an online demo &lt;a href="http://dev.soashable.com/simpleclient.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The biggest problem I've had is with "invalid" or "self-signed" SSL certificate warnings, which do not pop-up a warning in Safari or FF3 like they do in FF2. I am working on getting a real certificate.&lt;br /&gt;&lt;br /&gt;Another interesting problem I faced was connections closing when I expanded the DOM element for the inserted &amp;lt;script&amp;gt; tag in Firebug's Inspector view. It seems that this prematurely closed the HTTP polling connection and interrupted the entire session.&lt;br /&gt;&lt;br /&gt;It's become apparent that I need to work on protocol error handling.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/2516206666221661299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=2516206666221661299" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2516206666221661299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2516206666221661299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/RTDWayX7F1g/cross-domain-xmpp4js.html" title="Cross-Domain Xmpp4Js" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.soashable.com/2008/07/cross-domain-xmpp4js.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUASXw6eyp7ImA9WxdSEEU.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-6580770625850981699</id><published>2008-05-17T20:08:00.000-07:00</published><updated>2008-05-17T20:10:48.213-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-17T20:10:48.213-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Continuous Integration</title><content type="html">I put up a Continuous Integration server: &lt;a href="http://soashable.com/hudson/"&gt;http://soashable.com/hudson/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are currently some shortcomings, biggest thing being that JsUnit tests have to be disabled. Does anyone have experience setting that up headless?</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/6580770625850981699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=6580770625850981699" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6580770625850981699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6580770625850981699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/BW3yoDVjqzg/continuous-integration.html" title="Continuous Integration" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/continuous-integration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04DRX4zfip7ImA9WxdSEEk.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-8747164944042784266</id><published>2008-05-17T10:27:00.000-07:00</published><updated>2008-05-17T10:39:34.086-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-17T10:39:34.086-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>New Feature: Outside Port Opening via UPnp</title><content type="html">I was out of town this week and I was thinking it would be nice to have the ability to very easily open outside ports for people who don't know that NAT is not some kind of bug. Mostly I just wanted to play with Universal Plug-n-Play (UPnp), since I knew nothing about it.&lt;br /&gt;&lt;br /&gt;I found a UPnp library for Java called, surprise, &lt;a href="http://www.sbbi.net/site/upnp/"&gt;upnplib&lt;/a&gt;, and integrated it into a Servlet Context Listener. It takes 2 options in the web.xml file, upnp.enabled and upnp.port. The port should be auto discovered, but currently is not. One thing at a time. In the mean time, set it to 8080 or 8084 if you're using NetBeans, and the port will be open to the public when the application starts and closed when it exits.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/8747164944042784266/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=8747164944042784266" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/8747164944042784266?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/8747164944042784266?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/j5CpHpaFZUE/new-feature-outside-port-opening-via.html" title="New Feature: Outside Port Opening via UPnp" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/new-feature-outside-port-opening-via.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UFRnY8cCp7ImA9WxdTGUs.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-7007647142892009921</id><published>2008-05-16T11:51:00.001-07:00</published><updated>2008-05-16T12:13:37.878-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-16T12:13:37.878-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>MinneBar, ExtJs</title><content type="html">It's been a busy week, but there were some interesting developments:&lt;br /&gt;&lt;br /&gt;I gave what amounted to a QA session about XMPP and COMET technologies at MinneBar last Saturday. A fellow I know named Chris Barber pointed out a fundamental flaw in Soashable's design (zomg); and that is that the browser limit of 2 connections to a given host is effective across multiple tabs.&lt;br /&gt;&lt;br /&gt;The issue can be addressed within BOSH by ghetto rigging some inter-frame communication and using BOSH's ability to open multiple streams from within one connection. But do I want to do that? &lt;span style="font-style: italic;"&gt;Hell no&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Another way it could possibly be addressed is by using a random subdomain for each Soashable client. That is, soashable.com redirects or has an iframe to www[random].soashable.com.&lt;br /&gt;&lt;br /&gt;Another recent development is clarification on people's warnings to not use EXTjs, &lt;a href="http://pablotron.org/?cid=1556"&gt;here&lt;/a&gt;. It's time to port away from it and toward Dojo. That will provide a very tedious task, but will allow me to go back and architect (not re... that would imply it was done the first time ;) Soashable in a nice way, now that I understand the problem space better.&lt;br /&gt;&lt;br /&gt;An alternative would be to use a RIA technology. Oh, my!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/7007647142892009921/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=7007647142892009921" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7007647142892009921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7007647142892009921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/8hfNteu5fME/minnebar-extjs.html" title="MinneBar, ExtJs" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/minnebar-extjs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEMR3c4fip7ImA9WxdTEU4.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-6524590945599252729</id><published>2008-05-06T22:36:00.000-07:00</published><updated>2008-05-06T22:38:06.936-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-06T22:38:06.936-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Added new message notifications</title><content type="html">I added new message notifications. It will "flash" the title bar with the number of new messages, and reset when you've sent a message.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/6524590945599252729/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=6524590945599252729" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6524590945599252729?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/6524590945599252729?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/H4zIVpwPhls/added-new-message-notifications.html" title="Added new message notifications" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/added-new-message-notifications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQDRX86eyp7ImA9WxdTEEk.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-1895416666838177281</id><published>2008-05-05T21:28:00.000-07:00</published><updated>2008-05-05T21:32:54.113-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-05T21:32:54.113-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Removed debug output from chat</title><content type="html">I made a bit of time to remove the annoying debug output in chat windows (the biggest complaint I've heard by far), and upgraded the server software to boot.&lt;br /&gt;&lt;br /&gt;&lt;span class="text"&gt;I am listening! But with only one busy developer doing this as a side project it's hard to keep up.&lt;br /&gt;&lt;br /&gt;Thanks for your patience! I promise it will pay off very soon :)&lt;/span&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/1895416666838177281/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=1895416666838177281" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/1895416666838177281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/1895416666838177281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/--bUeTSHGMM/removed-debug-output-from-chat.html" title="Removed debug output from chat" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/removed-debug-output-from-chat.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMBQn8_eCp7ImA9WxZaF00.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-7041834963843800063</id><published>2008-05-01T21:24:00.000-07:00</published><updated>2008-05-01T21:27:33.140-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-01T21:27:33.140-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>More Server</title><content type="html">We just trippled Soashable's server capacity, so hopefully things speed up a bit.&lt;br /&gt;&lt;br /&gt;Cheers!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/7041834963843800063/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=7041834963843800063" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7041834963843800063?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7041834963843800063?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/NCgPdzxip7o/more-server.html" title="More Server" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/05/more-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYBQ349fCp7ImA9WxZVEUw.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-1973966563341242190</id><published>2008-03-21T06:10:00.000-07:00</published><updated>2008-03-21T08:25:52.064-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-21T08:25:52.064-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Thanks</title><content type="html">Thanks to everyone for all the positive feedback over the past few days. I'm happy to see that Soashable articles have been translated to at least 5 different languages, and many of the comments contain smiley faces and exclamation points :)&lt;br /&gt;&lt;br /&gt;I'm extremely busy with non-Soashable related work right now and am not able to do much with it, but a good friend of mine, Matt, has stepped up to the plate and is helping with the scalability issue and giving some good nuggets for developer documentation. Soashable totally wasn't ready for this kind of exposure yet, but it rocks to get it, thanks.&lt;br /&gt;&lt;br /&gt;I've received a lot of e-mail from a lot of people, and I'm doing my best to respond to it all in a timely fashion. No details yet, but it sounds like some interesting uses of Soashable, and possibly partnerships, could come about. I'm always happy to start a dialog with anyone, so feel free to say hello.</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/1973966563341242190/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=1973966563341242190" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/1973966563341242190?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/1973966563341242190?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/hwUuTHjNx7g/thanks.html" title="Thanks" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.soashable.com/2008/03/thanks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8BQXY9fSp7ImA9WxZQE0s.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-3249128235348326764</id><published>2008-02-18T11:41:00.000-08:00</published><updated>2008-02-18T11:44:10.865-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-18T11:44:10.865-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Buddylist</title><content type="html">I cranked out some buddylist code that works as expected and wrapped some tests around it all. It's live on &lt;a href="https://soashable.com/"&gt;https://soashable.com&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_eS8rwzJcHas/R7nfsevp_cI/AAAAAAAAACk/dPffIOaxMgk/s1600-h/soashable-bl-beta.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_eS8rwzJcHas/R7nfsevp_cI/AAAAAAAAACk/dPffIOaxMgk/s320/soashable-bl-beta.png" alt="" id="BLOGGER_PHOTO_ID_5168408002644540866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The next priority as far as development effort goes, is IE compatibility. Then Soashable will be ready for a limited beta and some exposure :)</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/3249128235348326764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=3249128235348326764" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/3249128235348326764?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/3249128235348326764?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/xV5g7sLSyM0/buddylist.html" title="Buddylist" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_eS8rwzJcHas/R7nfsevp_cI/AAAAAAAAACk/dPffIOaxMgk/s72-c/soashable-bl-beta.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/buddylist.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ADSX88eip7ImA9WxZQEUo.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-2329792975973070190</id><published>2008-02-16T08:34:00.001-08:00</published><updated>2008-02-16T08:36:18.172-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-16T08:36:18.172-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Weekend Skipped</title><content type="html">I don't think I'll have time to make progress this weekend :(&lt;br /&gt;&lt;br /&gt;Over the course of the week, I've put a good amount of thought into how to restructure the roster code; that will definitely be the next step, whenever I have time.&lt;br /&gt;&lt;br /&gt;Cheers!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/2329792975973070190/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=2329792975973070190" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2329792975973070190?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/2329792975973070190?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/T4tT8S7XhGk/weekend-skipped.html" title="Weekend Skipped" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/weekend-skipped.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMBQnc8fSp7ImA9WxZRF00.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-880668590654063658</id><published>2008-02-10T20:24:00.001-08:00</published><updated>2008-02-10T20:34:13.975-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-10T20:34:13.975-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><title>Always One Step Away</title><content type="html">It feels like this project is always one step away from the magical Beta. It's not quite there yet, but I removed the Extreme Alpha warning, anyway. I didn't get to everything I wanted to do this weekend, but I did manage to &lt;a href="http://code.google.com/p/soashable/issues/detail?id=37&amp;amp;can=1"&gt;get some documentation together&lt;/a&gt;, set up an &lt;a href="http://code.google.com/p/soashable/issues/detail?id=6&amp;amp;can=1"&gt;SSL certificate&lt;/a&gt;, get &lt;a href="http://code.google.com/p/soashable/issues/detail?id=42&amp;amp;can=1"&gt;popout functionality&lt;/a&gt; semi-working, and fix an issue where &lt;a href="http://code.google.com/p/soashable/issues/detail?id=43&amp;amp;can=1"&gt;idle connections die&lt;/a&gt; after a certain amount of time. All of this is live on &lt;a href="https://soashable.com"&gt;https://soashable.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think the next high priority item is to get the roster up to snuff: show presence and status message, and separate offline buddies. And of course, continued work on documentation.&lt;br /&gt;&lt;br /&gt;Work might slow down in the coming weeks, because I got a second job and I need to search for an apartment.&lt;br /&gt;&lt;br /&gt;Cheers!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/880668590654063658/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=880668590654063658" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/880668590654063658?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/880668590654063658?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/gxdXK7MGLFQ/always-one-step-away.html" title="Always One Step Away" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/always-one-step-away.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIHRXY8cSp7ImA9WxZRFUU.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-7152878694185941450</id><published>2008-02-09T10:40:00.000-08:00</published><updated>2008-02-09T10:42:14.879-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-09T10:42:14.879-08:00</app:edited><title>Documentation</title><content type="html">I started putting together some developer documentation, as well as general info on the project:&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://labs.devspan.com/soashable-web"&gt;&lt;br /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://labs.devspan.com/soashable-web"&gt;http://labs.devspan.com/soashable-web&lt;/a&gt; (this will move to sf.net as soon as the project is approved)&lt;/li&gt;&lt;li&gt;&lt;a href="http://xmpp4js.sf.net"&gt;http://xmpp4js.sf.net&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/7152878694185941450/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=7152878694185941450" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7152878694185941450?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/7152878694185941450?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/NNK4OBTuZwA/documentation.html" title="Documentation" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/documentation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABRnY5eSp7ImA9WxZRFUw.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-4376216597014957547</id><published>2008-02-08T14:58:00.001-08:00</published><updated>2008-02-08T15:02:37.821-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-08T15:02:37.821-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="goals" /><title>Weekend Objectives</title><content type="html">Now that school is started, I have to keep my weekend ambition small. Here are a few things I plan to do for Soashable this weekend:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create an informational page, including a "Getting Started Guide"&lt;/li&gt;&lt;li&gt;Polish UI functionality around Buddylist and IMs&lt;/li&gt;&lt;li&gt;Set up SSL&lt;/li&gt;&lt;li&gt;Add chat state notifications (typing, signed off/on, went idle)&lt;/li&gt;&lt;li&gt;Possibly rewrite or tweak RosterItemManager and PresenceManager code&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/4376216597014957547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=4376216597014957547" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4376216597014957547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4376216597014957547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/OC9Jdr8ZefY/weekend-objectives.html" title="Weekend Objectives" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/weekend-objectives.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcNRH4_fCp7ImA9WxZSGU4.&quot;"><id>tag:blogger.com,1999:blog-1447647836499377392.post-4544000439091932342</id><published>2008-02-01T22:59:00.000-08:00</published><updated>2008-02-01T23:41:35.044-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-01T23:41:35.044-08:00</app:edited><title>Soashable Blog</title><content type="html">Blogging is cool.&lt;br /&gt;&lt;br /&gt;Sometimes I write long blogs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sometimes I write tall blogs, too!</content><link rel="replies" type="application/atom+xml" href="http://blog.soashable.com/feeds/4544000439091932342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1447647836499377392&amp;postID=4544000439091932342" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4544000439091932342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1447647836499377392/posts/default/4544000439091932342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Soashable/~3/HeGs1UaNO2g/soashable-blog.html" title="Soashable Blog" /><author><name>Harlan Iverson</name><uri>http://www.blogger.com/profile/14403505969348821916</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.soashable.com/2008/02/soashable-blog.html</feedburner:origLink></entry></feed>
