<?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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">

<channel>
	<title>chromasynthetic</title>
	
	<link>http://www.chromasynthetic.com/blog</link>
	<description>a blog about web design and development</description>
	<pubDate>Fri, 12 Dec 2008 01:19:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</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" 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>Goodbye MooTools</title>
		<link>http://www.chromasynthetic.com/blog/goodbye-mootools/</link>
		<comments>http://www.chromasynthetic.com/blog/goodbye-mootools/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 02:21:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
		<category><![CDATA[news]]></category>

		<category><![CDATA[goodbye]]></category>

		<category><![CDATA[mootools]]></category>

		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://www.chromasynthetic.com/blog/?p=191</guid>
		<description><![CDATA[I&#8217;m sure you&#8217;ve encountered Sizzle in one way or another. Sizzle is John Resig&#8217;s (of jQuery fame) new library-independent selector engine that&#8217;s supposed to be the fastest around. What&#8217;s going on now is major js libraries are planning (or at least looking at the possibility) to replace their own selector engines with Sizzle. According to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure you&#8217;ve encountered <a href="http://github.com/jeresig/sizzle/tree/master">Sizzle</a> in one way or another. Sizzle is John Resig&#8217;s (of jQuery fame) new library-independent selector engine that&#8217;s supposed to be the fastest around. What&#8217;s going on now is major js libraries are planning (or at least looking at the possibility) to replace their own selector engines with Sizzle. According to the link jQuery, MochiKit, Prototype, and Dojo are all jumping on the bandwagon.</p>
<p>Where does <a href="http://mootools.net/">MooTools</a> come in to this? The lead developer&#8217;s <a href="http://mootools.net/blog/2008/12/04/sizzle/">official response</a>. To me, it sounds overly defensive and rude. And when I <a href="http://mootools.net/blog/2008/12/04/sizzle/#comment-87">suggested</a> he reword a blanket statement, I got an equally <a href="http://mootools.net/blog/2008/12/04/sizzle/#comment-89">rude response</a> from another developer. Did I say something wrong?</p>
<p>If this were the first time it happened, I&#8217;d be ok with it, but I&#8217;ve been with MooTools since the MooFx days, and they&#8217;ve never been nice to the community. I&#8217;ve seen it expressed multiple times that MooTools is for their own (the developer&#8217;s) use and they just put it out there for other people to use if they so desire. They don&#8217;t care about the community, and I&#8217;ve found this proven by their actions time and again, and this time, I&#8217;ve had enough.</p>
<p>Anyone remember when the jQuery site got <a href="http://blog.jquery.com/2008/08/29/jquerycom-site-redesign/">redesigned</a> with the javascript rockstar? Remember how quickly it was <a href="http://blog.jquery.com/2008/08/29/death-to-javascript-rock-stars/">removed</a> based on user feedback? If you don&#8217;t like jQuery as a library, you definitely have to respect their attention to the community. Now here&#8217;s the opposite response. MooTools 1.2 was released, and with that release, the forum was removed. There was no prior warning and it was weeks before we had any official word on what happened to it. Understandably, a lot of the community was upset. If I had discovered MooTools in that state, I would not have adopted it, but even after that, I stuck with MooTools hoping they would get better at interacting with the community.</p>
<p>But they haven&#8217;t. I don&#8217;t know if Valerio just doesn&#8217;t have good people skills or if he&#8217;s really a jerk or both, but I think MooTools could benefit from a PR person (and I&#8217;ve told them this), but it&#8217;s too late for me.</p>
<p>For the record, I think MooTools should stick with it&#8217;s own selector engine, and I think MooTools is the best library for a majority of my needs, which is why I&#8217;ve waited so long to ditch it. I just can&#8217;t stand behind it anymore. Farewell, MooTools. Let me know if you ever decide to care about the community you should be fostering.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/chromasynthetic?a=OwTLO"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=OwTLO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=bZtIo"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=bZtIo" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=oOnxo"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=oOnxo" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=qhWZo"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=qhWZo" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/chromasynthetic?a=uVUhO"><img src="http://feeds.feedburner.com/~f/chromasynthetic?i=uVUhO" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/chromasynthetic/~4/476276151" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.chromasynthetic.com/blog/goodbye-mootools/feed/</wfw:commentRss>
		</item>
		<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[scripts]]></category>

		<category><![CDATA[valerie]]></category>

		<category><![CDATA[validator]]></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>
	</channel>
</rss>
