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

<channel>
	<title>Bradley Holt &#187; XMPP</title>
	<atom:link href="http://bradley-holt.com/tag/xmpp/feed/" rel="self" type="application/rss+xml" />
	<link>http://bradley-holt.com</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 01:04:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>TEK·X Day Two</title>
		<link>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/</link>
		<comments>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/#comments</comments>
		<pubDate>Fri, 21 May 2010 04:50:26 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[Software Deployment]]></category>
		<category><![CDATA[SPL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tekX]]></category>
		<category><![CDATA[tekX10]]></category>
		<category><![CDATA[Xdebug]]></category>
		<category><![CDATA[XMPP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/?p=683</guid>
		<description><![CDATA[It&#8217;s hard to believe tomorrow is the last day of TEK·X. Where did the time go? Today started with Matthew Schmidt&#8217;s 10 Developer Trends in 2010. He talked about agile development, browser standards, AJAX, security vulnerabilities, RIAs, touch interfaces, key/value stores, version control, cloud computing, and dynamic languages. While not a bad keynote, the topics [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to believe tomorrow is the last day of <a href="http://tek.phparch.com/">TEK·X</a>. Where did the time go? Today started with Matthew Schmidt&#8217;s 10 Developer Trends in 2010. He talked about agile development, browser standards, AJAX, security vulnerabilities, RIAs, touch interfaces, key/value stores, version control, cloud computing, and dynamic languages. While not a bad keynote, the topics seemed fairly basic and obvious given the audience.</p>
<p>Next up for me was Derick Rethans&#8217; <a href="http://xdebug.org/">Xdebug</a> talk. Xdebug is an extremely useful tool for PHP developers. I&#8217;ve used its <a href="http://xdebug.org/docs/stack_trace">stack trace</a> feature as well as its <a href="http://www.phpunit.de/manual/3.4/en/code-coverage-analysis.html">code coverage analysis via PHPUnit</a>. I&#8217;ve also dabbled with its <a href="http://xdebug.org/docs/profiler">profiling</a> capabilities. The session introduced me to several other Xdebug features with which I&#8217;d like to experiment.</p>
<p>After that I had the pleasure of seeing Matthew Turland&#8217;s talk on <a href="http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/">New SPL Features in PHP 5.3</a>. New SPL data structures in PHP 5.3 include stacks, queues, heaps, priority queues, and sets. Matthew provided test code that compared the performance and memory usage of each these new data structures to that of using PHP&#8217;s array functionality.</p>
<p>I skipped the first afternoon session to take part in the Hack Track which happened to coincide with Zend Framework&#8217;s <a href="http://devzone.zend.com/article/12150">May Bug Hunt Days</a>. I was granted commit access and directly committed my first bug fix, a small change to <a href="http://framework.zend.com/issues/browse/ZF-9845">make HTTP headers case-insensitive</a>.</p>
<p>Others stuck around to fix more bugs while I went to check out Bill Karwin&#8217;s <a href="http://www.slideshare.net/billkarwin/models-for-hierarchical-data">Models for Hierarchical Data with SQL and PHP</a>. Examples of hierarchical data include categories/subcategories, bill of materials, and threaded discussions. Bill talked about four main approaches to storing hierarchical data in SQL databases: adjacency list, path enumeration, nested sets, and usage of a closure table.</p>
<p>The <em>adjacency list</em> is a naive approach that almost everyone tries first. Basically, each entry knows its immediate parent. The problem with this approach is that querying deep trees can be very inefficient involving many joins. <em>Path enumeration</em> involves storing an enumerated chain of ancestors in each entry. This can be very efficient and take advantage of indexing. However, there is no referential integrity with this approach. The <em>nested set</em> approach seemed a bit complicated. I don&#8217;t feel I can explain it properly here, so you&#8217;ll have to check out Bill&#8217;s slides if you&#8217;re interested in how this works. The <em>closure table</em> approach made the most sense to me and didn&#8217;t seem overly complicated. Not only do you store each entry, but you also store every path including those from the parent node to each descendant, those from each ancestor to its child node, as well as a reflexive reference from the node to itself.</p>
<p>My final session of the day was Travis Swicegood&#8217;s Building Real-Time Applications with XMPP, the <a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol">Extensible Messaging and Presence Protocol</a>. If you&#8217;ve use Google Talk then you&#8217;ve used XMPP. As a web developer, the request and response pattern in HTTP is ingrained into my thinking. However, XMPP is a very different creature in that it keeps a socket open during what can be a lengthy exchange of messages. While I don&#8217;t think HTTP is going away anytime soon, real-time applications involving potentially large numbers of publishers and subscribers (e.g. Twitter) are becoming more prevalent and XMPP is well suited for this environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2010/05/tek%c2%b7x-day-two/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Proprietary Skype</title>
		<link>http://bradley-holt.com/2008/10/proprietary-skype/</link>
		<comments>http://bradley-holt.com/2008/10/proprietary-skype/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 13:13:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[Open Standards]]></category>
		<category><![CDATA[SIP]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/10/proprietary-skype/</guid>
		<description><![CDATA[Peter Saint-Andre (Executive Director of the XMPP Standards Foundation) has pointed out the Free Software Foundation&#8217;s recent addition of a &#8220;Free software replacement for Skype&#8221; to its list of High Priority Free Software Projects: Skype is a proprietary Voice-over-IP program that uses a proprietary protocol. Skype is seducing free software users into using proprietary software, [...]]]></description>
			<content:encoded><![CDATA[<p>Peter Saint-Andre (<a href="http://xmpp.org/xsf/people/stpeter.shtml">Executive Director</a> of the XMPP Standards Foundation) has <a href="https://stpeter.im/?p=2331">pointed out</a> the Free Software Foundation&#8217;s recent addition of a &#8220;<a href="http://www.fsf.org/campaigns/priority.html#skypereplacement">Free software replacement for Skype</a>&#8221; to its list of High Priority Free Software Projects:<br />
<blockquote>Skype is a proprietary Voice-over-IP program that uses a proprietary protocol. Skype is seducing free software users into using proprietary software, often two users at a time. We do not want to encourage the creation of a Skype compatible client, but instead, we want to encourage you to create, contribute to, or promote the use of free software alternatives to Skype, such as Ekiga, and to encourage to adoption and use of free VoIP, video, and chat protocols such as SIP and XMPP/Jingle.</p></blockquote>
<p>I have long been annoyed by Skype&#8217;s closed platform and have refused to use it despite its popularity. Skype users can only communicate with other Skype users (or <a href="http://en.wikipedia.org/wiki/Public_switched_telephone_network">PSTN</a> users through SkypeOut) because they do not use an open standard and do not federate with other VoIP providers. This destroys much of the value proposition of using VoIP and ultimately reduces VoIP (in people&#8217;s minds) to simply &#8220;free/cheap phone calls.&#8221; In other words, Skype is helping to hold back an entire industry from innovating.</p>
<p>At <a href="http://www.foundline.com/">Found Line</a>, we use two open VoIP standards: XMPP and SIP. <a href="http://www.google.com/talk/">Google Talk</a> provides our XMPP service (through <a href="http://www.google.com/a/">Google Apps</a>) and is used mainly for internal communications. However, Google Talk is <a href="http://googletalk.blogspot.com/2006/01/xmpp-federation.html">connected to the public XMPP network</a> so, just like with email, we can communicate with anyone else using the same standards. <a href="http://www.junctionnetworks.com/">Junction Networks</a> provides us with very reliable SIP hosting and allows us to communicate (at no cost) with anyone on any public SIP network. They also provide us with a PSTN gateway (so that we can make &#8220;normal&#8221; phone calls) and a hosted PBX (auto attendant, unlimited extensions, etc.) all at a very reasonable price.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/10/proprietary-skype/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GTalk Profile Hits 10,000 Profiles</title>
		<link>http://bradley-holt.com/2008/05/gtalk-profile-hits-10000-profiles/</link>
		<comments>http://bradley-holt.com/2008/05/gtalk-profile-hits-10000-profiles/#comments</comments>
		<pubDate>Tue, 13 May 2008 11:35:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GTalk Profile]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/05/gtalk-profile-hits-10000-profiles/</guid>
		<description><![CDATA[Back in August of 2005 Google launched its instant messaging platform called Google Talk. One feature that Google did not provide was a way for Google Talk users to connect with other Google Talk users who they didn&#8217;t already know. Within a week of the Google Talk launch Jason and I had rolled out the [...]]]></description>
			<content:encoded><![CDATA[<p>Back in August of 2005 Google launched its instant messaging platform called <a href="http://www.google.com/talk/">Google Talk</a>. One feature that Google did not provide was a way for Google Talk users to connect with other Google Talk users who they didn&#8217;t already know. Within a week of the Google Talk launch Jason and I had rolled out the first version of <a href="http://www.gtalkprofile.com/">GTalk Profile</a>, a website with the purpose of helping Google Talk users connect with other Google Talk users from around the world. Users can search by location and interests and their contact information is kept private unless they choose to share it with another user. Today the 10,000 profiles mark was hit!</p>
<p>Unfortunately Jason and I have been too busy to maintain GTalk Profile the way we would like. We plan to streamline the core experience and there are many new features we&#8217;d like to add. The 10,000 profiles mark, while not representative of a huge number of users, is a significant milestone because it shows a real interest in what GTalk Profile has to offer. Our goal is to dedicate more resources to the website and treat it like any other project that a client may come to us with.</p>
<p>One of the great things about Google Talk is that it&#8217;s built on the open <a href="http://www.jabber.org/">Jabber/XMPP</a> standards (GTalk Profile is actually a website for <em>any</em> Jabber/XMPP user, not just Google Talk users). This means that other organizations using these standards can choose to federate with Google Talk (and amongst themselves). Imagine if you could only send email to people using the same email provider as yourself. This is the current state of instant messaging and the Jabber/XMPP standards, with Google&#8217;s help, are slowly opening the world of instant messaging. Now if only some of the other major instant messaging players like AOL Instant Messenger, Windows Live Messenger and Yahoo! Messenger were to start using these standards and federating with others like good citizens of the Internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/05/gtalk-profile-hits-10000-profiles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

