<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>ROFISH.net</title>
	
	<link>http://rofish.net</link>
	<description>thoughts.collect{|idea| Blog.post idea}</description>
	<lastBuildDate>Mon, 29 Jun 2009 22:27:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/rofish" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="rofish" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Google Wave Is Too Hard: Complexity Kills Hopes/Dreams</title>
		<link>http://rofish.net/2009/06/google-wave-is-too-hard-complexity-kills-hopesdreams/</link>
		<comments>http://rofish.net/2009/06/google-wave-is-too-hard-complexity-kills-hopesdreams/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 22:20:17 +0000</pubDate>
		<dc:creator>Ryan Alyea</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rofish.net/?p=23</guid>
		<description><![CDATA[Like most web developers, I saw the Google Wave video and thought about how I could integrate that with my site. Since I have a traditional forum, I thought that the instant rich media would be perfect and almost easy to integrate. I ignored warnings from other popular figures like Ray Ozzie calling it too [...]]]></description>
			<content:encoded><![CDATA[<p>Like most web developers, I saw the <a href="http://www.youtube.com/watch?v=v_UyVmITiYQ">Google Wave video</a> and thought about how I could integrate that with my site. Since I have a <a href="http://forum.starmen.net/">traditional forum</a>, I thought that the instant rich media would be perfect and almost easy to integrate. I ignored warnings from other popular figures like <a href="http://www.siliconbeat.com/2009/06/04/ray-ozzie-calls-googles-wave-nice-but-too-complex/">Ray Ozzie calling it too complex or anti-web</a>. (Especially the latter since Wave should complement the standard RESTful experience, not replace it.)</p>
<p>Oh boy was I wrong.</p>
<p>At the very core of Wave is the &#8220;Wave Federation Protocol&#8221;, designed for server to server communication, which is actually very simple: a (lower-case) wave has multiple wavelets which are individual XML documents that are constantly mutated in real time. If somebody adds a character or deletes a line, it does so inside the construct of this XML document. When a mutation happens, such as a simple key press, the server must send a skip command to place the &#8220;virtual cursor&#8221;, and then the key(s) pressed to modify the document to the receiving server.</p>
<p>(upper-case) Wave is Google&#8217;s implementation of the wave protocol for real-time collaborative messages. It creates a new wavelet (XML Document) and apparently controls the mutations over Javascript. My plans for a Wave-like forum experience was crushed by the large complexity of Wave over Javascript.</p>
<p>My gung-ho/cowboy style got me pretty far, check out the video: <a href="http://twitvid.io/aba4">http://twitvid.io/aba4</a></p>
<p>It&#8217;s possibly a story of bad design decisions, but I decided to use something similar to the server to server protocol. I even wrote an XMPP over BOSH server, which was fairly trivial to do. It was nice and simple until I got to the actual typing part: It&#8217;s impossible for a simple &#8220;textbox&#8221; Wave over Javascript. To get my demo working, I had to manually parse over &#8220;onKeyPress&#8221; or &#8220;onKeyUp&#8221; events. In addition, I couldn&#8217;t find a way to store the document in a Wave friendly format. The &#8220;skip&#8221; command is just a letter skip with an XML element counting as one character. Wave supports no DOM searching and I had to just do a depth-first search on the XML DOM to both find and place a cursor based on it&#8217;s skip value.</p>
<p>I persevered for two weeks until I finally got to a point where I could test the live stuff by opening up Firefox, which itself had issues with my hacked up Javascript just trying to get it to work in Safari. I could barely get the enter key working. And it&#8217;s at this point that I decided to give up. The wave protocol might seem easy and makes sense on the outside, but to get the live collaborative editing on Javascript is a whole other issue. It took me 915 lines of Ruby and 725 lines of Javascript just to get to that video demo.</p>
<p>Google has hinted that they&#8217;ll provide libraries for Wave, but I don&#8217;t think I will use them. Wave is far too complex for me to spend two weeks, full-time, on a simple private message system. For those that want simple blog comments, the embed API looks nice enough to use. If you want to own your data and drop-in on an existing system, look elsewhere because Wave is far too complex for a one man team.</p>
]]></content:encoded>
			<wfw:commentRss>http://rofish.net/2009/06/google-wave-is-too-hard-complexity-kills-hopesdreams/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Textile and the Starmen.Net Forums</title>
		<link>http://rofish.net/2008/07/textile-and-the-starmennet-forums/</link>
		<comments>http://rofish.net/2008/07/textile-and-the-starmennet-forums/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 10:59:37 +0000</pubDate>
		<dc:creator>Ryan Alyea</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rofish.net/?p=11</guid>
		<description><![CDATA[As some of you might know, I — almost religiously — push Textile onto everybody on the Starmen.Net forums. I really like it since it makes a lot of organizational posts easy to do with all the block-level elements. Allowing inline styles is awesome too. Except that I highly parse the styles for certain elements [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you might know, I — almost religiously — push Textile onto everybody on the Starmen.Net forums. I really like it since it makes a lot of organizational posts easy to do with all the block-level elements. Allowing inline styles is awesome too. Except that I highly parse the styles for certain elements now. Sarsie found all kinds of wonderful XSS attacks with CSS Expressions and IE6. I keep telling the story about a security problem with font colors.</p>
<p>Anyway, a lot of people have problems with the newlines and how they work. I&#8217;ve tried all kinds of things, but none of them work well really. Since I used RedCloth 3, the Ruby parser for Textile, there wasn&#8217;t a nice answer. Going without it is impossible, since there&#8217;s a legitimate reason to have single breaks. Enabling the official hard breaks on RedCloth 3 caused havoc on quotes and spoiler matocode tags. I eventually settled on an ugly hack.</p>
<p>In comes RedCloth 4. It fixes the line break issue, it&#8217;s a C-based extension for extra speed. And it doesn&#8217;t have disablers, it&#8217;s all or nothing. I have to disable images on the forum because it&#8217;s possible to display tasteless images. Not to mention the occasional Goatse hotlink protection. Stuff I really don&#8217;t want to be shown on a forum that has members of 12 or less.</p>
<p>However, We offer regular users the ability to post images in certain forums, like the Fan Forum, to show off their artwork. Administrators and moderators like images for various real needs, as well as special permissions allow certain users to post images for various needs. (ie. the runner of the currently running Mafia game.) So the feature disabler had to be easily disabled/enabled.</p>
<p>After a brief email in their mailing list, I manned up and added it myself. Unfortunately, I didn&#8217;t know Ragel, or Ruby C Extensions for that matter. It was a long and tough battle, but I defeated the final boss!</p>
<p><code>RedCloth.new("!image.jpg!",[:disable_inline=&gt;:image]).to_html<br />
#=&gt;"!image.jpg!"</code></p>
<p>Hopefully — With the feature disabler that I needed — this fixes a lot of problems that have been plaguing the Textile implementation on the forum.</p>
<p>The next step is to port the crappy MatoCode (my implementation of BBCode) to the fancy Ragel system. Things like the [quote] and [spoiler] tags need to have their insides parsed separately from the outside.</p>
]]></content:encoded>
			<wfw:commentRss>http://rofish.net/2008/07/textile-and-the-starmennet-forums/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What I had to do to resize my Boot Camp Partition:</title>
		<link>http://rofish.net/2008/06/what-i-had-to-do-to-resize-my-boot-camp-partition/</link>
		<comments>http://rofish.net/2008/06/what-i-had-to-do-to-resize-my-boot-camp-partition/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 11:08:04 +0000</pubDate>
		<dc:creator>Ryan Alyea</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rofish.net/?p=10</guid>
		<description><![CDATA[I heard iPartition was great, so I went to try it. Here&#8217;s what I did:

Needed a DVD, so I looked forever to find one.
Remembered that blank DVDs where in my car, went and got one.
Burned the iPartition boot DVD.
It didn&#8217;t work.
Burned it again.
Didn&#8217;t work.
I realized it might not have drivers for my new iMac, so [...]]]></description>
			<content:encoded><![CDATA[<p>I heard iPartition was great, so I went to try it. Here&#8217;s what I did:</p>
<ul>
<li>Needed a DVD, so I looked forever to find one.</li>
<li>Remembered that blank DVDs where in my car, went and got one.</li>
<li>Burned the iPartition boot DVD.</li>
<li>It didn&#8217;t work.</li>
<li>Burned it again.</li>
<li>Didn&#8217;t work.</li>
<li>I realized it might not have drivers for my new iMac, so I tried copying my /System/Library/Extentions over to the DVD, burned another one.</li>
<li>It didn&#8217;t work either.</li>
<li>I realized I could use my iBook instead while my iMac was in target disc mode.</li>
<li>Except my iBook would let me put in the DVD I burned. There appeared to be something jamming it. (WTF?)</li>
<li>So I tried a credit card to unblock it, no dice.</li>
<li>I had to open up my iBook, but I needed a smallish Allen wrench to open it. I looked everywhere.</li>
<li>I realized that it too, was in my car, so I went to go get it.</li>
<li>I took my iBook apart.</li>
<li>I took the Combo Drive apart. The disc let me put it in, no clue why. I guess it wanted some fresh air inside?</li>
<li>Put the iBook half-way back together, except I forgot to connect the Combo Drive up again.</li>
<li>Took it apart, hooked up the Combo Drive, and then put the iBook back together again.</li>
<li>Booted the iBook with the iPartition boot disc. (It worked fine.)</li>
</ul>
<div>All-in-all iPartition is a pretty nice program to resize your Boot Camp partition. Getting to the program was a total pain in the ass.</div>
]]></content:encoded>
			<wfw:commentRss>http://rofish.net/2008/06/what-i-had-to-do-to-resize-my-boot-camp-partition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://rofish.net/2008/04/hello-world/</link>
		<comments>http://rofish.net/2008/04/hello-world/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 21:22:22 +0000</pubDate>
		<dc:creator>Ryan Alyea</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rofish.net/?p=1</guid>
		<description><![CDATA[Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
]]></description>
			<content:encoded><![CDATA[<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://rofish.net/2008/04/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.167 seconds --><!-- Cached page served by WP-Cache -->
