<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><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" version="2.0">

<channel>
	<title>chromasynthetic</title>
	
	<link>http://www.chromasynthetic.com/blog</link>
	<description>a blog about web design and development</description>
	<pubDate>Wed, 12 Nov 2008 02:12:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/chromasynthetic" type="application/rss+xml" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="https://intouch.particls.com/download/?mode=2&amp;feed=http%3A%2F%2Ffeeds.feedburner.com%2Fchromasynthetic" src="https://intouch.particls.com/resources/buttons/it-button2.gif">Subscribe with Particls</feedburner:feedFlare><item>
		<title>Extending MooTools is Easy!</title>
		<link>http://www.chromasynthetic.com/blog/extending-mootools-is-easy/</link>
		<comments>http://www.chromasynthetic.com/blog/extending-mootools-is-easy/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 19:54:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[web development]]></category>

		<category><![CDATA[cross-library]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=183</guid>
		<description><![CDATA[I&#8217;d never attempted to extend MooTools before, but while trying to make its api a little more similar to jQuery, I found out it&#8217;s rather simple. I like how jQuery has a function for each event like $(el).click(fn). A lot prettier than $(el).addEvent('click', fn). After digging around in MooTools a bit, I figured out how [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d never attempted to extend MooTools before, but while trying to make its api a little more similar to jQuery, I found out it&#8217;s rather simple. I like how jQuery has a function for each event like <code>$(el).click(fn)</code>. A lot prettier than <code>$(el).addEvent('click', fn)</code>. After digging around in MooTools a bit, I figured out how to do that in 10 lines:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>events<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> methods <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>;
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> event <span style="color: #000066; font-weight: bold;">in</span> events<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ev<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            methods<span style="color: #009900;">&#91;</span>ev<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fn<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>fn<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span>ev<span style="color: #339933;">,</span> fn<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">fireEvent</span><span style="color: #009900;">&#40;</span>ev<span style="color: #009900;">&#41;</span>;
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>;
    <span style="color: #009900;">&#125;</span>
    Native.<span style="color: #660066;">implement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>Element<span style="color: #339933;">,</span> Window<span style="color: #339933;">,</span> Document<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> methods<span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>Element.<span style="color: #660066;">NativeEvents</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>I can also use <code>$(el).click()</code> to trigger the click event just like jQuery.</p>
<p>Next, let&#8217;s say I like $(document).ready(fn) better than window.addEvent(&#8217;domready&#8217;, fn). Just do the following:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">Document.<span style="color: #660066;">implement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
    ready<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> fn<span style="color: #009900;">&#41;</span>;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>And finally, while this is purely aesthetics, I like $(el).is(selector) better than $(el).match(selector). Internally MooTools uses alias() to assign the same function multiple names so I can do that too like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">Element.<span style="color: #660066;">alias</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'match'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'is'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>With these changes I can now use this code with MooTools:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">document.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myLink'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066; font-weight: bold;">is</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>And combined with some simple wrappers for jQuery, this is also valid jQuery code.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=oVXXM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=oVXXM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=4LZcm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=4LZcm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=eU37m"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=eU37m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=c7xNm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=c7xNm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=CCIBM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=CCIBM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/419851523" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/extending-mootools-is-easy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Writing Cross-Library JavaScript</title>
		<link>http://www.chromasynthetic.com/blog/writing-cross-library-javascript/</link>
		<comments>http://www.chromasynthetic.com/blog/writing-cross-library-javascript/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 02:26:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[web development]]></category>

		<category><![CDATA[cross-library]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=180</guid>
		<description><![CDATA[In my recent quest to write cross-library JavaScript, I&#8217;ve come up with a few different methods. Some of these can be found in the wild and some are obvious, but here we go.
Writing POJS (plain old JavaScript)
This is probably the most obvious, but least optimal, solution. Just write code that doesn&#8217;t use a library. The [...]]]></description>
			<content:encoded><![CDATA[<p>In my recent quest to write cross-library JavaScript, I&#8217;ve come up with a few different methods. Some of these can be found in the wild and some are obvious, but here we go.</p>
<h3>Writing POJS (plain old JavaScript)</h3>
<p>This is probably the most obvious, but least optimal, solution. Just write code that doesn&#8217;t use a library. The down-side is that you can&#8217;t take advantage of what&#8217;s available to you resulting in re-inventing the wheel and a larger code base. The biggest plus of using this method is portability as it isn&#8217;t dependent on anything else.</p>
<p>As far as examples go, there aren&#8217;t any specific ones since it&#8217;s hard to tell if the author didn&#8217;t use a library to increase portability or compatibility, but <a href="http://www.datejs.com/">date.js</a> is a useful library that benefits from that portability.</p>
<h3>Detect Libraries</h3>
<p>This second method is similar to detecting browsers and writing browser specific code, and that is detecting which library is being used and writing code specific to that library&#8217;s syntax. While you don&#8217;t necessarily have to re-invent the wheel, you have to duplicate code logic for each library. Also, when introducing dependencies you introduce more potential bugs. When a new library comes out, more code will need to be written to support that library.</p>
<p>I&#8217;ve found this technique being used in <a href="http://beebole.com/pure/">PURE</a>, and you can find one of the down-sides at work. It just recently gained support for its second library (even though from the beginning it was planned to support multiple libraries).</p>
<h3>Adapter</h3>
<p>This last technique involves creating your own API and writing adapters or wrappers for each library and its functionality. This method sort of combines the benefits of the previous two in that you can take advantage of existing code while keeping repeated logic out of your core code.</p>
<p><a href="http://extjs.com/">Ext JS</a> is a good example of this. Not only does it have adapters for YUI, jQuery, and Prototype, but it also has it&#8217;s own adapter if you&#8217;re not using a library, effectively combining the first and third methods. Ext JS enjoys maximum portability, while keeping the core code small, but this combined method requires the most work.</p>
<h3>My Vision</h3>
<p>I&#8217;d like to see a cross-library library of sorts. Including this library would automatically load an adapter for a previously included library that it detects or load its own core code if one is not found. This would provide a common API to build your code on and make the library used transparent to you. To take it a step further, it could also provide any functionality not provided in your library of choice.</p>
<p>Are you aware of any other solutions?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=2EANM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=2EANM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=TxRam"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=TxRam" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=FYG4m"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=FYG4m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=OZghm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=OZghm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=qV3OM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=qV3OM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/414375354" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/writing-cross-library-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BarCamp Milwaukee 3!</title>
		<link>http://www.chromasynthetic.com/blog/barcamp-milwaukee-3/</link>
		<comments>http://www.chromasynthetic.com/blog/barcamp-milwaukee-3/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 22:21:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[web development]]></category>

		<category><![CDATA[barcamp]]></category>

		<category><![CDATA[barcampmilwaukee3]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=169</guid>
		<description><![CDATA[I&#8217;m back from BarCamp Milwaukee 3, and while it wasn&#8217;t the greatest, it was interesting and definitely worth it. I just wish there were more JavaScripters there. I was on a panel for a JavaScript discussion and only two other people showed up. Not enough for a nice discussion  
But hanging out at BarCamp [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back from <a href="http://barcampmilwaukee.com/">BarCamp Milwaukee 3</a>, and while it wasn&#8217;t the greatest, it was interesting and definitely worth it. I just wish there were more JavaScripters there. I was on a panel for a JavaScript discussion and only two other people showed up. Not enough for a nice discussion <img src='http://www.chromasynthetic.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>But hanging out at BarCamp really makes me want to start a web/tech community here in Manitowoc. I haven&#8217;t figured out the first step yet. There aren&#8217;t any groups to hook up locally (and I&#8217;d really like it to be local). I&#8217;ll probably have to hit up the colleges around here, maybe organize something with Silver Lake College (my alma mater).</p>
<p>Anyway, here I am introducing myself:<br />
<a style="border:0;" href="http://www.flickr.com/photos/johndecember/2914155414/" title="mke-2008-10-04a 468 by johndecember, on Flickr"><img style="border-color:#666;" src="http://farm4.static.flickr.com/3105/2914155414_d0efb3ef2c.jpg" width="500" height="333" alt="mke-2008-10-04a 468" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=eHVJM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=eHVJM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=eqfCm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=eqfCm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=7CPom"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=7CPom" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=iFRxm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=iFRxm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=lCG1M"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=lCG1M" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627438" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/barcamp-milwaukee-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JibberBook 2.2 Released</title>
		<link>http://www.chromasynthetic.com/blog/jibberbook-22-released/</link>
		<comments>http://www.chromasynthetic.com/blog/jibberbook-22-released/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 15:56:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[scripts]]></category>

		<category><![CDATA[guestbook]]></category>

		<category><![CDATA[jibberbook]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=167</guid>
		<description><![CDATA[JibberBook 2.2 has been released. Not too much new. There are now 15 different languages available (wow!) and there&#8217;s flood control to prevent spammers from posting multiple comments. Over all it should be more stable.
This marks the last feature release for JibberBook 2. Next up is JibberBook 3, a complete rewrite to make it a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/jibberbook/">JibberBook 2.2</a> has been released. Not too much new. There are now 15 different languages available (wow!) and there&#8217;s flood control to prevent spammers from posting multiple comments. Over all it should be more stable.</p>
<p>This marks the last feature release for JibberBook 2. Next up is JibberBook 3, a complete rewrite to make it a more flexible commenting system. Anybody want to help?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=nBzlM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=nBzlM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=wTQim"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=wTQim" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=Oc2Zm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=Oc2Zm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=YJA1m"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=YJA1m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=2SwXM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=2SwXM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627441" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/jibberbook-22-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Valerie 0.5 Released!</title>
		<link>http://www.chromasynthetic.com/blog/valerie-05-released/</link>
		<comments>http://www.chromasynthetic.com/blog/valerie-05-released/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 17:55:28 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=164</guid>
		<description><![CDATA[I&#8217;ve released Valerie 0.5 today. This version is a lot more polished than the last. The documentation is even right this time! Some of the major features include:

A demo is now included in the download
It can be used with Mootools or jQuery
A helper class to output values for non-js
Error display plugins (only 2 right now, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released <a href="http://code.google.com/p/valerie/downloads/detail?name=valerie-0.5.zip">Valerie 0.5</a> today. This version is a lot more polished than the last. The <a href="http://valerie.googlecode.com/svn/tags/Release-0.5/docs/index.html">documentation</a> is even right this time! Some of the major features include:</p>
<ul>
<li>A demo is now included in the download</li>
<li>It can be used with Mootools or jQuery</li>
<li>A helper class to output values for non-js</li>
<li>Error display plugins (only 2 right now, but you can write your own easier)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=ON3lM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=ON3lM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=kvvCm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=kvvCm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=Nprmm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=Nprmm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=QBXwm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=QBXwm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=35t3M"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=35t3M" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627442" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/valerie-05-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JS Libraries Cripple Apps</title>
		<link>http://www.chromasynthetic.com/blog/js-libraries-cripple-apps/</link>
		<comments>http://www.chromasynthetic.com/blog/js-libraries-cripple-apps/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 18:07:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[web development]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[cripple]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=162</guid>
		<description><![CDATA[I know the title sounds a bit extreme, but now that I&#8217;ve got your attention, let me explain. If you&#8217;re making a web app that&#8217;s meant to be embedded in other pages which you have no control over, choosing a JavaScript library will only limit the usefulness of your app to people already using that [...]]]></description>
			<content:encoded><![CDATA[<p>I know the title sounds a bit extreme, but now that I&#8217;ve got your attention, let me explain. If you&#8217;re making a web app that&#8217;s meant to be embedded in other pages which you have no control over, choosing a JavaScript library will only limit the usefulness of your app to people already using that library. The problem emerges when a user tries to embed your app in a page already using a different library. Conflicts are bound to occur.</p>
<p>This is especially a problem when using Mootools because the developers don&#8217;t care if their library isn&#8217;t compatible with others. I&#8217;m seriously thinking of dropping Mootools from <a href="http://jibberbook.com/">JibberBook</a> and using POJS (I&#8217;m coining a new term here: Plain Old JavaScript) so it can be used by more people.</p>
<p>I know some libraries have a no conflict mode, but there&#8217;s also the less-than-desirable side effect of forcing visitors to download multiple JS libraries.</p>
<p>It&#8217;s our responsibility to come up with a solution. In the far future, I think the optimal solution would be to create a standard API that all JS library developers will agree to use. That might be a while off, but for now, an intermediate step would be to create wrappers for JS libraries to implement the same API. I&#8217;ve already created some simple wrappers for jQuery and Mootools for <a href="http://code.google.com/p/valerie/">Valerie</a>, but I don&#8217;t believe I have the expertise to create what&#8217;s needed. Any JavaScript guru out there willing to take up the challenge?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=ji8wM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=ji8wM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=VszDm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=VszDm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=EgbNm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=EgbNm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=RQoAm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=RQoAm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=f8MhM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=f8MhM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627443" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/js-libraries-cripple-apps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My New CMS Thingy</title>
		<link>http://www.chromasynthetic.com/blog/my-new-cms-thingy/</link>
		<comments>http://www.chromasynthetic.com/blog/my-new-cms-thingy/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 01:28:08 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[scripts]]></category>

		<category><![CDATA[cms]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[templating]]></category>

		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=158</guid>
		<description><![CDATA[I&#8217;ve got a demo up of my new CMS/templating thing. Not sure what to call it yet, but I&#8217;m looking for feedback and I want to know if it&#8217;s a good idea. I think it&#8217;s pretty useful, especially if you think Drupal or similar is overkill for a simple site you&#8217;re working on. I also [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got a <a href="http://www.chromasynthetic.com/cms/">demo</a> up of my new CMS/templating thing. Not sure what to call it yet, but I&#8217;m looking for feedback and I want to know if it&#8217;s a good idea. I think it&#8217;s pretty useful, especially if you think Drupal or similar is overkill for a simple site you&#8217;re working on. I also wanted to keep you in control so it doesn&#8217;t do a lot for you, and you&#8217;re not tied down to the editor. My inspiration came from <a href="http://cmsfromscratch.com/">CMS from Scratch</a>, but after working with it, I didn&#8217;t like how much it restricted my freedom, especially when it came to displaying sets. It also didn&#8217;t seem very polished.</p>
<p>My version includes files in a similar manner, and has text, html, and set includes. I chose to use <a href="http://developer.yahoo.com/yui/">YUI</a> for a javascript library because it provided a lot of the functionality I needed out-of-the-box. Anyway, <a href="http://www.chromasynthetic.com/cms/">take a look</a> and let me know what you think.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=NQ8VM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=NQ8VM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=tCAwm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=tCAwm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=h0K2m"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=h0K2m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=fpjam"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=fpjam" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=ROIPM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=ROIPM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627444" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/my-new-cms-thingy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parse Feeds with simpleXML</title>
		<link>http://www.chromasynthetic.com/blog/parse-feeds-with-simplexml/</link>
		<comments>http://www.chromasynthetic.com/blog/parse-feeds-with-simplexml/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 18:51:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[scripts]]></category>

		<category><![CDATA[feed]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[simplexml]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=153</guid>
		<description><![CDATA[I&#8217;ve been trying to figure out a cool way to display feeds, and in that adventure, I&#8217;ve come up with a simple feed parser for PHP based on various other articles I read. It gathers as many feeds as you like and returns a single array with the feed items sorted by date. With that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to figure out a cool way to display feeds, and in that adventure, I&#8217;ve come up with a <a href='http://www.chromasynthetic.com/blog/uploads/feeds.zip'>simple feed parser</a> for PHP based on various other articles I read. It gathers as many feeds as you like and returns a single array with the feed items sorted by date. With that script I&#8217;ve created a <a href="http://www.chromasynthetic.com/feedcloud/">feed cloud</a> which consists of my tweets, delicious bookmarks, and blog posts. I gave each type a different weight.</p>
<p>Here&#8217;s the code I used to get the feeds:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$feeds</span> <span style="color: #339933;">=</span> getFeeds<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="">'blog'</span> <span style="color: #339933;">=&gt;</span> <span style="">'http://www.chromasynthetic.com/blog/feed/'</span><span style="color: #339933;">,</span>
    <span style="">'delicious'</span> <span style="color: #339933;">=&gt;</span> <span style="">'http://feeds.delicious.com/v2/rss/chryu'</span><span style="color: #339933;">,</span>
    <span style="">'twitter'</span> <span style="color: #339933;">=&gt;</span> <span style="">'http://twitter.com/statuses/user_timeline/12885402.rss'</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p><a href="http://www.chromasynthetic.com/blog/uploads/feeds.zip">Download the script.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=0r7eM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=0r7eM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=OIWKm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=OIWKm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=h2W3m"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=h2W3m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=pAFUm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=pAFUm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=mgqBM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=mgqBM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627445" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/parse-feeds-with-simplexml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Valerie, JibberBook and the Zend Framework</title>
		<link>http://www.chromasynthetic.com/blog/valerie-jibberbook-and-the-zend-framework/</link>
		<comments>http://www.chromasynthetic.com/blog/valerie-jibberbook-and-the-zend-framework/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 19:14:25 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[web development]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[jibberbook]]></category>

		<category><![CDATA[valerie]]></category>

		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=146</guid>
		<description><![CDATA[I&#8217;ve recently been trying out a few of Zend Framework&#8217;s modules and I really like that it doesn&#8217;t force me to use the whole framework. And that got me thinking that I&#8217;ll probably use it somehow to rewrite JibberBook and maybe Valerie.
I had a look at my Valerie code again and realized how small it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been trying out a few of <a href="http://framework.zend.com/">Zend Framework</a>&#8217;s modules and I really like that it doesn&#8217;t force me to use the whole framework. And that got me thinking that I&#8217;ll probably use it somehow to rewrite <a href="http://jibberbook.com/">JibberBook</a> and maybe <a href="http://code.google.com/p/valerie/">Valerie</a>.</p>
<p>I had a look at my <a href="http://code.google.com/p/valerie/source/browse/trunk/source/valerieserver.php">Valerie code</a> again and realized how small it really is: only 242 lines! So I have a question for the community. Would you use a framework to rebuild a simple app?</p>
<p>Here are the pros and cons as I see them:</p>
<h3>Pros</h3>
<ul>
<li>Well documented</li>
<li>Well tested</li>
<li>Not maintained by me</li>
<li>People using Zend Framework might be more likely to use Valerie</li>
</ul>
<h3>Cons</h3>
<ul>
<li>Larger code base</li>
<li>Valerie already works fine</li>
<li>Will probably slow Valerie down</li>
<li>People not using Zend Framework might be less likely to use Valerie</li>
</ul>
<p>What are your thoughts?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=TrvoM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=TrvoM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=AkkCm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=AkkCm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=oZ9Ym"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=oZ9Ym" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=EktPm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=EktPm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=uDKXM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=uDKXM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627446" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/valerie-jibberbook-and-the-zend-framework/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Looking for JibberBook Developers</title>
		<link>http://www.chromasynthetic.com/blog/looking-for-jibberbook-developers/</link>
		<comments>http://www.chromasynthetic.com/blog/looking-for-jibberbook-developers/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 18:26:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[news]]></category>

		<category><![CDATA[developer]]></category>

		<category><![CDATA[jibberbook]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=144</guid>
		<description><![CDATA[Hey all. I haven&#8217;t had the time/motivation to work on JibberBook lately. The main reason I put it up on Google Code was to get more people involved, and while it has helped greatly for translations, there hasn&#8217;t been any contributions in the way of core code. 
Ideally, I&#8217;d like a development team so if [...]]]></description>
			<content:encoded><![CDATA[<p>Hey all. I haven&#8217;t had the time/motivation to work on <a href="http://code.google.com/p/jibberbook/">JibberBook</a> lately. The main reason I put it up on Google Code was to get more people involved, and while it has helped greatly for translations, there hasn&#8217;t been any contributions in the way of core code. </p>
<p>Ideally, I&#8217;d like a development team so if you&#8217;re interested in helping out with JibberBook, let me know, but I&#8217;d definitely appreciate patches and code improvements.</p>
<p>Most of the request tickets now change some of the core behavior of JibberBook and require a bit of modification; therefore, I think I&#8217;d like to rewrite JibberBook from scratch to make it a more flexible and reusable comment framework rather than just a guestbook. It would also be cool to write adapters for the major javascript frameworks instead of using just one (Mootools). It wouldn&#8217;t be JibberBook anymore, though. Probably JibberWork or something like that.</p>
<p>Form validation has already been isolated in <a href="http://code.google.com/p/valerie/">Valerie</a> which I&#8217;d like to use in the next iteration of JibberBook.</p>
<p>There&#8217;s also an idea that&#8217;s been on the back burner for a while now and that&#8217;s to make some sort of embeddable guestbook so users don&#8217;t need to do any installation and don&#8217;t even need a server that supports php. I haven&#8217;t figured out how to do this technically yet, though.</p>
<p>If you&#8217;ve got some good ideas and think you could devote some time to help out, let me know and I&#8217;ll get you added to the project! Thanks!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=qriCM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=qriCM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=CDxhm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=CDxhm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=WUREm"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=WUREm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=3QYem"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=3QYem" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=H83PM"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=H83PM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/413627447" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/looking-for-jibberbook-developers/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
