<?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"
	>

<channel>
	<title>Potent Flows</title>
	<atom:link href="http://skyfallsin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://skyfallsin.com</link>
	<description>thoughts on code, food and life hacking.</description>
	<pubDate>Wed, 25 Mar 2009 23:48:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Present.ly and XMPP</title>
		<link>http://skyfallsin.com/2009/03/25/presently-and-xmpp/</link>
		<comments>http://skyfallsin.com/2009/03/25/presently-and-xmpp/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 23:48:49 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[code]]></category>

		<category><![CDATA[ruby/rails]]></category>

		<category><![CDATA[xmpp]]></category>

		<category><![CDATA[bosh]]></category>

		<category><![CDATA[present.ly]]></category>

		<category><![CDATA[presently.com]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=44</guid>
		<description><![CDATA[Along with the launch of Presently.com, we quietly revamped the backend architecture of Present.ly to better use the eXtensible Messaging and Presence Protocol (XMPP) as the standard message delivery system. You may have noticed near-instant updates on the new web interface — this is primarily due to the super-fast messaging features of eJabberd, the XMPP [...]]]></description>
			<content:encoded><![CDATA[<p>Along with the launch of <a href="http://www.presently.com">Presently.com</a>, we quietly revamped the backend architecture of <a href="http://www.presentlyapp.com">Present.ly</a> to better use the <a href="http://www.xmpp.org">eXtensible Messaging and Presence Protocol</a> (<span class="caps">XMPP</span>) as the standard message delivery system. You may have noticed near-instant updates on the new web interface — this is primarily due to the super-fast messaging features of <a href="http://www.ejabberd.im">eJabberd</a>, the <span class="caps">XMPP</span> server that Present.ly runs on.</p>
<p><center><img alt="" src="http://img.skitch.com/20090325-k38nh488wq787d282fxkberdu4.jpg"/></center>
<p><br/></p>
<p>We believe that <span class="caps">XMPP</span> will play a bigger role powering dynamic, real-time web applications in the coming years and have previously blogged as such. While most people in the industry know of <span class="caps">XMPP</span> only in its instant messaging role, the fact that there are <a href="http://xmpp.org/extensions">fully fleshed out specifications</a>  for most common enterprise messaging problems as subsets of the <span class="caps">XMPP</span> specification is often sadly overlooked.</p>
<p>So what does this mean for Present.ly? In the short term, as you may have already noticed, you will see a major speed improvement posting and receiving updates. In the long term, we are planning on making our user interface a lot more dynamic — details are top-secret at the moment. We are also working on moving over our notification systems completely to <span class="caps">XMPP</span>, which will result in you receiving update notifications more rapidly over all your devices. As we grow, we’ll be leveraging eJabberd’s high scalability (due to it being written in <a href="http://www.erlang.org">Erlang</a>) to provide a seamless, quick user experience.</p>
<p>We are also actively contributing back to the open-source <span class="caps">XMPP</span> community. <a href="http://www.intridea.com/2009/3/1/rubybosh-an-xmpp-bosh-session-initializer?blog=company">Read about ruby_bosh</a>, the first Ruby library to handle <span class="caps">BOSH</span> sessioning in your Ruby applications. We have also made various stability and speed fixes to the <a href="http://github.com/yong/stropheruby/tree/master">stropheruby</a> library, which is based on the libstrophe C library (announcement soon). Both are available on Github for general use. Intridea’s proud to be a part of the <span class="caps">XMPP</span> community, and will be heavily using and promoting the technology with both our products and services.</p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2009/03/25/presently-and-xmpp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ruby_bosh - an XMPP BOSH session initializer</title>
		<link>http://skyfallsin.com/2009/03/01/ruby_bosh-an-xmpp-bosh-session-initializer/</link>
		<comments>http://skyfallsin.com/2009/03/01/ruby_bosh-an-xmpp-bosh-session-initializer/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 03:25:04 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[code]]></category>

		<category><![CDATA[ruby/rails]]></category>

		<category><![CDATA[xmpp]]></category>

		<category><![CDATA[bosh]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[ruby_bosh]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=40</guid>
		<description><![CDATA[Hot on the heels of my post on why XMPP will be huge, here&#8217;s a ruby library to pre-initialize BOSH sessions in your Ruby web applications. This feature allows you to by-pass exposing your user&#8217;s XMPP credentials in your HTML views.
The process follows as such:

Start your XMPP server and create an account for your web [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of my post on <a href="http://skyfallsin.com/2009/02/15/why-xmpp-will-be-huge-very-soon/">why XMPP will be huge</a>, here&#8217;s a ruby library to pre-initialize <a href="http://xmpp.org/extensions/xep-0124.html">BOSH</a> sessions in your Ruby web applications. This feature allows you to by-pass exposing your user&#8217;s XMPP credentials in your HTML views.</p>
<p>The process follows as such:</p>
<ol>
<li>Start your XMPP server and create an account for your web application user.</li>
<li>In your Ruby application, use ruby_bosh to initialize a new BOSH session using the user&#8217;s xmpp username and password.</li>
<li>Pass the identifiers returned from ruby_bosh to your template engine as variables.</li>
<li>Bind the template variables to Javascript variables.</li>
<li>Use a Javascript-based BOSH connector (like <a href="http://code.stanziq.com/strophe/">Strophe</a>) to attach to the pre-existing session using the identifiers.</li>
</ol>
<p>There are many XMPP servers and BOSH connection managers out there, but as of now this library has only been tested with eJabberd 1.2+. Please feel free to fork and submit a pull request if you&#8217;d like to contribute.</p>
<p>The plugins and documentation can be found at:<a href="http://www.github.com/skyfallsin/ruby_bosh"> http://www.github.com/skyfallsin/ruby_bosh</a></p>
<p>Jack Moffit&#8217;s written a <a href="http://metajack.im/2008/10/03/getting-attached-to-strophe/">Django/Python example here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2009/03/01/ruby_bosh-an-xmpp-bosh-session-initializer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why XMPP will be huge very soon</title>
		<link>http://skyfallsin.com/2009/02/15/why-xmpp-will-be-huge-very-soon/</link>
		<comments>http://skyfallsin.com/2009/02/15/why-xmpp-will-be-huge-very-soon/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 07:39:21 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[code]]></category>

		<category><![CDATA[prophecy]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=31</guid>
		<description><![CDATA[Here&#8217;s why, in no particular order, I think the Extensible Messaging and Presence Protocol (XMPP) will rock some worlds soon:

Real-time web applications are in high demand, and XMPP fits the requirements perfectly &#8212; it excels in rapid peer-to-peer or broadcast messaging.
Response times are crucial for the new breed of web applications, and polling-based solutions are [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s why, in no particular order, I think the <a href="http://www.xmpp.org">Extensible Messaging and Presence Protocol (XMPP)</a> will rock some worlds soon:</p>
<ul>
<li>Real-time web applications are in high demand, and XMPP fits the requirements perfectly &#8212; it excels in rapid peer-to-peer or broadcast messaging.</li>
<li><a href="http://www.marketwire.com/press-release/Aberdeen-Group-NYSE-HHS-935453.html">Response times are crucial for the new breed of web applications</a>, and polling-based solutions are very suboptimal. Enter XMPP and <a href="http://xmpp.org/extensions/xep-0124.html">BOSH</a>.</li>
<li>The maturing of the <a href="http://xmpp.org/extensions/xep-0124.html">BOSH</a> protocol, coupled with the resurgence of excellent Javascript libraries have, IMHO, opened up extremely cool new worlds via the browser. <a href="http://code.stanziq.com/strophe/">Strophe</a>, in itself, is a treasure.</li>
<li><a href="http://en.wikipedia.org/wiki/List_of_Jabber_server_software">XMPP servers</a>, which are essentially make or break an XMPP application, are rapidly maturing beyond instant messaging. Especially <a href="http://www.ejabberd.im">eJabberd.<br />
</a></li>
<li>It&#8217;s possible to deploy a <a href="http://metajack.im/2008/08/28/writing-ejabberd-modules-presence-storms/">custom eJabberd module</a> based on the XMPP protocol but tailored specifically for your application in a matter of hours. The initial learning curve is offset by the rapid development speed of the <a href="http://en.wikipedia.org/wiki/Erlang_%28programming_language%29">Erlang</a> language (thanks to its immutability) afterwards.</li>
<li>While there&#8217;s a lot of focus on developing pure web applications, as of now nobody has figured out a great way to make money off the Instant Messaging protocol. This will be a boon for XMPP development very soon as new startups try to tap into that market.</li>
<li>The web framework wars are slowly winding down, and in the end developers are left with the classic problems &#8212; many will now be turning to alternative tech for the problems that most web frameworks don&#8217;t even attempt to solve; XMPP is the solution for most of these problems.</li>
<li>The community, albeit small, is growing and passionate. Extremely passionate. <a href="http://search.twitter.com/search?q=xmpp">Search for XMPP on Twitter</a>. The <a href="http://mail.jabber.org/pipermail/jdev/">mailing lists</a> are very active as well.</li>
</ul>
<p>Apart from all of these, as a developer I find writing XMPP applications to be a very engaging and enjoyable activity. Word will spread, and there will be new converts. At <a href="http://www.intridea.com">Intridea</a>, we&#8217;ve been actively developing and integrating XMPP into our products, and we will be leveraging it on a case-by-case basis for our client work. You&#8217;ll be hearing more about that soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2009/02/15/why-xmpp-will-be-huge-very-soon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Engines/Slices Support in Edge Rails (Finally!)</title>
		<link>http://skyfallsin.com/2008/11/27/engines-slices-in-edge-rails/</link>
		<comments>http://skyfallsin.com/2008/11/27/engines-slices-in-edge-rails/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 04:40:15 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[code]]></category>

		<category><![CDATA[ruby/rails]]></category>

		<category><![CDATA[core]]></category>

		<category><![CDATA[edge rails]]></category>

		<category><![CDATA[engines]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[slices]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=20</guid>
		<description><![CDATA[As of commit 5fa0457 (on Thanksgiving Day 2008, nonetheless), Edge Rails is getting work done on having plugins as engines. An engine (as of now) is defined as a plugin that has an app/ folder, which includes controllers, helpers, models and views. There&#8217;s also support for plugin routes at this moment.
As of the commit mentioned [...]]]></description>
			<content:encoded><![CDATA[<p>As of commit <a href="http://github.com/rails/rails/commit/5fa0457542b0ff541d0a80ff8c3561eec8e35959">5fa0457</a> (on Thanksgiving Day 2008, nonetheless), Edge Rails is getting work done on having plugins as engines. An engine (as of now) is defined as a plugin that has an app/ folder, which includes controllers, helpers, models and views. There&#8217;s also support for plugin routes at this moment.</p>
<p>As of the commit mentioned above, Rails engines are not yet app slices. A slice, at least in my opinion, contains its own assets (public/) and its own migrations. In essence, a slice would have the same structure as a regular Rails app. Not sure what the core guys have planned, but also having support for these two would greatly improve on the value of writing engines.</p>
<p>This replaces the old components framework, and paves the way for a new way of writing re-usable Rails plugins. For example, the 15-minute blog screencast can easily be reworked to be an engine and re-used within multiple apps. You can also write engines for audio, video, maybe a wiki engine and so on.</p>
<p>We&#8217;ve been working on the problem of sharing code between multiple apps for quite some time now at <a title="Intridea" href="http://www.intridea.com">Intridea</a>, and I&#8217;ve also been talking about it a lot at <a href="http://en.oreilly.com/railseurope2008/public/schedule/detail/3582">RailsConf Europe</a> with <a href="http://www.mbleigh.com">Michael Bleigh</a> and at <a href="http://www.meetup.com/silicon-valley-ruby/calendar/8792501/">Bay Area Ruby meetups</a>. The commits I&#8217;m noticing in core are great, hopefully soon there will be some more relevant work into officially namespacing the new code so that engines are distinct from plugins externally; storing them in vendor/engines or app/engines would also be good &#8212; a clean codebase is always something to look forward to.</p>
<p>Interesting fact: <a href="http://brainspl.at/articles/2008/05/21/merb-slices">Merb&#8217;s had this for a while</a> <img src='http://skyfallsin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>UPDATE: </strong>Here&#8217;s the <a href="http://www.ruby-forum.com/topic/171872#753531">thread</a> so far. Looks like assets and migrations will be in! Very exciting news indeed.</p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2008/11/27/engines-slices-in-edge-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dave Chappelle &#038; The Fountainhead</title>
		<link>http://skyfallsin.com/2008/11/09/dave-chappelle-the-fountainhead/</link>
		<comments>http://skyfallsin.com/2008/11/09/dave-chappelle-the-fountainhead/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 07:44:24 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[arts]]></category>

		<category><![CDATA[pop]]></category>

		<category><![CDATA[ayn rand]]></category>

		<category><![CDATA[books]]></category>

		<category><![CDATA[comedy]]></category>

		<category><![CDATA[dave chappelle]]></category>

		<category><![CDATA[fountainhead]]></category>

		<category><![CDATA[stand-up]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=11</guid>
		<description><![CDATA[I went to see Dave Chappelle&#8217;s stand-up show twice recently at the Punchline Comedy Club (in the span of one week). The man&#8217;s a genius, to say the least &#8212; the past two years since his show went off the air has definitely helped him perfect his timing and delivery. His on-stage presence and stamina [...]]]></description>
			<content:encoded><![CDATA[<p>I went to see <a href="http://en.wikipedia.org/wiki/Dave_chappelle" target="_blank">Dave Chappelle</a>&#8217;s stand-up show twice recently at the Punchline Comedy Club (in the span of one week). The man&#8217;s a genius, to say the least &#8212; the past two years since his show went off the air has definitely helped him perfect his timing and delivery. His on-stage presence and stamina is also extremely admirable &#8212; the second show lasted five hours, and he was on top form over eighty percent of the time (&#8221;<em>You know what a 7 hour Dane Cook set&#8217;s called? Unfunny</em>&#8220;)</p>
<p style="text-align: center;"><a href="http://skyfallsin.com/wp-content/uploads/2008/11/chappelle.jpg"><img class="size-medium wp-image-14 aligncenter" title="chappelle" src="http://skyfallsin.com/wp-content/uploads/2008/11/chappelle-239x300.jpg" alt="" width="239" height="300" /></a></p>
<p><a href="http://en.wikipedia.org/wiki/Chappelle's_Show">Chappelle&#8217;s Show</a>, besides being ground-breaking and overall excellent, wasn&#8217;t really intellectual entertainment of the highest order (though it was quite smart most of the time). So it was quite surprising to me when Dave Chappelle talked a bit about <a href="http://en.wikipedia.org/wiki/The_Fountainhead">Ayn Rand&#8217;s Fountainhead</a> (&#8221;<em>I hate Ayn Rand. You&#8217;re never gonna hear s&#8212; like this at a Carlos Mencia show</em>&#8220;). I never made the connection, but once Chappelle started comparing himself to <a href="http://en.wikipedia.org/wiki/Howard_Roark#Howard_Roark">Howard Roark</a> (the protagonist) on-stage, the similarities were quite striking. Both were men of a singular vision, who destroyed their very creations instead of compromising their art.</p>
<p>I have never seen Chappelle&#8217;s standup show before, but I have to admit that I found his calmness and style quite disarming and comforting. He genuinely enjoys doing what he does, and the level of clarity and cleverness he employs during his shows definitely made an impact on me. There were many, many memorable moments, one I remember vividly was him saying &#8220;<em>..what I try to do at every show is to strip away that veneer of celebrity, so that you people start seeing me for what I am</em>&#8220;. One of the other illuminating moments came when he mentioned, cigarette in hand, that all he did nowadays &#8220;<em>was read one good book after another</em>&#8220;.</p>
<p>I track <a href="http://search.twitter.com/search?q=dave+chappelle">&#8216;dave chappelle&#8217;</a> on Twitter, and I&#8217;m convinced that Chappelle&#8217;s popularity&#8217;s growing exponentially the longer he stays off the air. The outcome of the elections have people clamoring for his return, hopefully we&#8217;ll see more of him on the air.</p>
<p>Oh, apparently he&#8217;s &#8220;David Chappelle&#8221; on Facebook. I&#8217;ll let you find that one out for yourselves <img src='http://skyfallsin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/TV2v37u39NY&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/TV2v37u39NY&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2008/11/09/dave-chappelle-the-fountainhead/feed/</wfw:commentRss>
		</item>
		<item>
		<title>restarting skyfallsin.com</title>
		<link>http://skyfallsin.com/2008/11/09/restarting-skyfallsincom/</link>
		<comments>http://skyfallsin.com/2008/11/09/restarting-skyfallsincom/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 02:11:58 +0000</pubDate>
		<dc:creator>skyfallsin</dc:creator>
		
		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://skyfallsin.com/?p=8</guid>
		<description><![CDATA[I&#8217;m quite bad at blogging, I&#8217;ve noticed. Hopefully this one will go better.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m quite bad at blogging, I&#8217;ve noticed. Hopefully this one will go better.</p>
]]></content:encoded>
			<wfw:commentRss>http://skyfallsin.com/2008/11/09/restarting-skyfallsincom/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
