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

<channel>
	<title>cdevroe.com &#187; development</title>
	<atom:link href="http://cdevroe.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://cdevroe.com</link>
	<description>by Colin Devroe</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:49:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>	<atom:link rel='hub' href='http://cdevroe.com/?pushpress=hub'/>
<cloud domain='cdevroe.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Colourmod &#8211; A color picker Dashboard widget for Mac OS X</title>
		<link>http://cdevroe.com/notes/colourmod/</link>
		<comments>http://cdevroe.com/notes/colourmod/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 03:15:45 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[color picker]]></category>
		<category><![CDATA[colourmod]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hexadecimal]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[mac-os-x]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5657</guid>
		<description><![CDATA[This Dashboard widget post (see the others) is more for developers and designers than the average person. Colourmod is a Dashboard widget for Mac OS X that you&#8217;ll end up using much more than you think you would. I&#8217;m not a designer but as someone who fiddles around on the web I find myself in [...]]]></description>
			<content:encoded><![CDATA[<p>This Dashboard widget post (<a href="http://cdevroe.com/tag/dashboard/">see the others</a>) is more for developers and designers than the average person.</p>
<p><img class="alignright  wp-image-5658" title="Colourmod Screenshot" src="http://cdevroe.com/wp-content/mobile/photos/2012/01/37281-shot.jpeg" alt="" width="220" /></p>
<p><a href="http://colourmod.com/dashboard/">Colourmod</a> is a Dashboard widget for Mac OS X that you&#8217;ll end up using much more than you think you would. I&#8217;m not a designer but as someone who fiddles around on the web I find myself in need of a hexadecimal color code from time-to-time. And when I do, I use Colourmod.</p>
<p>There are a few ways that I find myself using Colourmod to find the color I&#8217;m looking for. The first, and perhaps most obvious way, is to drag the &#8220;blue dot&#8221; color picker around the main color well and find the color I want making subtle adjustments by using the slider. The second, is to manually enter in the hexadecimal color code that I&#8217;m currently tweaking and make small changes until I get exactly what I want.</p>
<p>One nice feature is the blue arrow that will quickly copy the current color code and place that value into your clipboard. This makes finding, selecting and copying a color code into your text editor very, very quick.</p>
<p>Feature suggestions? Sure. One thing I&#8217;d like to see is a single text area that gives the proper RGB color values for a color. Although Colourmod supplies these values they aren&#8217;t easily selected. I&#8217;d also like to see a much easier and more accurate way to use the color picker. It is very tough to make small changes especially to light gray colors.</p>
<p>Oh, and I&#8217;d ditch the &#8216;U&#8217; in Colourmod. But that&#8217;s just me.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/colourmod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.4 to have a built-in web server</title>
		<link>http://cdevroe.com/links/php54-server/</link>
		<comments>http://cdevroe.com/links/php54-server/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 15:10:29 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.4]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web server]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5569</guid>
		<description><![CDATA[I&#8217;ll leave the comparisons to other languages and frameworks out of this and just say that I&#8217;m happy to see that PHP 5.4 will have a built-in web server for doing things like local development without the need for installing Apache. Excellent.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll leave the comparisons to other languages and frameworks out of this and just say that I&#8217;m happy to see that <a href="http://digitizor.com/2011/12/22/php-54-built-in-erver/">PHP 5.4 will have a built-in web server</a> for doing things like local development without the need for installing Apache. Excellent.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/php54-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Path clock scroll thingy</title>
		<link>http://cdevroe.com/links/path-clock-ios/</link>
		<comments>http://cdevroe.com/links/path-clock-ios/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 21:31:03 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[florian mielke]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5517</guid>
		<description><![CDATA[Hot on the heels of the Path app&#8217;s menu being reverse engineered into CSS3 and CoreAnimation is the Path app&#8217;s clock face that appears when you&#8217;re scrolling down through your timeline being reverse engineered by Florian Mielke.]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of <a href="http://cdevroe.com/links/path-menu-css3-coreanimation/">the Path app&#8217;s menu being reverse engineered into CSS3 and CoreAnimation</a> is <a href="http://blog.madefm.com/post/13817640556/ios-devcorner-attaching-an-info-panel-to-a">the Path app&#8217;s clock face</a> that appears when you&#8217;re scrolling down through your timeline being reverse engineered by <a href="http://florianmielke.me/">Florian Mielke</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/path-clock-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Path menu in pure CSS3 and using CoreAnimation</title>
		<link>http://cdevroe.com/links/path-menu-css3-coreanimation/</link>
		<comments>http://cdevroe.com/links/path-menu-css3-coreanimation/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 15:23:58 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[coreanimation]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[levy]]></category>
		<category><![CDATA[mike-rundle]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[victor coulon]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5461</guid>
		<description><![CDATA[As I mentioned last week the new Path application for iPhone is arguably the best designed application on the iPhone currently. And when there is a great design, there are going to be those that begin to pick it apart and do neat things with it. The Path app is no different. People have begun [...]]]></description>
			<content:encoded><![CDATA[<p>As <a title="Path 2.0" href="http://cdevroe.com/links/path-2/">I mentioned last week</a> the new Path application for iPhone is arguably the best designed application on the iPhone currently. And when there is a great design, there are going to be those that begin to pick it apart and do neat things with it. The Path app is no different. People have begun breaking it down in various ways.</p>
<p>One of the distinct features in the Path app is the fly-out menu that allows you to share photos, comments, location, etc. Two developers took it upon themselves to build out that menu both in CSS3 and using CoreAnimation. Both open sourced their work and gave credit.</p>
<ul>
<li><a href="http://lab.victorcoulon.fr/css/path-menu/">Path menu in pure CSS 3</a> by Victor Coulon.</li>
<li><a href="https://github.com/levey/QuadCurveMenu">Path menu using CoreAnimation</a> by ??? (Levy)</li>
</ul>
<p>/via <a href="https://twitter.com/flyosity">Mike Rundle on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/path-menu-css3-coreanimation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This site makes, at most, 39 connections</title>
		<link>http://cdevroe.com/links/39-connections/</link>
		<comments>http://cdevroe.com/links/39-connections/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 17:34:32 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[connections]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[page load]]></category>
		<category><![CDATA[page speed]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5424</guid>
		<description><![CDATA[In a recent tirade against what some are calling Shit-ass Websites (pardon my french I try to keep it clean &#8217;round here) there has been a bit of a backlash towards websites that make an overwhelming number of connections. Also, the size of the entire page load. This site makes, at most, 39 connections and [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent tirade against what <a href="http://www.loopinsight.com/2011/11/30/shit-ass-websites/">some are calling Shit-ass Websites</a> (pardon my french I try to keep it clean &#8217;round here) there has been a bit of a backlash towards websites that make an overwhelming number of connections. Also, the size of the entire page load.</p>
<p>This site makes, at most, 39 connections and is, at most, 12Kb or so larger than<a href="http://cdevroe.com/category/photos/"> the largest photo I post</a>. Most of those 39 connections come from the WordPress plugin that I use to show the location in which I published the post. I&#8217;m thinking of disabling this plugin and if I did my site would go down to well under 12 connections.</p>
<p>This recent tirade is a good excuse to revisit the site(s) that you administer to see if you can cut some cruft.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/39-connections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codify &#8211; Build games for iPad on iPad</title>
		<link>http://cdevroe.com/links/codify/</link>
		<comments>http://cdevroe.com/links/codify/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 12:12:09 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[codify]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5332</guid>
		<description><![CDATA[How in the world is Codify only $7.99? Watch the video demo. Trés impressive. /via John Gruber.]]></description>
			<content:encoded><![CDATA[<p>How in the world is <a href="http://twolivesleft.com/Codify/">Codify</a> only $7.99? Watch the video demo. Trés impressive.</p>
<p>/via <a href="http://daringfireball.net/linked/2011/10/26/codify">John Gruber</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/codify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1 million on Github</title>
		<link>http://cdevroe.com/links/1m-github/</link>
		<comments>http://cdevroe.com/links/1m-github/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 15:06:12 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5221</guid>
		<description><![CDATA[Congratulations to all of my friends at Github for reaching the 1 million user milestone. Github is easily one of the very best services for developers on the web. If you don&#8217;t yet have an account and you are a developer; stop waiting.]]></description>
			<content:encoded><![CDATA[<p>Congratulations to all of my friends at <a href="http://github.com/">Github</a> for <a href="http://www.readwriteweb.com/archives/github_hits_1_million_users.php">reaching the 1 million user milestone</a>. Github is easily one of the very best services for developers on the web. If you don&#8217;t yet have an account and you are a developer; stop waiting.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/1m-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ifttt</title>
		<link>http://cdevroe.com/links/ifttt/</link>
		<comments>http://cdevroe.com/links/ifttt/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 14:47:58 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[actions]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[if this then that]]></category>
		<category><![CDATA[ifttt]]></category>
		<category><![CDATA[kyle-neath]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[triggers]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5178</guid>
		<description><![CDATA[If This Then That is a web service that allows you to plug into a few other web services and trigger actions based on certain criteria. Example: If I take a photo using Instagram store it in Dropbox as well. /via Kyle Neath on Twitter.]]></description>
			<content:encoded><![CDATA[<p><a href="http://ifttt.com/">If This Then That</a> is a web service that allows you to plug into a few other web services and trigger actions based on certain criteria. Example: If I take a photo using Instagram store it in Dropbox as well.</p>
<p>/via <a href="https://twitter.com/kneath/statuses/112593350426763264">Kyle Neath on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/ifttt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter, now on Github</title>
		<link>http://cdevroe.com/links/ci-github/</link>
		<comments>http://cdevroe.com/links/ci-github/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 13:25:06 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5068</guid>
		<description><![CDATA[I don&#8217;t use PHP often but when I do I use CodeIgniter. And now it is on Github.]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t use PHP often but when I do I use <a href="http://codeigniter.com/">CodeIgniter</a>. And now <a href="https://github.com/EllisLab/CodeIgniter">it is on Github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/ci-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quality is contagious</title>
		<link>http://cdevroe.com/links/neath-quality/</link>
		<comments>http://cdevroe.com/links/neath-quality/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 11:50:06 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[dedication]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[kyle-neath]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[quote]]></category>
		<category><![CDATA[quotes]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5061</guid>
		<description><![CDATA[Kyle Neath on Relentless Quality: &#8220;Broken windows are the reason most large software projects suck to work on. A little technical debt here, a few shortcuts there, and pretty soon you’ve got a codebase so full of broken windows that no one even cares if they throw another pile of broken glass on the heap. [...]]]></description>
			<content:encoded><![CDATA[<p>Kyle Neath on <a href="http://warpspire.com/posts/relentless-quality/"><em>Relentless Quality</em></a>:</p>
<blockquote><p>
  &#8220;Broken windows are the reason most large software projects suck to work on. A little technical debt here, a few shortcuts there, and pretty soon you’ve got a codebase so full of broken windows that no one even cares if they throw another pile of broken glass on the heap.</p>
<p>  But just as broken windows are contagious, so is a dedication to quality. Carve out a little piece of a messy codebase and clean it up. Sharpen the edges, polish the surface and make it shine.&#8221;
</p></blockquote>
<p>This bubbles all the way up to the top of the product too. The code of a not-so-great feature can be gorgeous but it is still a feature that isn&#8217;t quite right. Focusing on the quality of the product from the engineering to the coding to the marketing is also contagious.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/neath-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ludum Dare</title>
		<link>http://cdevroe.com/links/ludum-dare/</link>
		<comments>http://cdevroe.com/links/ludum-dare/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 16:44:04 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[data entry sentry]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ludum dare]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[shaun-inman]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=5029</guid>
		<description><![CDATA[A 48-hour solo hackathon for game developers to create a game. Pretty fun. Shaun Inman, who just released The Last Rocket for iOS, put together a quick game called Data Entry Sentry that works on an iPad (or any Webkit browser). Fun to play. I don&#8217;t know where he gets the energy.]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.ludumdare.com/compo/rules/">48-hour solo hackathon for game developers</a> to create a game. Pretty fun.</p>
<p><a href="http://shauninman.com/">Shaun Inman</a>, who just released <a href="http://shauninman.com/lastrocket/">The Last Rocket</a> for iOS, put together a quick game called <a href="http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&#038;uid=4017">Data Entry Sentry</a> that works on an iPad (or any Webkit browser). Fun to play. I don&#8217;t know where he gets the energy.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/ludum-dare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An unofficial RunKeeper API</title>
		<link>http://cdevroe.com/links/unofficial-runkeeper-api/</link>
		<comments>http://cdevroe.com/links/unofficial-runkeeper-api/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 12:30:10 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[jeff johns]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[runkeeper]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4846</guid>
		<description><![CDATA[My friend and Viddler teammate Jeff Johns is working on an unofficial RunKeeper API.]]></description>
			<content:encoded><![CDATA[<p>My friend and Viddler teammate <a href="http://phpfunk.me/">Jeff Johns</a> is working on <a href="https://github.com/phpfunk/Unofficial-Runkeeper-API">an unofficial RunKeeper API</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/unofficial-runkeeper-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pow</title>
		<link>http://cdevroe.com/links/pow/</link>
		<comments>http://cdevroe.com/links/pow/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 20:00:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mac-os-x]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[pow]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rack]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4744</guid>
		<description><![CDATA[Pow is an open source, zero-configuration Rack server for Mac OS X. If you do web development on the Mac you will want to give this a gander.]]></description>
			<content:encoded><![CDATA[<p><a href="http://pow.cx/">Pow</a> is an open source, zero-configuration <a href="http://rack.rubyforge.org/">Rack</a> server for Mac OS X. If you do web development on the Mac you will want to give this a gander.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/pow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why you should never ask permission to clean up code</title>
		<link>http://cdevroe.com/notes/code-maintenance-dont-ask/</link>
		<comments>http://cdevroe.com/notes/code-maintenance-dont-ask/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 12:35:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[questions]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4672</guid>
		<description><![CDATA[&#8220;Can I take some time to clean up this code? It is horrendous.&#8221; The answer should always be yes to this question. However, often times we find ourselves up against walls in the form of budgets, time, due dates and expectation and so the typical &#8220;powers that be&#8221; at companies often veto the request. My [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p><img class="alignnone size-full wp-image-4675" title="Table at Panera" src="http://cdevroe.com/wp-content/mobile/photos/2011/03/2202482306_14aff0ea6a_z.jpg" alt="" width="640" height="480" /></p>
<p>&#8220;Can I take some time to clean up this code? It is horrendous.&#8221; The answer should always be yes to this question. However, often times we find ourselves up against walls in the form of budgets, time, due dates and expectation and so the typical &#8220;powers that be&#8221; at companies often veto the request. My advice to you, dear developer, is to never ask for permission for things you know are vital to your work.</p>
<p>You know your work environment better than I do so perhaps you can ask this question and immediately have the full support of your team. Sad to say that many aren&#8217;t so fortunate. They&#8217;ll ask their boss if they can take some time to clean up their code, make it efficient and extensible and, while the boss may recognize the need for such tasks, ultimately the boss will simply say &#8220;maybe we can do that later&#8221;.</p>
<p>Why is this the typical reaction? Because bosses don&#8217;t have to read, edit and support the code.</p>
<p>This is folly and every developer knows it. Bosses, (if you&#8217;re reading this) putting off a few hours worth of code clean-up now will only turn into many hours or days in the future. So by allowing your developers time to do this much needed code maintenance you&#8217;re actually saving your company money. But don&#8217;t worry &#8211; they&#8217;re not going to ask you for permission anymore. They&#8217;re just going to do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/code-maintenance-dont-ask/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;m heading to Florida for MagicRuby</title>
		<link>http://cdevroe.com/notes/magicruby/</link>
		<comments>http://cdevroe.com/notes/magicruby/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 04:10:10 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[florida]]></category>
		<category><![CDATA[magic kingdom]]></category>
		<category><![CDATA[magicruby]]></category>
		<category><![CDATA[orlando]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4557</guid>
		<description><![CDATA[Not many people know how well suited Viddler&#8216;s platform is for developing on top of. Kyle Slattery and I are heading to Florida in a few weeks to attend Magic Ruby to let some talented Ruby developers know just that. We&#8217;ve set up a special page on Viddler just for Magic Ruby to help let [...]]]></description>
			<content:encoded><![CDATA[<p>Not many people know how well suited <a href="http://viddler.com/">Viddler</a>&#8216;s platform is for developing on top of. <a href="http://kyleslattery.com">Kyle Slattery</a> and I are heading to Florida in a few weeks to attend <a href="http://magic-ruby.com/">Magic Ruby</a> to let some talented Ruby developers know just that.</p>
<p>We&#8217;ve set up <a href="http://viddler.com/magicruby">a special page on Viddler just for Magic Ruby</a> to help let people know some of the things we&#8217;re already doing with the Ruby community. We hope to learn a little about Ruby, to let attendees know about Viddler, and to enjoy the weather.</p>
<p>Viddler&#8217;s offerings to developers aren&#8217;t limited to only Ruby. We&#8217;ve got <a href="http://developers.viddler.com/documentation/api-v2/">a fantastic API</a> that has been recently overhauled and <a href="http://developers.viddler.com/projects/api-wrappers/">wrappers for just about every language</a>. We power some of the biggest brands online and our platform has been used to power web sites, applications, iPhone and iPad applications and much more. I personally hope to help Viddler grow in this area in 2011.</p>
<p>If you&#8217;re a developer and ever have any video needs &#8211; consider using Viddler for your next project.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/magicruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS to Twitter using PHP now supports OAuth</title>
		<link>http://cdevroe.com/links/rss2twitter-oauth/</link>
		<comments>http://cdevroe.com/links/rss2twitter-oauth/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 19:48:14 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4511</guid>
		<description><![CDATA[My handy dandy little script that makes it easy to parse an RSS feed and send links to Twitter using PHP just got a nice little update. It now supports OAuth and has been cleaned up quite a bit. Oh, version 1.0 is still available.]]></description>
			<content:encoded><![CDATA[<p></p>
<p>My handy dandy little script that makes it easy to <a href="https://github.com/cdevroe/rss2twitter-PHP5">parse an RSS feed and send links to Twitter using PHP</a> just got a nice little update. It now supports OAuth and has been cleaned up quite a bit.</p>
<p>Oh, <a href="https://github.com/cdevroe/rss2twitter-PHP5/tree/v1.0">version 1.0</a> is still available.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/rss2twitter-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to test a WordPress Dashboard Widget</title>
		<link>http://cdevroe.com/notes/howto-test-wp-dash-widget/</link>
		<comments>http://cdevroe.com/notes/howto-test-wp-dash-widget/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 05:23:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[dashboard widget]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[viddler wordpress plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4509</guid>
		<description><![CDATA[I&#8217;m working on a relatively big update to Viddler&#8217;s WordPress plugin and something that doesn&#8217;t seem to be documented anywhere is how to test a Dashboard Widget if your plugin supports one. It is fairly easy to add just a bit of code to make it pretty simple to test your widget. First, rather than [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>I&#8217;m working on a relatively big update to <a href="http://wordpress.org/extend/plugins/the-viddler-wordpress-plugin/">Viddler&#8217;s WordPress plugin</a> and something that doesn&#8217;t seem to be documented anywhere is how to test a Dashboard Widget if your plugin supports one.</p>
<p>It is fairly easy to add just a bit of code to make it pretty simple to test your widget. First, rather than only loading your WordPress Admin URL (ie. yoursite.com/wp-admin) you simply prepend the appropriate information to the end of the URL. Like this: yousite.com/wp-admin/index.php?page=viddler&#038;noheader.</p>
<p>Then, somewhere within your plugin&#8217;s code, you add something like the following:<br />
<code>function viddler_page() {<br />
	if ( isset( $_GET['noheader'] ) )<br />
		return viddler_dashboard_content();<br />
}</code></p>
<p>Obviously viddler_dashboard_content() is the function that I use to build the HTML for the Dashboard Widget. This will return the HTML you&#8217;re creating for your WordPress Admin Dashboard Widget sans JavaScript and CSS. But at least you&#8217;re able to test your output.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/howto-test-wp-dash-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upload video to Viddler using C#</title>
		<link>http://cdevroe.com/links/viddler-upload-csharp/</link>
		<comments>http://cdevroe.com/links/viddler-upload-csharp/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 02:36:15 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[c-sharp]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ejveal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[upload video]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4502</guid>
		<description><![CDATA[ejveal on Viddler graciously shared a snippet of C# to upload video to Viddler. Thanks for that Eric. /via the Viddler Developers Group.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.viddler.com/explore/ejveal/">ejveal on Viddler</a> graciously shared <a href="http://codepaste.net/hin1kr">a snippet of C# to upload video to Viddler</a>. Thanks for that Eric.</p>
<p>/via <a href="http://www.viddler.com/groups/developers/discuss/1877/">the Viddler Developers Group</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/viddler-upload-csharp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing PHPViddler 2 for the Viddler API</title>
		<link>http://cdevroe.com/links/phpviddler2/</link>
		<comments>http://cdevroe.com/links/phpviddler2/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 15:03:06 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpviddler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[video api]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4437</guid>
		<description><![CDATA[A little something for the developers out there. Over on the Viddler blog I announced that we&#8217;ve just released PHPViddler 2 (which is also on the great Github) which is a brand new PHP class for our brand new API version 2. Its all brand new baby.]]></description>
			<content:encoded><![CDATA[<p>A little something for the developers out there. Over on <a href="http://blog.viddler.com/">the Viddler blog</a> I <a href="http://blog.viddler.com/cdevroe/phpviddler2/">announced that we&#8217;ve just released PHPViddler 2</a> (which is also <a href="https://github.com/viddler/phpviddler">on the great Github</a>) which is a brand new PHP class for <a href="http://cdevroe.com/links/viddler-api-v2/">our brand new API version 2</a>. Its all brand new baby.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/phpviddler2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>37signals&#8217; Chalk dissected</title>
		<link>http://cdevroe.com/links/37signals-chalk-dissected/</link>
		<comments>http://cdevroe.com/links/37signals-chalk-dissected/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 14:36:26 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sam samhuri]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4360</guid>
		<description><![CDATA[Remember my link to Chalk? Sam Samhuri took the time to dissect exactly how it was built. Impressive. Both the app and the write up.]]></description>
			<content:encoded><![CDATA[<p>Remember <a href="http://cdevroe.com/links/chalk-37s/">my link to Chalk</a>? Sam Samhuri took the time to <a href="http://samisamhuri.blogspot.com/2010/11/37signals-chalk-dissected.html">dissect exactly how it was built</a>. Impressive. Both the app and the write up.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/37signals-chalk-dissected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zepto.js &#8211; Mobile JavaScript framework</title>
		<link>http://cdevroe.com/links/zepto/</link>
		<comments>http://cdevroe.com/links/zepto/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 13:07:25 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[zepto]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4352</guid>
		<description><![CDATA[Doing JavaScript for mobile platforms? Maybe you should check out Zepto.js. Update: Via Kyle Slattery on Twitter: Sencha. I haven&#8217;t yet had any experience using jQuery mobile (I simply do not do too much JavaScript anymore) but I wanted to make sure that any &#8220;competitors&#8221; to such a popular framework gets some attention. Does that [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Doing JavaScript for mobile platforms? Maybe you should <a href="http://zeptojs.com/">check out Zepto.js</a>.</p>
<p><strong>Update:</strong> Via <a href="http://twitter.com/kyleslattery/status/1325769041125376">Kyle Slattery on Twitter</a>: <a href="http://www.sencha.com/products/touch/">Sencha</a>.</p>
<p>I haven&#8217;t yet had any experience using <a href="http://jquerymobile.com/">jQuery mobile</a> (I simply do not do too much JavaScript anymore) but I wanted to make sure that any &#8220;competitors&#8221; to such a popular framework gets some attention. Does that make sense?</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/zepto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>There&#8217;s a new API in town at Viddler</title>
		<link>http://cdevroe.com/links/viddler-api-v2/</link>
		<comments>http://cdevroe.com/links/viddler-api-v2/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 17:55:03 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bethlehem]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[pennsylvania]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4348</guid>
		<description><![CDATA[Or, the video in which my head explodes. For more information, see the Viddler developers page. Note: If you are using Google Reader you may not be able to see this video. The Reader team is dragging their feet on supporting Viddler&#8217;s latest embed code. Come on over to my site to see it.]]></description>
			<content:encoded><![CDATA[<p>Or, the video in which my head explodes.</p>
<p><!--[if IE]><object width="640" height="402" id="viddlerOuter-64e54b38" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://www.viddler.com/player/64e54b38/"><param name="allowScriptAccess" value="always"><param name="allowNetworking" value="all"><param name="allowFullScreen" value="true"><param name="flashVars" value="f=1&#038;autoplay=f&#038;disablebranding=f"><object id="viddlerInner-64e54b38"><video id="viddlerVideo-64e54b38" src="http://www.viddler.com/file/64e54b38/html5mobile/" type="video/mp4" width="640" height="360" poster="http://www.viddler.com/thumbnail/64e54b38/" controls="controls"></video></object></object><![endif]--> <!--[if !IE]> <!--> <object width="640" height="402" id="viddlerOuter-64e54b38" type="application/x-shockwave-flash" data="http://www.viddler.com/player/64e54b38/"><param name="movie" value="http://www.viddler.com/player/64e54b38/"><param name="allowScriptAccess" value="always"><param name="allowNetworking" value="all"><param name="allowFullScreen" value="true"><param name="flashVars" value="f=1&#038;autoplay=f&#038;disablebranding=f"><object id="viddlerInner-64e54b38"> <video id="viddlerVideo-64e54b38" src="http://www.viddler.com/file/64e54b38/html5mobile/" type="video/mp4" width="640" height="360" poster="http://www.viddler.com/thumbnail/64e54b38/" controls="controls"></video> </object></object> <!--<![endif]--></p>
<p>For more information, see <a  href="http://developers.viddler.com/">the Viddler developers page</a>.</p>
<p>Note: If you are using Google Reader you may not be able to see this video. The Reader team is dragging their feet on supporting Viddler&#8217;s latest embed code. Come on over to my site to see it.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/viddler-api-v2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From the NFL to WordPress themes</title>
		<link>http://cdevroe.com/links/strojny-story/</link>
		<comments>http://cdevroe.com/links/strojny-story/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 13:57:25 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[drew strojny]]></category>
		<category><![CDATA[football]]></category>
		<category><![CDATA[nfl]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[the theme foundry]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=4154</guid>
		<description><![CDATA[Drew Strojny, former NFL player for the Eagles, Giants and Rams, had been moonlighting as a designer and open-source WordPress theme developer for years. The theme business, which is supported via support-membership-subscriptions (great business plan) is really taking off. Â So much so that he and his wife are doing that full time via The Theme [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nfl.com/players/drewstrojny/profile?id=STR571124">Drew Strojny</a>, former NFL player for the Eagles, Giants and Rams, had been moonlighting as a designer and open-source <a href="http://wordpress.org/">WordPress</a> theme developer for years. The theme business, which is supported via support-membership-subscriptions (great business plan) is really taking off. Â So much so that he and his wife are doing that full time via <a href="http://thethemefoundry.com/">The Theme Foundry</a>.</p>
<p>Recently Drew <a href="http://thethemefoundry.com/blog/last-3-years/">wrote up the backstory</a> to how this all happened and it is a fantastic read.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/strojny-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The time waster is every developer&#8217;s bane</title>
		<link>http://cdevroe.com/notes/development-bane-time-waster/</link>
		<comments>http://cdevroe.com/notes/development-bane-time-waster/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 12:31:38 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[bane]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[time waster]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3838</guid>
		<description><![CDATA[Every developer&#8217;s bane is a problem that seemingly has no cause or solution. Most times, after wasting hours and hours and hours trying to solve the issue, I will discover that there was a cause and there is a solution &#8211; but it is the time wasted, the sweat, the tears and the fist pounding [...]]]></description>
			<content:encoded><![CDATA[<p>Every developer&#8217;s bane is a problem that seemingly has no cause or solution. Most times, after wasting hours and hours and hours trying to solve the issue, I will discover that there was a cause and there is a solution &#8211; but it is the time wasted, the sweat, the tears and the fist pounding that really gets to me.</p>
<p>Last night I ran into such a problem wherein, so far at least, I&#8217;ve been unable to find the cause. It is very frustrating. Trial, error, trial, error, hunt, poke, literally cause my app to crash on purpose hoping I can find the problem, comment out line after line after line, change settings, etc. Usually during this process I will end up breaking my application even more and forget how to change it back (thank goodness for <a href="http://git-scm.com/">Git</a>).</p>
<p>The problem I&#8217;m currently having seems to be environmental. The problem doesn&#8217;t exist in one environment but does on another. This actually causes even more fist-pounding because I know my code works.</p>
<p>The part about this process that is most frustrating is that the time spent solving one of these minor problems (that have a major impact on the app) could be time spent making a great application. It is my least favorite part about programming. Nowadays it is possible to accomplish an incredible amount of work in a short period of time yet, still, you run into these little time wasting seemingly no cause no solution problems that take a very long time to work out. <strong>Grrr!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/development-bane-time-waster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Style guides make code collaboration easier.</title>
		<link>http://cdevroe.com/links/code-style-guides/</link>
		<comments>http://cdevroe.com/links/code-style-guides/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 13:46:06 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jonathan christopher]]></category>
		<category><![CDATA[monday by noon]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[style guide]]></category>
		<category><![CDATA[web-design]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3810</guid>
		<description><![CDATA[In this week&#8217;s Monday By Noon article Jonathan Christopher covers establishing style guides in code to make collaboration between multiple developers easier. Although it may seem like an anal attempt at control style guides can go along way in making a lot things easier in the project workflow. Reading through and fixing bugs in someone [...]]]></description>
			<content:encoded><![CDATA[<p>In this week&#8217;s <a href="http://mondaybynoon.com/">Monday By Noon</a> article Jonathan Christopher covers <a href="http://mondaybynoon.com/2010/03/29/establishing-style-guides/">establishing style guides in code</a> to make collaboration between multiple developers easier.</p>
<p>Although it may seem like an anal attempt at control style guides can go along way in making a lot things easier in the project workflow. Reading through and fixing bugs in someone else&#8217;s code, less conflicts will occur when merging branches and the speed at which new features can be added are all fringe benefits.</p>
<p>As Jon said: &#8220;It helps with everything from readability to quality control and especially helps a team become that much more cohesive.&#8221; So, do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/code-style-guides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pie Guy, a free web game for iPhone</title>
		<link>http://cdevroe.com/links/pie-guy/</link>
		<comments>http://cdevroe.com/links/pie-guy/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 15:55:12 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[neven mrgan]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[pie guy]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3265</guid>
		<description><![CDATA[Pie Guy is a fun game for your iPhone that is free, is installed via the Web (it is a fancy Web page), works offline, and is actually a lot of fun (works sorta like Pac-Man). Neven Mrgan, the developer of Pie Guy, built the game &#8211; not only so people can enjoy the game [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://media.tumblr.com/tumblr_ktn1zxjK1U1qz50x3.png" width="460" alt="Pie Guy, for iPhone." /></p>
<p><a href="http://mrgan.tumblr.com/post/257187093/pie-guy">Pie Guy</a> is a fun game for your iPhone that is free, is installed via the Web (it is a fancy Web page), works offline, and is actually a lot of fun (works sorta like Pac-Man).</p>
<p><a href="http://mrgan.tumblr.com/">Neven Mrgan</a>, the developer of Pie Guy, built the game &#8211; not only so people can enjoy the game &#8211; but to help show what is possible via HTML, JavaScript, and CSS for building games or applications on the iPhone using the Web browser rather than native cocoa technologies.</p>
<blockquote><p>&#8220;If you find Pie Guy a fun game to play, well thatâ€™s grand.</p>
<p>But, I hope Pie Guy will also be an opportunity for the code-savvy among you to learn a trick or two about making serious web apps for the iPhone. Just grab my source code and tweak it. Iâ€™m not talking about just a fancied-up webpage here; this is a fullscreen game, with fast gameplay and responsive touch controls. I canâ€™t wait to see what a better programmer does with this stuff (itâ€™s not hard to program better than me!)&#8221;</p></blockquote>
<p>A very notable thing to do and I hope a ton of talented developers take him up on it. I&#8217;d love to see stuff like <a href="http://jquery.com/">jQuery</a> for iPhone games/apps (which I&#8217;m sure exists in some form or another).</p>
<p>Also of note: As Neven pointed out in his announcement post &#8211; don&#8217;t try this on your first generation iPhones. This game only performs well on an iPhone 3GS.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/pie-guy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wrap text around an image with jQSlickWrap</title>
		<link>http://cdevroe.com/links/jqslickwrap/</link>
		<comments>http://cdevroe.com/links/jqslickwrap/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 13:55:24 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jqslickwrap]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3213</guid>
		<description><![CDATA[Neat jQuery plugin that makes it dead simple to wrap text around an image. The key point here is that it will actually wrap the text around the contents of the image, not just the bounding box of an image. /via Simon Willison.]]></description>
			<content:encoded><![CDATA[<p>Neat <a href="http://jquery.com/">jQuery</a> plugin that makes it dead simple to <a href="http://jwf.us/projects/jQSlickWrap/">wrap text around an image</a>. The key point here is that it will actually wrap the text around the contents of the image, not just the bounding box of an image.</p>
<p>/via <a href="http://simonwillison.net/2009/Nov/23/jqslickwrap/">Simon Willison</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/jqslickwrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome&#8217;s view source &#8220;oddity&#8221;</title>
		<link>http://cdevroe.com/notes/chrome-viewsource-oddity/</link>
		<comments>http://cdevroe.com/notes/chrome-viewsource-oddity/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 21:02:53 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[view source]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3118</guid>
		<description><![CDATA[Viewing the source of a page on Google Chrome is, for the most part, a terrific experience. Chrome supports syntax highlighting of the underlying code of a page making it much more readable for us geeks while we look under the hood. However, something I&#8217;ve run into of late is that it doesn&#8217;t work very [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p><a href="http://img.skitch.com/20091117-cms4nqd3eugq2m7ms72x2877bh.jpg"><img alt="" src="http://img.skitch.com/20091117-cms4nqd3eugq2m7ms72x2877bh.jpg" title="The source of cdevroe.com/about/ in Google Chrome for Mac." class="alignnone" width="480" /></a></p>
<p>Viewing the source of a page on <a href="http://google.com/chrome/">Google Chrome</a> is, for the most part, a terrific experience. Chrome supports syntax highlighting of the underlying code of a page making it much more readable for us geeks while we look under the hood.</p>
<p>However, something I&#8217;ve run into of late is that it doesn&#8217;t work very well for dynamically generated pages. The issue seems to be that since Google Chrome opens a new tab to view the source of the current URL that you&#8217;re on, it actually &#8220;reloads&#8221; that page with new session data, as well as ditching all of the POST variables you may have sent to it. This causes some confusion and may lead to head scratching (as it did for me).</p>
<p>I don&#8217;t know of a work around currently but knowing this may save you some time.</p>
<p>Side note: I&#8217;m loving <a href="http://google.com/chrome/">Google Chrome for Mac</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/chrome-viewsource-oddity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter is fast</title>
		<link>http://cdevroe.com/links/codeigniter-fast/</link>
		<comments>http://cdevroe.com/links/codeigniter-fast/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 14:02:25 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mike-rundle]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=3077</guid>
		<description><![CDATA[CodeIgniter is faster than its competitors by quite a margin. Glad we at Viddler chose it for our PHP-based solutions. /via Mike Rundle on Twitter.]]></description>
			<content:encoded><![CDATA[<p><a href="http://codeigniter.com/">CodeIgniter</a> is <a href="http://avnetlabs.com/php/php-framework-comparison-benchmarks">faster than its competitors</a> by quite a margin. Glad we at <a href="http://viddler.com/">Viddler</a> chose it for our PHP-based solutions.</p>
<p>/via <a href="http://twitter.com/mike9r/statuses/5612178870">Mike Rundle on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/codeigniter-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few tips to good API design</title>
		<link>http://cdevroe.com/notes/api-tips/</link>
		<comments>http://cdevroe.com/notes/api-tips/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:51:30 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[api design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[viddler]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2943</guid>
		<description><![CDATA[Good API design is essential to an API being used. The design of an API can be extremely daunting when you are just starting out with a new service so here are a few tips that can help you along the way to build a good, usable API. Use your own API. The very best [...]]]></description>
			<content:encoded><![CDATA[<p>Good API design is essential to an API being used. The design of an API can be extremely daunting when you are just starting out with a new service so here are a few tips that can help you along the way to build a good, usable API.</p>
<div class="postImage-right"><img src="http://cdevroe.com/wp-content/mobile/photos/2009/10/IMG_3505.jpg" alt="Fire hydrant" title="Fire hydrant" width="160" /></div>
<ul>
<li><strong>Use your own API.</strong> The very best way to make sure your API is equipped with everything one would need to build something of value is to use it yourself. You will find that by using your own API to build your product you will work out a lot of kinks that would otherwise frustrate third-party developers.</li>
<li><strong>Remove as many learning curves as possible.</strong> An example of this is to provide <em>more</em> documentation than you really need to by writing tutorials and not just flat documents. Code examples go a long way too. Provide &#8220;wrappers&#8221; or frameworks in common languages that help third party developers to &#8220;plug and play&#8221; with your API.</li>
<li><strong>Follow standard conventions.</strong> This is related to removing learning curves, but you do not go against the grain. Try to utilize as many standards as possible. Chances are any third party developers that use your API will already be familiar with much of what you&#8217;re doing.</li>
<li><strong>Support multiple response types.</strong> Do not assume that third party developers will only use the response type that you prefer. Supporting XML, JSON, PHP, and others is not too much more work and yet has a measurable impact on your APIs adoption.</li>
<li><strong>Create and keep your own conventions.</strong> If you have one way to do things try to stick with it all the way through your API. An example of this would be how Twitter recently added a Lists API to their API and used the very same convention of interacting with that API as they do with accounts. This makes integration of new features dead simple and <a href="http://www.scripting.com/stories/2009/10/25/goodApiDesignAtTwitter.html">it will be appreciated</a>.</li>
<li><strong>Add some brains!</strong> If there are common actions that must be taken by all third party developers to interact with your API try to build those actions into the API. A good example of this is <a href="http://code.flickr.com/blog/2009/07/06/extraextraextra/">Flickr&#8217;s support for machine tags</a>. Although a third party developer could do all of the work on their end to work with namespaces, predicates, and ultimately the values they are looking for &#8211; Flickr makes it easy by doing all of that work on the server-side. Taking the most common actions and rolling them back into the API will slowly build tremendous value in your API.</li>
<li><strong>Open source as much code as you can.</strong> If you build any tools, frameworks, testing applications, products, or anything that uses your API &#8211; try to release that stuff as open source. This will help any new third parties to be able to see real examples of products that use your API. It would also be a good idea to promote open source projects to use your API as well so that the entire development community that you build can benefit.</li>
<li><strong>Communicate with those using your API.</strong> Give the developers a clear path to communicate with you about your API, their applications, or anything they may need to get their jobs done. You will learn a lot about what you are lacking that you may have never thought of.</li>
<li><strong>Drink a lot of caffeine.</strong></li>
</ul>
<p>These are just a few tips that I&#8217;ve learned in working with <a href="http://viddler.com/">Viddler</a>&#8216;s development team to build <a href="http://developers.viddler.com/">our API</a>. We&#8217;re currently working on the next version of our API, dubbed version 2, and we&#8217;ll be making massive improvements to the way that the API works, is documented, and how we use it internally. We&#8217;ve learned a lot over the last few years and we&#8217;re taking all of the tips above and everything we&#8217;ve learned from our development community to build what we think is a much more solid offering.</p>
<p>I hope that if you are building an API you can learn from our experience, our failures, and our successes (and I&#8217;ll try to share more of them here).  If you have anything you&#8217;d like to add about good API design please do so in the comments.</p>
<p><small>The photo of the fire hydrant has nothing to do with this post but I liked it. It is one from <a href="http://cdevroe.com/photos/lincolnton-nc/">my Lincolnton, North Carolina photo set</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/api-tips/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zen-coding, snippets for the rest of us</title>
		<link>http://cdevroe.com/links/zencoding/</link>
		<comments>http://cdevroe.com/links/zencoding/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:50:52 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[coda]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jonathan christopher]]></category>
		<category><![CDATA[monday by noon]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[zen-coding]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2725</guid>
		<description><![CDATA[Jonathan Christopher of Monday By Noon talks about snippets and zen-coding, a &#8220;Set of plugins for HTML and CSS hi-speed coding&#8221;, in a nice piece about his experience with same. I&#8217;ve been dabbling with zen-coding plugins with Coda for about a week. Loving it.]]></description>
			<content:encoded><![CDATA[<p>Jonathan Christopher of <a href="http://mondaybynoon.com/">Monday By Noon</a> <a href="http://mondaybynoon.com/2009/08/17/the-art-of-zen-coding-bringing-snippets-to-a-new-level/">talks about snippets and zen-coding</a>, a &#8220;Set of plugins for HTML and CSS hi-speed coding&#8221;, in a nice piece about his experience with same.</p>
<p>I&#8217;ve been dabbling with <a href="http://code.google.com/p/zen-coding/">zen-coding plugins</a> with <a href="http://panic.com/coda/">Coda</a> for about a week. Loving it.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/zencoding/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to: Use the Viddler API with CodeIgniter</title>
		<link>http://cdevroe.com/links/how-to-use-the-viddler-api-with-codeigniter/</link>
		<comments>http://cdevroe.com/links/how-to-use-the-viddler-api-with-codeigniter/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 01:39:33 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpviddler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[viddler api]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2642</guid>
		<description><![CDATA[Me, on The Viddler Developers Blog: &#8220;The Viddler team is using CodeIgniter more and more for our internal PHP projects. Obviously we need to use CodeIgniter with the Viddler API quite a bit so we figured weâ€™d share with you how easy it is to include PHPViddler, the open source PHP API wrapper class for [...]]]></description>
			<content:encoded><![CDATA[<p>Me, on <a href="http://developers.viddler.com/blog/">The Viddler Developers Blog</a>:</p>
<blockquote><p>&#8220;The Viddler team is using <a href="http://codeigniter.com/">CodeIgniter</a> more and more for our internal PHP projects. Obviously we need to use CodeIgniter with <a href="http://developers.viddler.com/documentation/api/">the Viddler API</a> quite a bit so we figured weâ€™d share with you how easy it is to include <a href="http://developers.viddler.com/projects/api-wrappers/phpviddler/">PHPViddler</a>, the open source PHP API wrapper class for the Viddler API, in your CodeIgniter application.&#8221;</p></blockquote>
<p>Read more in the blog post titled <a href="http://developers.viddler.com/2009/08/04/codeigniter-phpviddler/">How to: Use the Viddler API with CodeIgniter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/how-to-use-the-viddler-api-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Igniter vs. CakePHP &#8211; An overview by Jonathan Snook</title>
		<link>http://cdevroe.com/links/cakephp-codeigniter/</link>
		<comments>http://cdevroe.com/links/cakephp-codeigniter/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 04:18:07 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jonathan snook]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2601</guid>
		<description><![CDATA[Speaking of Code Igniter, Jonathan Snook (way back in March 2007) compared it to CakePHP. Although both frameworks have matured slightly since then, this overview still holds up ok &#8211; although he is a fan of CakePHP where I&#8217;d choose Code Igniter. Thank goodness for choices.]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Speaking of <a href="http://codeigniter.com/">Code Igniter</a>, <a href="http://snook.ca/">Jonathan Snook</a> (way back in March 2007) <a href="http://snook.ca/archives/php/codeigniter_vs_cakephp/">compared it to CakePHP</a>. Although both frameworks have matured slightly since then, this overview still holds up ok &#8211; although he is a fan of <a href="http://cakephp.org/">CakePHP</a> where I&#8217;d choose Code Igniter. Thank goodness for choices.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/cakephp-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A PHP Wrapper for Freewheel.tv&#8217;s API</title>
		<link>http://cdevroe.com/links/freewheelphp/</link>
		<comments>http://cdevroe.com/links/freewheelphp/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 19:36:23 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jeff johns]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2448</guid>
		<description><![CDATA[Jeff Johns, fellow Viddler team member and jogger (although he&#8217;s much more accomplished than I in that area), recently wrote and released an open source PHP wrapper for Freewheel&#8217;s API. Much needed by the Viddler team, open for the world.]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/phpfunk/">Jeff Johns</a>, fellow <a href="http://viddler.com/">Viddler</a> team member and jogger (although he&#8217;s <em>much more</em> accomplished than I in that area), recently wrote and released an open source <a href="http://code.google.com/p/freewheelphp/">PHP wrapper for Freewheel&#8217;s API</a>. Much needed by the Viddler team, open for the world.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/freewheelphp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Add a progress bar to your Viddler uploads</title>
		<link>http://cdevroe.com/links/phpviddleruploadify/</link>
		<comments>http://cdevroe.com/links/phpviddleruploadify/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 12:38:23 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpviddler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[uploadify]]></category>
		<category><![CDATA[uploading]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2378</guid>
		<description><![CDATA[We get this question a lot at Viddler: How can I add a progress bar to my uploads using the Viddler API? We&#8217;re always asked if this is something included in our API wrappers. Until now, it hasn&#8217;t been. That&#8217;s where phpViddlerUploadify comes in. This extension to phpViddler, our PHP wrapper for our API, makes [...]]]></description>
			<content:encoded><![CDATA[<p>We get this question a lot at <a href="http://viddler.com/">Viddler</a>: How can I add a progress bar to my uploads using the Viddler API? We&#8217;re always asked if this is something included in <a href="http://developers.viddler.com/projects/api-wrappers/">our API wrappers</a>. Until now, it hasn&#8217;t been. That&#8217;s where <a href="http://developers.viddler.com/projects/api-wrappers/phpviddler/uploadify/">phpViddlerUploadify</a> comes in. This extension to <a href="http://developers.viddler.com/projects/api-wrappers/phpviddler/">phpViddler</a>, our PHP wrapper for <a href="http://developers.viddler.com/documentation/api/">our API</a>, makes it pretty easy to use the open source JavaScript library <a href="http://jquery.com/">jQuery</a> and the extension <a href="http://uploadify.com/">Uploadify</a> to add progress indicators to your Viddler uploads.</p>
<p>Go forth, and hack!  Oh, and <a href="http://code.google.com/p/phpviddleruploadify/">its completely open source too</a>. (More on this later.)</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/phpviddleruploadify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coda + Versions + Beanstalk = Drool</title>
		<link>http://cdevroe.com/links/code-versions-beanstalk/</link>
		<comments>http://cdevroe.com/links/code-versions-beanstalk/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 04:59:59 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[beanstalk]]></category>
		<category><![CDATA[coda]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[robert palmer]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tuaw]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[versions]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=1299</guid>
		<description><![CDATA[Quite possibly the easiest way to use version control on the Macintosh.]]></description>
			<content:encoded><![CDATA[<p>Robert Palmer, writing for <a href="http://tuaw.com/">TUAW</a>, writes &#8220;<a href="http://www.panic.com/coda/">Coda</a>Â is $99,Â <a href="http://versionsapp.com/">Versions</a>Â is free (while it&#8217;s in beta), andÂ <a href="http://beanstalkapp.com/">Beanstalk</a>Â starts at $15 per month (which is the plan I have). Put together, though, it&#8217;s a million-dollar solution.&#8221;</p>
<p>I couldn&#8217;t agree more. I&#8217;ve been using this solution for some time now &#8211; in fact, many of the <a href="http://viddler.com/">Viddler</a> team members have. It strikes an excellent balance between simplicity, ease of use, and efficiency to help us get our work done.</p>
<p>Source:Â <a href="http://www.tuaw.com/2008/10/24/friday-favorite-coda-versions-beanstalk/">Friday Favorite: Coda + Versions + Beanstalk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/code-versions-beanstalk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Figuring out the proper dimensions to embed the Viddler player using JavaScript or PHP</title>
		<link>http://cdevroe.com/notes/viddler-embed/</link>
		<comments>http://cdevroe.com/notes/viddler-embed/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 04:33:43 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[oembed]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=1263</guid>
		<description><![CDATA[A few simple functions in both JavaScript and PHP to figure out the appropriate height for Viddler's video player.]]></description>
			<content:encoded><![CDATA[<div class="postImage"><img title="Pickles programming" src="http://cdevroe.com/wp-content/mobile/photos/2008/10/photo-338.jpg" alt="" width="540" />
<p>Pickles helps out. Circa January 2007.</p>
</div>
<p>Viddler&#8217;s player is, in my incredibly biased opinion, the best Flash video player available. Especially if you&#8217;re of the sort that likes to engage in conversation or put an incredible amount of metadata <em>in</em> your videos.</p>
<p>Using <a href="http://wiki.developers.viddler.com/">Viddler&#8217;s API</a> for various projects has always resulted in some sort of learning experience for me. Not only in using APIs in general, but in how to best utilize Viddler&#8217;s platform, player, API, etc. etc. to get the best results. This helps to improve Viddler&#8217;s services, but also the Web at large.</p>
<p>One of the things I, and the entire team at <a href="http://viddler.com/">Viddler</a>, have learned is that most people want their player to perfectly wrap their video. That is, they&#8217;d like their video to be as chromeless as possible while retaining the conversational quality of the enhanced timeline that Viddler affords.</p>
<p>Knowing this we were excited when <a href="http://oembed.com/">oEmbed</a>, and its underlying methodology, allowed for this to happen programmatically. Â This made it rather easy for developers, such as the team at Pownce, to use this service on Viddler to embed videos knowing only the URL assigned to it, in a way that shows off the quality of the player, and keeping the aspect ratio of the video that the publisher created. Perfect.</p>
<p>That one underlying and undocumented feature of oEmbed, that is, that the response from oEmbed was an embed code with the dimensions perfectly suited for your video based on a maximum width &#8211; is what I think will make the following JavaScript useful to developers using Viddler&#8217;s API.</p>
<p>The response from the API method of <a href="http://wiki.developers.viddler.com/index.php/Viddler.videos.setDetails">viddler.videos.getDetails</a> includes the dimensions of the original video uploaded. Â It does not, however, include the embed code of the proper dimensions given a specific width. You have to either figure that out own your own, use oEmbed (which is yet another call),Â or do the math yourself.</p>
<p>Included in <a href="http://cdevroe.com/wp-content/mobile/photos/2008/10/viddler-embed.zip">this simple ZIP file</a> is both the JavaScript and PHP functions you would need to determine the appropriate height for a video given a specific maximum width. Â These files do not include the ability to use the oEmbed service. For that, you will need phpViddler or your own homegrown way to call that service.</p>
<p>Happy embedding!</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/viddler-embed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FancyZoom, rewritten using Prototype</title>
		<link>http://cdevroe.com/links/fancyzoom-prototype/</link>
		<comments>http://cdevroe.com/links/fancyzoom-prototype/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 12:55:01 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[cabel sasser]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fancyzoom]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[john nunemaker]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[ordered list]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=1089</guid>
		<description><![CDATA[John Nunemaker, of Ordered List, decided that Cabel Sasser's smooth zooming Javascript could use some improvement.]]></description>
			<content:encoded><![CDATA[<p>Earlier this year <a href="http://www.cabel.name/">Cabel Sasser</a>, co-founder and designer at the incredible software house <a href="http://panic.com/">Panic</a>, <a href="http://www.cabel.name/2008/02/fancyzoom-10.html">released</a> a &#8220;Smooth Javascript for Image Zooming For Your Web Pages&#8221;. The implementation was simple enough, worked really well, and had the desired outcome &#8211; which was the ability to &#8220;zoom&#8221; into images in a smooth, very Mac-like way.</p>
<p><a href="http://railstips.org/">John Nunemaker</a>, of <a href="http://orderedlist.com/">Ordered List</a>, decided that Cabel&#8217;s implementation of this effect could use some improvement. Â Not only was Cabel&#8217;s &#8220;built from scratch&#8221;, which means to say that he didn&#8217;t take advantage of any of the Javascript libraries that so many web application developers already have included in their projects, but it also relied on AJAX to load the frame&#8217;s contents.</p>
<p>What that means exactly, is that Cabel&#8217;s implementation retrieved the data for the &#8220;pop up&#8221; window the moment you clicked, whereas John&#8217;s actually loads all of the &#8220;pop up&#8221; window&#8217;s data that he needs on the initial page load. Â Obviously both of these methodologies have their place, their pros, and their cons, but it is all about choice, isn&#8217;t it?</p>
<p>The one thing I do like about John&#8217;s implementation over Cabel&#8217;s is that it allows for just about anything to be loaded in the &#8220;pop up&#8221; window rather than only images. Â But this is only a small distinction in that Cabel&#8217;s code could be easily modified to allow the very same thing.</p>
<p>Now, if someone would take the time to simply port this to jQuery so that I don&#8217;t have to&#8230;</p>
<p>Source: <a href="http://orderedlist.com/articles/fancyzoom-meet-prototype">FancyZoom meet Prototype</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/fancyzoom-prototype/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The new Kyle Slattery.com</title>
		<link>http://cdevroe.com/links/kyleslatterycom/</link>
		<comments>http://cdevroe.com/links/kyleslatterycom/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 00:26:13 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[personal site]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[suggestions]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=961</guid>
		<description><![CDATA[My friend Kyle has a new site. It's purrdy.]]></description>
			<content:encoded><![CDATA[<p>My friend and <a href="http://viddler.com/">Viddler</a> team member <a href="http://kyleslattery.com/">Kyle Slattery</a> recently relaunched his Web site. Â He explains his thoughts on the design and development <a href="http://kyleslattery.com/notebook/entries/a-fresh-start">in this post</a>, which got me to thinking. Â Having your own Web site is a truly awesome thing.</p>
<p>Especially on today&#8217;s Internet. I&#8217;ve had &#8220;my own site&#8221; for as long as I&#8217;ve ever been online.  It all started on some Geocities and Tripod powered sites in the mid-90s.  Then, when I switched from using AOL Â (read: When I finally realized AOL was not the Internet.), I used some shared space on Prodigy.net, my ISP at the time.  It wasn&#8217;t long before I discovered the world of Web development and purchased a domain (then called colinspage.com) for around $70 per year.</p>
<p>Fast forward about a year and a few of my friends put together a Star Wars related news site called thehutt.net. I didn&#8217;t help out too much with the design and development but I did write some for the site. Â It wasn&#8217;t long after that when I wanted to scratch my own itch and had my own blog. Â Which ended up turning towards <a href="http://theubergeeks.net/">theubergeeks.net</a>, and now I have <a href="http://cdevroe.com/">cdevroe.com</a>.</p>
<p>I think having your own Web site is a valuable thing, especially for those of us that work on the Web. Â It helps you stay in touch with what people are going through when they want to publish content online, edit some code, or even customize an open source project. Â There are countless lessons to be learned by having your own site to fiddle with.</p>
<p>Great work Kyle. I&#8217;ll check in on you and your site(s) in 14 years.</p>
<p>Source: <a href="http://kyleslattery.com/">Kyle Slattery.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/kyleslatterycom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brightkite&#8217;s smart &#8220;profile not found&#8221; pages</title>
		<link>http://cdevroe.com/notes/brightkite-404/</link>
		<comments>http://cdevroe.com/notes/brightkite-404/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:21:33 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[best-practices]]></category>
		<category><![CDATA[brightkite]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=933</guid>
		<description><![CDATA[Brightkite has a smart "profile not found" page.]]></description>
			<content:encoded><![CDATA[<p>For the unaware, a 404 page is a page you typically see when the page you&#8217;re trying to reach simply does not exist. Â In geek speak, 404 literally means &#8220;Page Not Found&#8221;. Â Here is <a href="http://cdevroe.com/not-a-page/">an example 404 page on my site</a>.</p>
<p>My 404 page consists of a simple message asking you to contact me to let me know that something went wrong. Â There are a lot of services that do much more than simply display a typical &#8220;Page Not Found&#8221; message, and today we&#8217;re going to look at <a href="http://brightkite.com/">Brightkite</a>&#8216;s &#8220;smart&#8221; &#8220;profile not found&#8221; pages.</p>
<p>Brightkite knows how their user&#8217;s are using the system. Â An example of this was brought to my attention by my coworker <a href="http://kyleslattery.com/">Kyle Slattery</a>. Â He told me about Brightkite&#8217;s ability to detect when a user does not exist on Brightkite, but may exist on <a href="http://twitter.com/">Twitter</a>.</p>
<p>Brightkite and Twitter share the same prefix for username detection, the @ symbol ((Other services, like <a href="http://pownce.com/">Pownce</a>, use the ! exclamation point.)). Â Since Brightkite knows that some people use their system as a geo-enabled Twitter client, like <a href="http://cdevroe.com/notes/fitting-brightkite/">I explained the other day</a>, sometimes you&#8217;ll find people &#8220;talking&#8221; to or about people that do not yet have a Brightkite account. Kyle gave me the example of the username <a href="http://brightkite.com/people/mikemangino">@mikemangino</a>. Â That username does not exist on Brightkite but <a href="http://twitter.com/mikemangino">it does on Twitter</a>.</p>
<p>Here is what the profile page looks like on Brightkite for this user.</p>
<p><img title="Brightkite - Not Found" src="http://cdevroe.com/wp-content/mobile/photos/2008/07/person-not-found.jpg" alt="" width="540" /></p>
<p>Rather than show <a href="http://brightkite.com/not-a-page">their typical 404 error page</a>, Brightkite asks if you are looking for the same username on Twitter, and even gives you the option to invite that person over to Brightkite. Â Kyle thought this was &#8220;brilliant&#8221;, and I do too. Â Kyle was wrong about one thing though; Brightkite&#8217;s &#8220;profile not found&#8221; page isn&#8217;t as smart as he might have thought. Â Here is <a href="http://brightkite.com/objects/30895ee97e2aad51f2ce01bd59bdaa4972b8e12c">what Kyle said</a>:</p>
<blockquote><p>&#8220;Brilliant, if you go to a user on BrightKite that exists on Twitter, but not on BK, there&#8217;s a link to invite them, not a 404.&#8221;</p></blockquote>
<p>I don&#8217;t think Kyle actually meant to say that Brightkite <em>detects</em> the user on Twitter, because <a href="http://brightkite.com/people/notaperson">they definitely do not</a>. Â But I just wanted to be sure it was clearly stated.</p>
<p>Brightkite&#8217;s &#8220;profile not found&#8221; page is smart enough to know that people are probably on that page because they clicked an @username to a Twitter account and not a Brightkite account. And that is indeed brilliant. Â It is a great example of howÂ Brightkite is continuously showing themselves to be &#8220;in touch&#8221; with how people use their system which makes Brightkite a joy to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/brightkite-404/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>About a million little things</title>
		<link>http://cdevroe.com/notes/cdevroe-1mlittle/</link>
		<comments>http://cdevroe.com/notes/cdevroe-1mlittle/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 19:13:06 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[cdevroe.com]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=904</guid>
		<description><![CDATA[More than a few updates to this site's theme.]]></description>
			<content:encoded><![CDATA[<p>I have been slowly making small adjustments to this site&#8217;s theme locally on my computer for weeks. Â Every now and then, as I&#8217;d find a bug or something that bugged me on the live site, I&#8217;d open <a href="http://panic.com/coda/">Coda</a>, make some adjustments, check them locally and save them for publishing later ((I&#8217;m a publish once and fix a ton of things kinda guy.)).</p>
<p>These changes are really, really small. Â Unless you come to this site on a daily basis (you do, don&#8217;t you?) you may not notice any of them. Â A pixel here, a color adjustment there, an array sorting issue here, a speed improvement there. But these changes were mounting up. Â Even browsing my site myself, looking for old entries, I became annoyed with some of the existing bugs because I knew I had already fixed them on my local install.</p>
<p>So today, while I&#8217;m running out to spend the weekend in The Finger Lakes region of New York for a wine festival, I published these &#8220;little things&#8221; to the live site. Â I wish there was a way I could calculate the changes (perhaps I should be using Subversion or something), but my guess would be somewhere in the hundreds. Â I still have some things that I&#8217;d love to get around to adjusting, but they&#8217;ll have to wait for the next update.</p>
<p>So, if you&#8217;re feeling adventurous, go ahead and <a href="http://cdevroe.com/">poke around</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/cdevroe-1mlittle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Third-party iPhone applications: Take one.</title>
		<link>http://cdevroe.com/notes/iphone-apps-day1/</link>
		<comments>http://cdevroe.com/notes/iphone-apps-day1/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 12:59:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[aol]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[connected flow]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[exposure]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[mobile aim]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=854</guid>
		<description><![CDATA[A few thoughts from the first weekend of third-party iPhone applications.]]></description>
			<content:encoded><![CDATA[<p>So it has begun, the next-generation in mobile computing. Â Did you miss it? Â On Friday, officially, <a href="http://apple.com/">Apple</a> released its updates for both iTunes and the iPhone making it possible for those who owned iPhones, or who purchased the brand-new iPhone 3G on Friday, to install 3rd party applications on the iPhone.</p>
<p>The most notable take-away from this first weekend of my using third-party applications on my iPhone is how very different the applications I&#8217;ve downloaded from the store feel from the applications I&#8217;ve been using for over a year. Â It is something I didn&#8217;t think about as I was anticipating the release of this update. Â Nearly all of the iPhone applications that are currently available are, in my opinion, beta-level 1.0 applications. Â Add to it that they&#8217;ve not been built by Apple, and we&#8217;re talking about a lot of poorly designed applications.</p>
<p>This isn&#8217;t to say that the applications that were release on day-one aren&#8217;t valuable, good applications to have, worth the money they&#8217;re asking for, or even that they&#8217;re bad applications in any sense. Â It is just that they don&#8217;t feel nearly as refined as the applications that Apple has released themselves.</p>
<p>Some of the most glaring examples of this are <a href="http://blog.facebook.com/blog.php?post=22389032130">Facebook&#8217;s application</a>, <a href="http://connectedflow.com/exposure/">Connected Flow&#8217;s Exposure</a>, and the <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=281704574&amp;mt=8">Mobile AIM</a>Â (this is an iTunes link) client by AOL.</p>
<p>First, Facebook&#8217;s iPhone application, while built natively for the iPhone &#8211; is not nearly as refined or aesthetically pleasing as <a href="http://iphone.facebook.com/">their Web application for the iPhone</a>. Don&#8217;t get me wrong, it is a great application, and I think it works well. Â But at the moment I prefer their Web app.</p>
<div class="postImage-right"><a href="http://cdevroe.com/wp-content/mobile/photos/2008/07/photo1.jpg"></a><a href="http://cdevroe.com/wp-content/mobile/photos/2008/07/photo1.jpg"><img class="alignnone size-thumbnail wp-image-855" title="Exposure" src="http://cdevroe.com/wp-content/mobile/photos/2008/07/photo1-150x150.jpg" alt="" width="150" height="150" /></a>
<p>Exposure.</p>
</div>
<p>Second, Connected Flow&#8217;s Exposure application, the one <a href="http://cdevroe.com/links/iphone-app-exposure/">I linked to the other day</a>, is a pretty good way to browse through <a href="http://flickr.com/">Flickr</a>. Â If I had to guess at the UI of this application prior to launch I would have been dead wrong. Â The application feels very much like the Contact app on the iPhone. Â Click a menu item, slide to the right, see that information, then slide back. Â But, clicking on the photo and clicking on the arrow give you two different information panes. Â One is the photo, full-screen, another is the photo&#8217;s metadata (ie. number of views, comments, tags, etc.). Â I think all of this information should be on the same panel, inline, and the ability to leave a comment on a photo should not be 3 or 4 clicks into the application. Â I think this application should look like the iPhone&#8217;s built-in photo browser, with added metadata on touch. Â But it isn&#8217;t. Â It went a completely different direction than I would have assumed. It isn&#8217;t all bad, Exposure is free!</p>
<div class="postImage-left"><a href="http://cdevroe.com/wp-content/mobile/photos/2008/07/photo.jpg"><img src="http://cdevroe.com/wp-content/mobile/photos/2008/07/photo-150x150.jpg" alt="" title="Mobile AIM" width="150" height="150" class="alignnone size-thumbnail wp-image-856" /></a>
<p>Mobile AIM</p>
</div>
<p>Last, at least in this post, is the Mobile AIM client. This application feels like someone built it that never built for the Macintosh before &#8211; but they tried really hard and nearly pulled it off. Â Some of the UIs largest faults is that there is no way to sign out from the application unless you go into your iPhone&#8217;s settings panel first, there is no way to close an IM &#8220;tab&#8221; without first clicking edit on the active IMs list and then clicking the minus button, and that Mobile AIM does not use your iPhone&#8217;s contacts. Â There are many, many things wrong with this application but the fact that it works and you can be on AIM anywhere in the world makes this one a must-have-installed application.</p>
<p>Let me be clear, I&#8217;ve chosen these applications not because they are the worst user interfaces, but because they are among some of the better ones. Â These are some of the applications that I think are going to dramatically improve over time. Â I think most iPhone application UIs will improve overtime, just as some of our favorite applications on the Macintosh have. Â I think more applications will be released that are better than these and as they do, everyone will benefit from the competition.</p>
<p>Kudos to all of the developers that locked themselves in their closets and tried their best to provide good, stable applications for the launch of the App Store. Â And I&#8217;m looking forward to the future versions of your applications.</p>
<p>Now, if I could just find time to go through the hundreds of applications in the App Store.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/iphone-apps-day1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pagination in Facebook applications with PHP</title>
		<link>http://cdevroe.com/links/php-facebook-pagination/</link>
		<comments>http://cdevroe.com/links/php-facebook-pagination/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:56:03 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[f8]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[viddler]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=851</guid>
		<description><![CDATA[A snippet from Kyle Slattery.]]></description>
			<content:encoded><![CDATA[<p></p>
<p><a href="http://kyleslattery.com/">Kyle Slattery</a>, Viddler&#8217;s Lead Social Developer, recently released <a href="http://blog.kyleslattery.com/2008/07/08/php-facebook-paginator/">a nice little PHP-snippet for Facebook application developers</a>:</p>
<blockquote><p>&#8220;While building theÂ <a href="http://apps.facebook.com/viddler/">Viddler Facebook application</a>, I needed to create a pagination tool that worked just like Facebookâ€™s. After looking at their HTML and their logic of what pages to display, I came up with one, which Iâ€™m releasing for anyone to use.&#8221;</p></blockquote>
<p>Simple. Straight forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/php-facebook-pagination/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oEmbed: Quick, easy, resource embedding</title>
		<link>http://cdevroe.com/notes/oembed-sofar/</link>
		<comments>http://cdevroe.com/notes/oembed-sofar/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 12:26:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[oembed]]></category>
		<category><![CDATA[pownce]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[viddler]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=752</guid>
		<description><![CDATA[A quick overview of oEmbed, how I got involved with the spec, and who is using it so far.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to attempt to keep this short and simple, because so many others have already done a great job documenting, giving examples of use, and extending <a href="http://oembed.com/">oEmbed</a> that it&#8217;d be silly of me to rewrite all of that here.</p>
<p>However, since I&#8217;ve never mentioned oEmbed here on my site, I wanted to quickly go through how it came to be, how I got involved, what it is, and who is using it so far.</p>
<h3>How oEmbed came to be</h3>
<p>I wasn&#8217;t in the room, so I can&#8217;t be sure without asking the four most involved people in the development of the spec, who was the &#8220;inventor&#8221; of oEmbed. Â It was either <a href="http://www.iamcal.com/">Cal Henderson</a>, <a href="http://leahculver.com/">Leah Culver</a>, <a href="http://immike.net/">Mike Malone</a>, or <a href="http://rcrowley.org/">Richard Crowley</a>. Â Leah, on her blog, says that they were all at dinner and were discussing this solution. Â So we&#8217;ll give them all credit.</p>
<p>I got involved, not the with the development of the spec itself, but with implementing it in one of the first providers of the spec, <a href="http://viddler.com/">Viddler</a>. Â Mike Malone, who is a friend of mine who happened to begin working at <a href="http://pownce.com/">Pownce</a>, the first consumer of the spec, told me it&#8217;d be a neat idea if I implemented oEmbed early-on for Viddler. Â I took one look at the spec and immediately thought it&#8217;d be a good idea.</p>
<h3>What is oEmbed?</h3>
<p>If you are like me, then you think of the World Wide Web as a library of information. Â This information has a wide range of media types. Â Just like in a library, there are countless numbers of books each having their own pages, photos, words, etc. Â However, if I said to you &#8211; go pick up John Steinbeck&#8217;s <em>The Grapes of Wrath</em>, turn to page 157 (which is the first page of Chapter Eleven) and let me see it &#8211; you could do that pretty easily.</p>
<p>Now, think of that page 157 as a URI. You&#8217;re probably used to seeing theÂ acronymÂ of URL, which rolls of the tongue much easier, but URI or Uniform Resource Identifier, is a much more proper term. Â So it is an unique identifier for a resource. Â In the case of <em>The Grapes of Wrath</em>, the resource is just plain old text. Â But on the web we have URIs that link us to text as well as photos, audio, and video.</p>
<p>If I were to link you to <a href="http://www.viddler.com/explore/cdevroe/videos/424/">this URI</a> and you followed it, you would see that its primary purpose is to show you <a href="http://www.viddler.com/explore/cdevroe/videos/424/">my iPhone macro lens video demonstration</a>. Â Viddler is the book, my video is the page, the video itself is the resource.</p>
<p>Get it? Got it? Good.</p>
<p>Now. Lets say that you were a developer and you wanted to allow people to link from your application to a any resource on the Web, and embed that resource into your application directly. Â Here is a quick example, which at this time does not yet exist but I think it should. Lets say that you are having an instant message conversation with me and you give me a URI to one of your photos on Flickr. Â Wouldn&#8217;t it be neat if that photo automatically showed up, as a small thumbnail, within our conversation just because you linked to it? Â This is the type of innovation oEmbed allows for.</p>
<h3>Who is using it?</h3>
<p>It would seem that <a href="http://oembed.com/">oEmbed.com&#8217;s &#8220;Providers&#8221; section</a> is being maintained, so that&#8217;d be the best resource to see who are the providers of oEmbed so far. Â It doesn&#8217;t seem like the &#8220;Consumers&#8221; section of the site is being maintained, as I&#8217;m fairly sure more than just Pownce is using this. I think <a href="http://lijit.com/">Lijit</a> might be experimenting with it, but it may not have gone live yet.</p>
<p>As of this writing <a href="http://flickr.com/">Flickr</a>, <a href="http://viddler.com/">Viddler</a>, <a href="http://qik.com/">Qik</a>, <a href="http://pownce.com/">Pownce</a>, <a href="http://hulu.com/">Hulu</a>, and <a href="http://revision3.com/">Revision 3</a> are providing end-points for this service. Â You can navigate to the documentation for each of these service providers by going to oEmbed.com&#8217;s Provider section.</p>
<h3>Conclusion</h3>
<p>I think if you are a potential provider of oEmbed you would do well to add it to your development roadmap to implement it when you can. Â If you are developing an application where you think oEmbed would come in handy, and you need any help &#8211; don&#8217;t hesitate to ask me or any of the people I linked to above. Â I just got an email last night letting me know about <a href="http://www.webmonkey.com/tutorial/Get_Started_With_OEmbed">the tutorial on Webmonkey for oEmbed</a>, so it won&#8217;t be long before the press of theÂ existenceÂ of oEmbed begins to turn into tutorials for use and then I hope a large number of implementations are announced. Â Like the IM one I mentioned above, I think that&#8217;d be awesome.</p>
<p>Until next time, <a href="http://pownce.com/cdevroe/">I&#8217;m going to Pownce</a> some Viddler videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/oembed-sofar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Help Twitter! Use &#8220;server friendly&#8221; tools.</title>
		<link>http://cdevroe.com/notes/help-twitter-alist-apps/</link>
		<comments>http://cdevroe.com/notes/help-twitter-alist-apps/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:58:04 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[help twitter]]></category>
		<category><![CDATA[mw latest tweet]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twhirl]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitterrific]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=747</guid>
		<description><![CDATA[A list of applications that, if set properly, can help Twitter with their scaling problem rather than pummel their servers with requests.]]></description>
			<content:encoded><![CDATA[<p>I admit it. I&#8217;m as guilty as anyone. Â When <a href="http://twitter.com/">Twitter</a> goes down I throw up my arms in disgust and shake a fist at the west (cuz that is where Twitter HQ is in relation to me).</p>
<p>But I think it is time to stop complaining and start helping. Â How? Â  What if we created a list of &#8220;well built&#8221; applications that use the Twitter API? Â By that I mean applications, tools, widgets, etc. that do a good job of not pummeling Twitter&#8217;s servers with requests.</p>
<h3>The A-list of Twitter apps</h3>
<p>I&#8217;m not foremost expert on scalability &#8211; but I know a well-built application from a bad one. Â Any application, widget, or tool that does not use even the simplest form of caching, for example, will not make this list.</p>
<p><strong style="font-weight: bold;"><em style="font-style: italic;">I will need your help.</em></strong> Â So please comment below with any applications or tools I have not yet linked to, I&#8217;ll vet them a little, and add them to the list if it makes the cut. Â If you are a developer &#8211; please include <em style="font-style: italic;">what you do to help Twitter</em> with your link.</p>
<ul>
<li><a href="http://meyerweb.com/eric/tools/wordpress/mw_latest_tweet.html"><strong style="font-weight: bold;">MW Latest Tweet</strong></a>Â - by <a href="http://meyerweb.com/eric/">Eric Meyer</a> &#8211; A WordPress plugin that shows your latest Twitter status anywhere on your WordPress-powered site. Â In order to make sure that I am also helping Twitter, I&#8217;ve installed this here on my site. Â You can see it on the sidebar of <a href="http://cdevroe.com">my front page</a>.</li>
<li><a href="http://iconfactory.com/software/twitterrific/"><strong style="font-weight: bold;">Twitterrific</strong></a> &#8211; by The IconFactory &#8211; A Mac OS X application that allows you to view your friends timeline and post to Twitter. Â Twitterric only requests the Twitter API on a set interval (customizable, and I have mine set to every 15 minutes now).</li>
<li><a href="http://www.twhirl.org/"><strong style="font-weight: bold;">Twhirl</strong></a> &#8211; byÂ Marco Kaiser and now owned by <a href="http://www.seesmic.com/">Seesmic</a> &#8211; An <a href="http://www.adobe.com/products/air/">Adobe AIR</a> application, which means it runs on both Macintosh and Windows platforms, that lets you follow Twitter, <a href="http://friendfeed.com/">FriendFeed</a>, <a href="http://pownce.com/">Pownce</a>, and others. Â The highlight of how this application helps Twitter is that it has a requests-per-hour-slider. Â I&#8217;ve got mine set to 10 (but I only have it check for new statuses every 15 minutes).</li>
</ul>
<p>Do you have any applications you think should be added to this list? Â Why? Â Leave them in the comments. Â As I update this, I&#8217;ll notify people through <a href="http://twitter.com/cdevroe/">Twitter</a>, <a href="http://friendfeed.com/cdevroe/">FriendFeed</a>, and <a href="http://pownce.com/cdevroe/">Pownce</a>. Â &#8221;Follow&#8221; me if you dare.</p>
<h3>Miscellaneous tips</h3>
<p>A few tips and tricks to helping Twitter out, regardless of the tools you choose to use.</p>
<p>Â </p>
<ul>
<li><strong style="font-weight: bold;">Decrease number of requests.</strong> Â No matter what applications you use, increase the interval (or decrease the number of requests per hour) between requests to Twitter for updates. Â The common &#8220;side effect&#8221; of doing this is actually being <em style="font-style: italic;">more productive</em>. Â Give it a try!</li>
<li><strong style="font-weight: bold;">Don&#8217;t manually refresh after update. </strong>I&#8217;ve noticed myself doing this too. Â When you send in a new status, don&#8217;t manually update. Â Chances are it will take a few moments for your latest status to appear in whatever application you are using. Â Send in the new status, if there isn&#8217;t an error, wait for the next scheduled request. I can&#8217;t imagine how many requests this could potential get rid of.</li>
</ul>
<div>Have any other tips? Send them in by leaving a comment below.</div>
<p>Â </p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/help-twitter-alist-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eight new header images!</title>
		<link>http://cdevroe.com/notes/new-random-header/</link>
		<comments>http://cdevroe.com/notes/new-random-header/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 16:38:48 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[cdevroe.com]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=648</guid>
		<description><![CDATA[I have updated this site with eight new random header images.  Refresh to see them all and let me know what you think!]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to say that this site now has a total of nine header images. Â To see them all, just refresh the page and a new, random header image should be loaded in.</p>
<p>I&#8217;m not sure how long I&#8217;ll keep this set, but I do have some goals in mind with the random header images. Â Eventually I want at least one for each of my interests: basketball, wine, food, family, technology, star wars?, and anything else I&#8217;m interested in at the time. Â I also have a few favorites from my photo collection, which will also find their way into the rotation.</p>
<p>Refresh a few times and let me know which one is your favorite, I hope you like them.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/new-random-header/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Timeframe, a better calendar</title>
		<link>http://cdevroe.com/links/timeframe-js/</link>
		<comments>http://cdevroe.com/links/timeframe-js/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 13:26:30 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[timeframe]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=638</guid>
		<description><![CDATA[An open source Javascript calendar widget that is simply head and shoulders above the rest.]]></description>
			<content:encoded><![CDATA[<p>Timeframe is &#8220;Click-draggable. Range-makeable. A better calendar.&#8221;, and is open-source. Â It is thoroughly impressive, a great implementation, and works best in Safari!</p>
<div class="postImage-right"><img src="http://img.skitch.com/20080425-x49j418i7hq5csrftfhd3hnbba.jpg" alt="" width="240" />
<p>Timeframe demo</p>
</div>
<p>The demonstration (pictured) is by far the best calendar &#8220;widget&#8221; I&#8217;ve seen in a browser. Â One of my favorite things is the date range tools which is where Timeframe strived to excel and succeeded. Â Not only can you enter in a date range by typing it in, which will then result in the same range being selected in the calendar view above, but you can also click, drag, and select the range within the calendar view itself.</p>
<p>There are some desktop application calendars that pale in comparison to Timeframe. Â iPhoto is the first example that comes to my mind &#8211; you can&#8217;t even select a date range in iPhoto! Â Anyways. Â Give Timeframe a spin and if you&#8217;re a developer, start putting this into your applications pronto.</p>
<p>Source:Â <a href="http://stephencelis.com/projects/timeframe">Timeframe</a>.<br />
Via: <a href="http://daringfireball.net/linked/2008/april#wed-23-timeframe">John Gruber&#8217;s linked list</a>.Â </p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/timeframe-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine</title>
		<link>http://cdevroe.com/links/google-app-engine/</link>
		<comments>http://cdevroe.com/links/google-app-engine/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 04:26:31 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[web-services]]></category>

		<guid isPermaLink="false">http://cdevroe.com/links/google-app-engine/</guid>
		<description><![CDATA[Google's new App Engine and some interesting points therein.]]></description>
			<content:encoded><![CDATA[<p>Just released with only a limited number of applications being accepted at the moment:</p>
<blockquote><p>&#8220;Google App Engine enables developers to build web applications on the same scalable systems that power our own applications.&#8221;</p></blockquote>
<p>Interesting tidbits upon first glance:</p>
<ul>
<li>Uses the Python programming language.</li>
<li>500Mb and ~5,000,000 for free!</li>
<li>Sandbox: In other words, if someone&#8217;s applications crashes, yours doesn&#8217;t.</li>
<li>Can use Google Apps for user signup.</li>
<li>The SDK includes an App Engine emulator.</li>
</ul>
<p>Looks like interesting things, like massively popular Web applications that should scale perfectly and inexpensively, are coming soon.</p>
<p>Source: <a href="http://appengine.google.com/">Google Application Engine</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/google-app-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Review of CakePHP</title>
		<link>http://cdevroe.com/links/kyle-slattery-cakephp/</link>
		<comments>http://cdevroe.com/links/kyle-slattery-cakephp/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 03:17:02 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://cdevroe.com/links/kyle-slattery-cakephp/</guid>
		<description><![CDATA[Kyle does a quick review and comparison of CakePHP against Ruby on Rails.]]></description>
			<content:encoded><![CDATA[<p><a href="http://kyleslattery.com/" rel="friend met">Kyle Slattery</a>, Viddler&#8217;s Lead Social Developer, recently gave CakePHP a spin to see how it compared to Ruby on Rails &#8211; or at least how the MVC modularity of the two compared to each other.</p>
<blockquote><p>&#8220;Though CakePHP is lacking in a many areas where Rails really excels, I think it definitely has its place in the world of web frameworks.&#8221;</p></blockquote>
<p>Source: <a href="http://blog.kyleslattery.com/2008/04/06/a-review-of-cakephp/#comment-8">Kyle Slattery  Â» Blog Archive   Â» A Review of CakePHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/kyle-slattery-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cabel Sasser&#8217;s C4[1] talk: Coda Confidential</title>
		<link>http://cdevroe.com/links/cabelsasser-c41/</link>
		<comments>http://cdevroe.com/links/cabelsasser-c41/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 03:30:57 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[c4]]></category>
		<category><![CDATA[c41]]></category>
		<category><![CDATA[cabel sasser]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://cdevroe.com/links/cabelsasser-c41/</guid>
		<description><![CDATA[A little bit about the building of Coda.]]></description>
			<content:encoded><![CDATA[<p><a href="http://cabel.name/">Cabel Sasser</a>, designer and co-founder of <a href="http://panic.com/">Panic</a>, talks at the C4[1] Conference for Indie Macintosh development about the development of Coda, some of Panic&#8217;s design decisions with the application, and much much more.</p>
<p>(Source: <a href="http://www.viddler.com/explore/rentzsch/videos/14">&#8220;C4[1] Sasser: Coda Confidential&#8221;</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/links/cabelsasser-c41/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

