<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.4-bleeding" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Corkboard Blog</title>
	<link>http://corkboardinc.com/blog</link>
	<description />
	<pubDate>Mon, 01 Oct 2007 14:12:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.4-bleeding</generator>
	<language>en</language>
			<geo:lat>43.213705</geo:lat><geo:long>-71.537743</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><image><link>http://corkboardinc.com/blog</link><url>http://corkboardinc.com/images/logo.png</url><title>Corkboard Blog</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/corkboard" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/corkboard" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcorkboard" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Moving into a Warehouse</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/163726360/</link>
		<comments>http://corkboardinc.com/blog/2007/10/01/moving-into-a-warehouse/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 14:12:46 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/10/01/moving-into-a-warehouse/</guid>
		<description><![CDATA[This weekend I took a break from client work and focused on shaping up the infrastructure at Corkboard.  I started by picking up a very reasonably priced server from Layered Technologies and began moving projects over.  One of my goals was to make it easier to share code from internal projects.  Step [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I took a break from client work and focused on shaping up the infrastructure at Corkboard.  I started by picking up a very reasonably priced server from <a href="http://www.layeredtech.com/">Layered Technologies</a> and began moving projects over.  One of my goals was to make it easier to share code from internal projects.  Step one was setting up <a href="http://warehouseapp.com/">Warehouse</a> from the guys at <a href="http://activereload.net/">Active Reload</a>. </p>
<p>Warehouse is a Subversion browser that &#8220;doesn&#8217;t suck.&#8221;  You can find Corkboard&#8217;s at <a href="http://warehouse.corkboardinc.com">http://warehouse.corkboardinc.com</a>.  There are currently four projects available: <a href="http://activebudget.org">ActiveBudget</a>, <a href="http://foodlab.tv">Food Lab</a>, <a href="http://wiffled.com">Wiffled</a>, and the <a href="http://code.google.com/p/secure-associations/">secure associations plugin</a>.  Previously ActiveBudget and secure associations were available on Google code.  I&#8217;ve dumped the repository from Google into the Corkboard repository and that&#8217;s where future development will happen.  </p>
<p>The big news is <strong>you can now see the source code of Food Lab and Wiffled</strong>.  To me, opening up the source for our internal projects is a no brainer.  It&#8217;s a great way to showcase the code we write and also benefits the community by providing examples of real world applications.  </p>
<p>If you&#8217;d like more technical information about the Corkboard repository, check out my <a href="http://tuples.us/2007/10/01/free-code-for-you/">post on the Grinding Rails blog</a>.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/163726360" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/10/01/moving-into-a-warehouse/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F10%2F01%2Fmoving-into-a-warehouse%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/10/01/moving-into-a-warehouse/</feedburner:origLink></item>
		<item>
		<title>Semantic CSS: The Presentation</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/138538943/</link>
		<comments>http://corkboardinc.com/blog/2007/07/29/semantic-css-the-presentation/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 15:32:29 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/07/29/semantic-css-the-presentation/</guid>
		<description><![CDATA[
BarCamp Manchester was yesterday and it was a lot of fun.  I kicked off the day with a presentation called Semantic CSS.  I tried to give an overview of the CSS best practices we use.   The slides don&#8217;t have tons of content, but they do feature both the Highlander and tribbles.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://corkboardinc.com/etc/semantic_css.pdf"><img src="http://farm2.static.flickr.com/1301/932095103_2421dded61_o.png" alt="slide" /></a></p>
<p><a href="http://barcampmanchester.org">BarCamp Manchester</a> was yesterday and it was a lot of fun.  I kicked off the day with a presentation called <a href="http://corkboardinc.com/etc/semantic_css.pdf">Semantic CSS</a>.  I tried to give an overview of the CSS best practices we use.   The slides don&#8217;t have tons of content, but they do feature both the Highlander and tribbles.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/138538943" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/07/29/semantic-css-the-presentation/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F07%2F29%2Fsemantic-css-the-presentation%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/07/29/semantic-css-the-presentation/</feedburner:origLink></item>
		<item>
		<title>ActiveBudget Goes 2.0 (almost)</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130917318/</link>
		<comments>http://corkboardinc.com/blog/2007/07/05/activebudget-goes-2-point-0/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 19:09:02 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/07/05/activebudget-goes-20-almost/</guid>
		<description><![CDATA[
One month after announcing ActiveBudget, it&#8217;s time for a refresh.  We think it&#8217;s important to give products a tune up a few weeks after launch.  We did a similar tune up for Daily Sales.
The 2.0 I speak of isn&#8217;t really version 2.0.  Version numbers don&#8217;t really make sense for web applications.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://activebudget.org" title="ActiveBudget 2.0 Screenshot"><img src="http://farm2.static.flickr.com/1061/729722166_bfabbca211_m.jpg" width="240" height="180" alt="ActiveBudget 2.0" style="float:right" /></a></p>
<p>One month after announcing ActiveBudget, it&#8217;s time for a refresh.  We think it&#8217;s important to give products a tune up a few weeks after launch.  We did a similar <a href="http://corkboardinc.com/blog/2007/03/13/daily-sales-six-week-tune-up/">tune up for Daily Sales</a>.</p>
<p>The 2.0 I speak of isn&#8217;t really version 2.0.  Version numbers don&#8217;t really make sense for web applications.  I&#8217;m talking about that other 2.0, Web 2.0.  Yes, you are free to roll your eyes - I will join you.  </p>
<p><strong>Tagging</strong> - Each transaction in ActiveBudget used to belong to one category.  At first I liked the simplicity, but I missed the flexibility of tagging.  So now each transactions can effectively belong to any number of categories.  This is implemented through the Web 2.0 standard of tagging. </p>
<p>On the application side, all the categories were converted to tags and attached to transactions. Just about every site has their own tagging format.  Delicious is space delimited, 43Folders is comma delimited, and Flickr is space delimited with quotes for multiple word tags.  I decided to go with the simplest solution - comma delimited tags. </p>
<p><a href="http://www.flickr.com/photos/jordanmckible/729722190/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1279/729722190_803a90cd66_m.jpg" width="240" height="177" alt="Graph ideas" style="float: left"/></a></p>
<p><strong>Analytics</strong> -  I&#8217;ve begun experimenting with new techniques to visually represent spending.  Representing expenses as a pie chart doesn&#8217;t working with tagging.  That graph has become a &#8216;bubble&#8217; chart.  Each tag is represented by a bubble who&#8217;s size is determined by the number of uses.  As the total spending for that tag increases, the bubble floats higher. </p>
<p>I think this graph has a lot of potential.  It currently only uses two dimensions to represent data.  There are still two dimensions unused - the X axis and color.  I&#8217;d like to implement some sort of clustering - either grouping similar tags on the X axis or by color of the bubble. </p>
<p>The second new graphs shows income and and expenses over time.  It sums each and present it as an area.  This way you can easily see when you are spending more money then you have.  </p>
<p><strong>Design</strong> - I recently put a new design on <a href="http://wiffled.com">Wiffled</a>, and thought it would look nice on ActiveBudget as well.  It gives the page a little more structure and is easier to navigate.  Since ActiveBudget is a teaching app, I&#8217;m putting a lot more emphasis on the HTML and CSS rather than the actual look of the design.  The new design makes great use of <a href="http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/">semantic markup</a> and its goal is sustainability. </p>
<p>The 2.0 edition of ActiveBudget is far from complete.  A lot of the design still makes me cringe, but it&#8217;s stilly my everyday app for tracking spending.  Expect new changes to come as I get time to work on it.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130917318" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/07/05/activebudget-goes-2-point-0/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F07%2F05%2Factivebudget-goes-2-point-0%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/07/05/activebudget-goes-2-point-0/</feedburner:origLink></item>
		<item>
		<title>It Has A Good Beat</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454535/</link>
		<comments>http://corkboardinc.com/blog/2007/06/18/it-has-a-good-beat/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 14:13:23 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/06/18/it-has-a-good-beat/</guid>
		<description><![CDATA[A few month ago, the typographic notion of baseline rhythm was all the rage.  Since I&#8217;m much more of a programmer than a designer, a design theory based on math really appealed to me.  I finally got a chance apply this theory to the Corkboard homepage. 
If you&#8217;re not familiar with the idea [...]]]></description>
			<content:encoded><![CDATA[<p>A few month ago, the typographic notion of <strong>baseline rhythm</strong> was all the rage.  Since I&#8217;m much more of a programmer than a designer, a design theory based on math really appealed to me.  I finally got a chance apply this theory to the <a href="http://corkboardinc.com">Corkboard homepage</a>. </p>
<p>If you&#8217;re not familiar with the idea of baseline rhythms or grid layouts, check out <a href="http://alistapart.com/articles/settingtypeontheweb">A List Apart&#8217;s great overview</a>.  The best tip I picked up from that article is <a href="http://www.subtraction.com">Khoi Vinh&#8217;s</a> <a href="http://www.subtraction.com/archives/2005/0901_the_funniest.php">background image trick</a>.</p>
<p>Without further ado, the results.  Here&#8217;s what the site used to look like:</p>
<p><a href="http://www.flickr.com/photo_zoom.gne?id=562222188&#038;size=o" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1138/562222188_6f9231229d_m.jpg" width="240" height="167" alt="Out of Whack Website" /></a></p>
<p>You&#8217;ll have to check out the full size version to really appreciate what&#8217;s going on.  Frankly, I&#8217;m surprised it started out as good as it did.  But behold the improvement:</p>
<p><a href="http://www.flickr.com/photo_zoom.gne?id=562222196&#038;size=o" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1281/562222196_cac9543a56_m.jpg" width="240" height="167" alt="It's Got A Good Beat" /></a></p>
<p>You&#8217;ll notice all the text, no matter what size or type, all line up the same grid.  Without the illustrative grid, it&#8217;s probably not something most people could pick up.  However, on such a heavy text site, it has a huge effect on usability.  </p>
<p>Next up, I will get this blog going with the same rhythm.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454535" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/06/18/it-has-a-good-beat/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F06%2F18%2Fit-has-a-good-beat%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/06/18/it-has-a-good-beat/</feedburner:origLink></item>
		<item>
		<title>Introducing ActiveBudget</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454536/</link>
		<comments>http://corkboardinc.com/blog/2007/06/04/introducing-activebudget/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 05:21:17 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/06/04/introducing-activebudget/</guid>
		<description><![CDATA[When I decided to leave the cushy salary of my old job and start Corkboard, I was forced to reevaluate my finances. Developing a budget came easily to me, but tracking my spending was annoying. I also needed a way to record my work across a number of jobs.  The convergence of these needs [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://activebudget.org"><img src="http://farm2.static.flickr.com/1179/526688433_836679bb3b_m.jpg" style="float:right;"></a>When I decided to leave the cushy salary of my old job and start Corkboard, I was forced to reevaluate my finances. Developing a budget came easily to me, but tracking my spending was annoying. I also needed a way to record my work across a number of jobs.  The convergence of these needs lead to ActiveBudget. </p>
<p>ActiveBudget is the software I use every day to track my spending, income, and hours worked.  It works so well for me, I wanted to share it with the world.</p>
<p>Everyone has their own way of handling a budget.  I&#8217;ve put together a quick <a href="http://activebudget.org/screencast">screencast</a> to show how ActiveBudget works for me.  I&#8217;ve tried my best to make ActiveBudget applicable to everyone.  </p>
<p>However, even if ActiveBudget isn&#8217;t for you, I&#8217;ve decided to release it as open source under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>.  If you&#8217;re a new Rails developer and would like to see how to make a production app, ActiveBudget has a lot to offer.  </p>
<h3>General Concepts</h3>
<ul>
<li>REST design with integrated API</li>
<li>Test Driven Development</li>
<li>Using Flash to create graphs</li>
<li>Deploying with Capistrano</li>
</ul>
<h3>Technical Pain Points</h3>
<ul>
<li>Handling time zones</li>
<li>User authentication with an API</li>
<li>Securing ActiveRecord associations</li>
<li>ActiveRecord migrations</li>
<li>Using the <a href="http://blog.craigambrose.com/articles/2006/09/22/redbox-release-2">Redbox</a> lightbox</li>
<li>Rendering calendars</li>
</ul>
<p>So check it out and let me know what you think.  I have a hosted version up at <a href="http://activebudget.org">http://activebudget.org</a> or you can get it from the <a href="http://code.google.com/p/activebudget/">Google Code project</a>.  The easiest way to get the source is through Subversion:</p>
<pre>
svn checkout http://activebudget.googlecode.com/svn/trunk/ activebudget
</pre>
<p>I&#8217;m not a designer, so it could certainly use a nice CSS treatment. It&#8217;s also far from feature complete.  I plan to add SMS text messaging and more reporting in the future, so stay tuned.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454536" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/06/04/introducing-activebudget/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F06%2F04%2Fintroducing-activebudget%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/06/04/introducing-activebudget/</feedburner:origLink></item>
		<item>
		<title>Semantic CSS and Rapid Development</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454537/</link>
		<comments>http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/#comments</comments>
		<pubDate>Tue, 15 May 2007 23:03:41 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/</guid>
		<description><![CDATA[Jonny LeRoy commented on my post about CSS style with a very astute observation.  
Using classes like “float_left” (.float_left { float: left; }) breaks the separation of markup from presentation and makes it difficult to change layouts / looks just by switching stylesheets.
It&#8217;s an excellent point.  In a follow up email, Jonny pointed [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.digitaldimsum.co.uk/">Jonny LeRoy</a> commented on my post about <a href="http://corkboardinc.com/blog/2007/04/18/corkboard-css-style-guide">CSS style</a> with a very astute observation.  </p>
<blockquote><p>Using classes like “float_left” (.float_left { float: left; }) breaks the separation of markup from presentation and makes it difficult to change layouts / looks just by switching stylesheets.</p></blockquote>
<p>It&#8217;s an excellent point.  In a follow up email, Jonny pointed me to this <a href="http://www.w3.org/QA/Tips/goodclassnames">W3C tip</a>.  The essential point is that CSS class names should answer the question <i>why</i> and not <i>how</i>.  A class named <code>red</code> says how something should look.  A class named <code>warning</code> would answer why.  </p>
<p>After listening to <a href="http://hamptoncatlin.com/">Hampton Catlin</a> speak about <a href="http://haml.hamptoncatlin.com/">Haml</a> on the <a href="http://podcast.rubyonrails.org/">Ruby on Rails Podcast</a> it really got me thinking about website documents as a DOM rather than a random string.  Semantically meaningful CSS is an important element of a well constructed DOM.</p>
<p>Since I&#8217;m not a designer by trade, I approach UI work like programming.  I do a lot of iterations and continuously distill XHTML to its most terse form.   As an agile developer, I want to see results as quickly as possible.  Early on this leads to very scary looking views. For example, a snippet from <a href="http://wiffled.com">Wiffled</a>:</p>
<pre>
&lt;% for comment in @player.comments -%&gt;
  &lt;div style="border-bottom: 1px solid #ddd;"&gt;
    &lt;p style="margin-top: 1em;"&gt;
    &lt;% unless comment.sender.picture.nil? %&gt;
      &lt;%= image_tag comment.sender.picture.public_filename(:thumb), :style=&gt;'float:left;margin-right: 1em' %&gt;
    &lt;% end -%&gt;
  &lt;/div&gt;
&lt;% end -%&gt;
</pre>
<p>Yuck! However, this is exactly how I work.  I didn&#8217;t plan what I wanted the page to look like, I just wanted it to work.  The best way to do this is to utilize the <code>style</code> attribute directly.  This gives you the freedom to play around and try new things easily.  Some might call it <a href="http://en.wikipedia.org/wiki/Rapid_application_development">Rapid Development</a>.  I just call it GSD. </p>
<p>Of course if I left code in the above state, I wouldn&#8217;t be very good at my job.  I believe it&#8217;s the next step that really separates web developers.  Writing good models and controllers will get you straight up developer cred.  But writing great views?  That&#8217;s the specific domain of web developers.  </p>
<p>Rails is really great at the M and C of MVC.  ERB is nice, but it&#8217;s not a leap on par with the rest of Rails.  The next big web app innovation will almost have to come in the View space.  I highly suspect it will come from the Ruby community because a great view framework will require a lot of opinions.  Semantic CSS and rapid development are some of the things I care about, but I&#8217;m sure you&#8217;ve got lots of concerns of your own.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454537" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F05%2F15%2Fsemantic-css-and-rapid-development%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/</feedburner:origLink></item>
		<item>
		<title>Hats Off to Hot or Not</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454538/</link>
		<comments>http://corkboardinc.com/blog/2007/05/08/hats-off-to-hot-or-not/#comments</comments>
		<pubDate>Tue, 08 May 2007 16:01:14 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/05/08/hats-off-to-hot-or-not/</guid>
		<description><![CDATA[TechCrunch has the story of Hot or Not&#8217;s evolving business model.  I can remember gathering around the computer with my college buddies when Hot or Not first launched.  It was an addictive site.  Hot or Not has never been big on design, and we quickly grew bored with it when it began [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.techcrunch.com/2007/05/08/hot-or-not-tears-itself-apart-reinvents/">TechCrunch has the story</a> of <a href="http://hotornot.com">Hot or Not</a>&#8217;s evolving business model.  I can remember gathering around the computer with my college buddies when Hot or Not first launched.  It was an addictive site.  Hot or Not has never been big on design, and we quickly grew bored with it when it began to monetize. </p>
<p>Since then, Hot or Not has been an unqualified success.  The founders got rich and the community grew.  Hot or Not could probably continue the status quo indefinitely.  However, the company has decided to shake up their business model drastically. </p>
<p>Hot or Not&#8217;s revenue is based on premium subscriptions, which allows users to contact each other directly.  Founder James Hong claimed conversion rates at 15% - which is ridiculously high. It accounted for the lion&#8217;s share of their revenue.  </p>
<p>But in a really surprising move, Hot or Not has decided to move towards a free model.  Users won&#8217;t have to pay for a subscription to meet each other.  In the short term, this lead to a dramatic decline in revenue. However, their page views have sky rocketed.  This of course will lead to significantly more ad revenue.  Hot or Not should have no problem remaining profitable in the future. </p>
<p>Initially I was very impressed with this move.  I believe community sites should try their hardest to provide as much free content as possible.  Unfortunately free content is usually support by ads.  I wish more communities could follow the model of <a href="http://rocketboom.com">Rocketboom</a> and <a href="http://npr.org">NPR</a>.  They understand people don&#8217;t like ads and keep them at a minimum.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454538" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/05/08/hats-off-to-hot-or-not/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F05%2F08%2Fhats-off-to-hot-or-not%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/05/08/hats-off-to-hot-or-not/</feedburner:origLink></item>
		<item>
		<title>ThoughtWorks and JRuby: Gag Me With a Spoon</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454539/</link>
		<comments>http://corkboardinc.com/blog/2007/05/07/thoughtworks-and-jruby-gag-me-with-a-spoon/#comments</comments>
		<pubDate>Mon, 07 May 2007 22:59:14 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/05/07/thoughtworks-and-jruby-gag-me-with-a-spoon/</guid>
		<description><![CDATA[ThoughtWorks announced today that Mingle will run through JRuby.  My gut reaction: yuck!  
Mingle is an interesting departure for ThoughtWorks.  Derek Walsh outlines the evolution of ThoughtWorks Studios in this blog post. Mingle is the first product from the Studio.  It&#8217;s a project management web app tailored for agile development.  [...]]]></description>
			<content:encoded><![CDATA[<p>ThoughtWorks <a href="http://studios.thoughtworks.com/2007/5/7/mingle-to-run-on-jruby">announced today</a> that <a href="http://studios.thoughtworks.com/mingle-project-intelligence">Mingle</a> will run through JRuby.  My gut reaction: yuck!  </p>
<p>Mingle is an interesting departure for ThoughtWorks.  Derek Walsh outlines the evolution of ThoughtWorks Studios <a href="http://studios.thoughtworks.com/2007/2/3/studios-up-and-running">in this blog post</a>. Mingle is the first product from the Studio.  It&#8217;s a project management web app tailored for agile development.  It&#8217;s an interesting idea, and the agile flavor gives it a powerful differentiator in the crowded project management space.</p>
<p>But I&#8217;m not concerned with the quality of the project at the moment.  ThoughtWorks and ThoughtWorks Studio exemplify the division between the Rails and Enterprise communities.  ThoughtWorks clients are slow moving and cautious.  ThoughtWorks Studio makes products for agile companies.  So how do you bridge the gap?</p>
<p>ThoughtWorks decided to invest heavily in JRuby.  While Java and Ruby are about the same age, Java has spent most of its life settling  into the enterprise market.  It&#8217;s accepted.  It&#8217;s safe.  Ruby on the other hand is still seen as new and unreliable.  It&#8217;s untested.  It&#8217;s not safe.  </p>
<p>ThoughtWorks has taken an &#8216;unsafe&#8217; technology and wrapped it in a safe one.  It&#8217;s like sugar coating a pill.  At the core, Mingle is Rails.  Will clients feel better they can just download a .war and deploy it?  Probably. Should they? Definitely not.  </p>
<p>What ThoughtWorks should have done is leverage their authority to make Ruby and Rails more accepted.  Rather than wasting time with JRuby, which I feel has no long term value, they could have made the world&#8217;s greatest Rails deployment system.  There&#8217;s nothing preventing someone from creating a one click Rails server installation.  </p>
<p>To most Rails developers, the enterprise is still anathema.  However at this point, there&#8217;s no question that Ruby and Rails are headed toward the enterprise.  The technology is just too good.  This is where ThoughtWorks has really excelled - using great technology to solve big problems.  I just wish they would represent Rails fairly rather than hiding it behind boring old Java.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454539" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/05/07/thoughtworks-and-jruby-gag-me-with-a-spoon/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F05%2F07%2Fthoughtworks-and-jruby-gag-me-with-a-spoon%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/05/07/thoughtworks-and-jruby-gag-me-with-a-spoon/</feedburner:origLink></item>
		<item>
		<title>Seeing through the Silverlight</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454540/</link>
		<comments>http://corkboardinc.com/blog/2007/05/02/seeing-through-the-silverlight/#comments</comments>
		<pubDate>Wed, 02 May 2007 21:27:03 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/05/02/seeing-through-the-silverlight/</guid>
		<description><![CDATA[If you&#8217;ve read any tech blogs in the last few days, you&#8217;ve no doubt shifted through a metric ton about Silverlight.  I don&#8217;t really know what Silverlight is, but Microsoft&#8217;s marketing page says:
Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve read any tech blogs in the last few days, you&#8217;ve no doubt shifted through a metric ton about <a href="http://silverlight.net/">Silverlight</a>.  I don&#8217;t really know what Silverlight is, but Microsoft&#8217;s marketing page says:</p>
<blockquote><p>Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.</p></blockquote>
<p>Lots of flashy buzzwords, but nothing that really says what it can do for a developer like me.  During a <a href="http://www.talkcrunch.com/2007/05/01/interview-with-product-manager-for-microsoft-silverlight/">podcast on TalkCrunch</a>,  Silverlight product manager Brian Goldfarb mentioned dynamic languages like Ruby about every other sentence, so I felt compelled to check it out.  </p>
<p>Microsoft doesn&#8217;t have much open source credibility, but I was willing to give them the benefit of the doubt on Silverlight.  If it&#8217;s truly going to be successful, it really does have to be &#8220;cross-browser, cross-platform.&#8221;  So I was a little surprised to find the beta download for a Mac running Firefox was a .exe file.  Thanks guys!</p>
<p>Eventually I got the proper .dmg (gotta use Safari some times) and installed Silverlight.  Now it was time to check out the demos.  When you distill down all the hype, the current state of Silverlight is one thing: <strong>movies</strong>.  The most prominent demo on the Silverlight site is the <a href="http://silverlight.net/fox/">Fox Movies</a> trailer for Fantastic Four 2.  After waiting to buffer the file three times, I was able to watch the trailer.  Of course I&#8217;ve been able to do the same thing, <em><a href="http://trailers.apple.com/trailers/fox/fantasticfourriseofthesilversurfer/">in true high definition</a></em>, in Quicktime for months.  Color me unimpressed.</p>
<p>The final nail in the Silverlight coffin was <a href="http://www.silverlight.net/mscom/">this page</a>.  Please click that and let it soak in for a minute.  I&#8217;m really not sure what it&#8217;s trying to accomplish.  There&#8217;s a navigation widget-y type thing on the side, but that&#8217;s something easily accomplished in pure CSS.  The insane part is the rest of the site.  <a href="http://www.silverlight.net/mscom/Images/Home.jpg">Seriously</a>.  </p>
<p>That&#8217;s right, it&#8217;s a huge jpg.  What? I don&#8217;t even understand what they are trying to demonstrate.  Personally I like my websites with text.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454540" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/05/02/seeing-through-the-silverlight/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F05%2F02%2Fseeing-through-the-silverlight%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/05/02/seeing-through-the-silverlight/</feedburner:origLink></item>
		<item>
		<title>Corkboard CSS Style Guide</title>
		<link>http://feeds.feedburner.com/~r/corkboard/~3/130454541/</link>
		<comments>http://corkboardinc.com/blog/2007/04/18/corkboard-css-style-guide/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 21:13:45 +0000</pubDate>
		<dc:creator>Jordan McKible</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://corkboardinc.com/blog/2007/04/18/corkboard-css-style-guide/</guid>
		<description><![CDATA[I&#8217;ve been thinking about CSS style for a few days now, so I figured it was time to codify our standards.  Here are the best practices we recommend: 
Alphabetized Stylesheets - There&#8217;s nothing more annoying than scrolling over a huge .css file to find one class definition.  Alphabetizing the file makes any entry [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been <a href="http://corkboardinc.com/blog/2007/04/16/a-call-for-css-style-standards/">thinking about CSS style</a> for a few days now, so I figured it was time to codify our standards.  Here are the best practices we recommend: </p>
<p><strong>Alphabetized Stylesheets</strong> - There&#8217;s nothing more annoying than scrolling over a huge .css file to find one class definition.  Alphabetizing the file makes any entry instantly findable.</p>
<p><strong>Group Related Definitions</strong> - All the styles related to the header should be right next to each other.  This works well with alphabetizing because each definition should begin with #Header.  In general we prefer one big stylesheet, but if you begin to have an overwhelming number of header attributes, they could be moved to header.css. </li>
<p><strong>Avoid Overloading Definitions</strong> - Just because 3 different types of text need to be bold, don&#8217;t define them all at the same time.  It&#8217;s better for your stylesheet to be more verbose, but more easily searchable.  Also, decoupled definitions makes things easier to change in the future.</p>
<p><strong>Use id and class Semantically</strong> - ids should only be defined once on a page.  They are a perfect fit for things like headers and footers.</p>
<p><strong>Differentiate id and class Stylistically</strong> - They have different meanings, so they should look different too.  Use UpperCamelCase for ids and lower_case_underscored for classes.</p>
<p><strong>Use classes as Building Blocks</strong> - Define some commonly used classes with a single style element.  For example:</p>
<pre>
.float_left    { float: left; }
.margin_center { margin: 0 auto; }
.text_center   { text-align: center;  }
</pre>
<p>Since you can define multiple classes on an element, just include the building blocks you need.  This works really well during the design phase since things will inevitably change around.</p>
<p>Good style is a requirement for a sustainable web site.  If you use a consistent and reliable  style, your future self will thank you.  </p>
<p><strong>Update:</strong> Jonny&#8217;s comment about the example classes is exactly correct.  Those are really bad example to use.  I&#8217;ve posted more about this in a <a href="http://corkboardinc.com/blog/2007/05/15/semantic-css-and-rapid-development/">recent entry</a>.</p>
<img src="http://feeds.feedburner.com/~r/corkboard/~4/130454541" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corkboardinc.com/blog/2007/04/18/corkboard-css-style-guide/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=corkboard&amp;itemurl=http%3A%2F%2Fcorkboardinc.com%2Fblog%2F2007%2F04%2F18%2Fcorkboard-css-style-guide%2F</feedburner:awareness><feedburner:origLink>http://corkboardinc.com/blog/2007/04/18/corkboard-css-style-guide/</feedburner:origLink></item>
	<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetFeedData?uri=corkboard</feedburner:awareness></channel>
</rss>
