<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Changelog</title>
	
	<link>http://thechangelog.com</link>
	<description>Open source moves fast. Keep up.</description>
	<lastBuildDate>Sun, 16 Jun 2013 08:23:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/thechangelog" /><feedburner:info uri="thechangelog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>thechangelog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>No live show this Tuesday</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/2XpquJAHaAg/</link>
		<comments>http://thechangelog.com/no-live-show-this-tuesday/#comments</comments>
		<pubDate>Sun, 16 Jun 2013 08:23:36 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5220</guid>
		<description><![CDATA[<p>Both Andrew and I have have some life needs this week so we&#8217;re taking the week off. But don&#8217;t be sad, Hampton Catlin will be joining us live on June 25th. If you&#8217;re still catching up, hit the archive and listen to an older show to hold you over.</p><p>The post <a href="http://thechangelog.com/no-live-show-this-tuesday/">No live show this Tuesday</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Both Andrew and I have have some life needs this week so we&#8217;re taking the week off. But don&#8217;t be sad, Hampton Catlin will be joining us live on June 25th.</p>

<p>If you&#8217;re still catching up, hit <a href="http://5by5.tv/changelog">the archive</a> and listen to an older show to hold you over.</p>
<p>The post <a href="http://thechangelog.com/no-live-show-this-tuesday/">No live show this Tuesday</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=2XpquJAHaAg:Sq3rCgp-MVw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=2XpquJAHaAg:Sq3rCgp-MVw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=2XpquJAHaAg:Sq3rCgp-MVw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=2XpquJAHaAg:Sq3rCgp-MVw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=2XpquJAHaAg:Sq3rCgp-MVw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=2XpquJAHaAg:Sq3rCgp-MVw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=2XpquJAHaAg:Sq3rCgp-MVw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/2XpquJAHaAg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/no-live-show-this-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/no-live-show-this-tuesday/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=no-live-show-this-tuesday</feedburner:origLink></item>
		<item>
		<title>Prototype your iOS apps with Quartz Composer and qc-mobile</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Xor-pBZM5uA/</link>
		<comments>http://thechangelog.com/prototype-your-ios-apps-with-quartz-composer-and-qc-mobile/#comments</comments>
		<pubDate>Thu, 13 Jun 2013 17:48:07 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[prototypes]]></category>
		<category><![CDATA[quartz composer]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5200</guid>
		<description><![CDATA[<p>Apple&#8217;s Quartz Composer has enjoyed renewed enthusiasm as a prototyping tool after recent news and video tutorials on how Facebook prototyped Home using the tool. Joris Kluivers takes QC-based prototyping for iOS one step further with qc-mobile, which makes it possible to load, display, and interact with .qtz files on iOS. It&#8217;s still early days [...]</p><p>The post <a href="http://thechangelog.com/prototype-your-ios-apps-with-quartz-composer-and-qc-mobile/">Prototype your iOS apps with Quartz Composer and qc-mobile</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Apple&#8217;s <a href="https://developer.apple.com/technologies/mac/graphics-and-animation.html">Quartz Composer</a> has enjoyed renewed enthusiasm as a prototyping tool after <a href="http://appleinsider.com/articles/13/04/11/facebook-home-for-android-developed-with-apples-quartz-composer">recent news</a> and <a href="http://vimeo.com/user5164093/videos">video tutorials</a> on how Facebook prototyped <a href="https://www.facebook.com/home">Home</a> using the tool.</p>

<p><a href="https://twitter.com/kluivers">Joris Kluivers</a> takes QC-based prototyping for iOS one step further with <a href="https://github.com/kluivers/qc-mobile">qc-mobile</a>, which makes it possible to load, display, and interact with <code>.qtz</code> files on iOS.</p>

<p><a href="https://github.com/kluivers/qc-mobile"><img src="http://thechangelog.com/wp-content/uploads/qc-mobile-screenshot.jpg" alt="qc-mobile screenshot" /></a></p>

<p>It&#8217;s still early days for the project (as Joris explains in his <a href="http://joris.kluivers.nl/blog/2013/06/04/quartz-composer-for-ios/">introductory blog post</a>), but it is functional enough to render <a href="http://qcdesigners.com/index.php/forums/topic/45/i-messenger-recreation/view/post_id/155">Jay Thrash&#8217;s iMessage recreation</a> as seen in the demo video below.</p>

<iframe width="560" height="315" src="http://www.youtube.com/embed/luXAUpxFIts?rel=0" frameborder="0" allowfullscreen></iframe>

<p>Now is a great time to get involved and make significant contributions to the project! qc-mobile is MIT licensed and <a href="https://github.com/kluivers/qc-mobile">hosted on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/prototype-your-ios-apps-with-quartz-composer-and-qc-mobile/">Prototype your iOS apps with Quartz Composer and qc-mobile</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Xor-pBZM5uA:TIVVqvt9Pq0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Xor-pBZM5uA:TIVVqvt9Pq0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Xor-pBZM5uA:TIVVqvt9Pq0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Xor-pBZM5uA:TIVVqvt9Pq0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Xor-pBZM5uA:TIVVqvt9Pq0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Xor-pBZM5uA:TIVVqvt9Pq0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Xor-pBZM5uA:TIVVqvt9Pq0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Xor-pBZM5uA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/prototype-your-ios-apps-with-quartz-composer-and-qc-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/prototype-your-ios-apps-with-quartz-composer-and-qc-mobile/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=prototype-your-ios-apps-with-quartz-composer-and-qc-mobile</feedburner:origLink></item>
		<item>
		<title>Postgres.app, an easier way to use PostgreSQL on Mac</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Z-k0XFHPaNE/</link>
		<comments>http://thechangelog.com/postgres-app/#comments</comments>
		<pubDate>Thu, 13 Jun 2013 05:53:57 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mac App]]></category>
		<category><![CDATA[postgres]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5182</guid>
		<description><![CDATA[<p>My life just got easier thanks to Postgres.app (the easiest way to run #PostgreSQL on Mac) Thanks @craigkerstiens bit.ly/17jRh1a&#8212; Adam Stacoviak (@adamstac) June 3, 2013 A week or so back, I was chatting with Craig Kerstiens, a product guy at Heroku, about an issue I was having with my Postgres install (through Homebrew) &#8212; he [...]</p><p>The post <a href="http://thechangelog.com/postgres-app/">Postgres.app, an easier way to use PostgreSQL on Mac</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<blockquote class="twitter-tweet"><p>My life just got easier thanks to Postgres.app (the easiest way to run <a href="https://twitter.com/search/%23PostgreSQL">#PostgreSQL</a> on Mac) Thanks @<a href="https://twitter.com/craigkerstiens">craigkerstiens</a> <a href="http://t.co/FDrfhhDa7M" title="http://bit.ly/17jRh1a">bit.ly/17jRh1a</a></p>&mdash; Adam Stacoviak (@adamstac) <a href="https://twitter.com/adamstac/status/341691379866542080">June 3, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>A week or so back, I was chatting with <a href="https://twitter.com/craigkerstiens">Craig Kerstiens</a>, a product guy at <a href="https://www.heroku.com/">Heroku</a>, about an issue I was having with my Postgres install (through Homebrew) &#8212; he suggested that I use <a href="http://postgresapp.com/">Postgres.app</a>.</p>

<h2>There&#8217;s an easier way</h2>

<p>Just download, install and run the app when you want to run Postgres locally for development. I always found myself fumbling with commands like <code>pg_ctl -D /usr/local/var/postgres start</code> or <code>pg_ctl -D /usr/local/var/postgres stop -s -m fast</code> to start and stop my Postgres server. Running Postgres.app is a much simpler and easier user experience now. Just run the app when you&#8217;re hacking, and quit the app when you&#8217;re done. Simple.</p>

<p>The classic Postgres elephant icon will hang out in your system tray for easy access.</p>

<h2>Heroku and Rails specifics</h2>

<p>If you&#8217;re hacking on a project and deploying to Heroku with a Postgres database, you&#8217;ll need to run <code>heroku addons:add heroku-postgresql:dev</code> to setup Postgres for your app before running something like <code>heroku run rake db:migrate</code>.</p>

<p>For more details on using Postgres on Heroku check out <a href="https://postgres.heroku.com/">postgres.heroku.com</a>. You should also subscribe to Postgres Weekly &#8211; a free, once–weekly e-mail round-up of PostgreSQL news and articles curated by <a href="http://www.craigkerstiens.com/">Craig Kerstiens</a>.</p>
<p>The post <a href="http://thechangelog.com/postgres-app/">Postgres.app, an easier way to use PostgreSQL on Mac</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Z-k0XFHPaNE:5uZmBAyWlTo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Z-k0XFHPaNE:5uZmBAyWlTo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Z-k0XFHPaNE:5uZmBAyWlTo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Z-k0XFHPaNE:5uZmBAyWlTo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Z-k0XFHPaNE:5uZmBAyWlTo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Z-k0XFHPaNE:5uZmBAyWlTo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Z-k0XFHPaNE:5uZmBAyWlTo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Z-k0XFHPaNE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/postgres-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/postgres-app/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=postgres-app</feedburner:origLink></item>
		<item>
		<title>#93: Sass, Bourbon and Product Design with Phil LaPier</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/ESKNU9Zbx2o/</link>
		<comments>http://thechangelog.com/93/#comments</comments>
		<pubDate>Wed, 12 Jun 2013 16:00:46 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5179</guid>
		<description><![CDATA[<p>Adam Stacoviak talks with Phil LaPier about Sass, Bourbon, Neat, sustaining open source, product design, and more. Listen to this episode on 5by5! We moved the show to 5by5! You can tune-in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/93/">#93: Sass, Bourbon and Product Design with Phil LaPier</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam Stacoviak talks with Phil LaPier about Sass, Bourbon, Neat, sustaining open source, product design, and more.</p>

<p><a href="http://5by5.tv/changelog/93">Listen to this episode on 5by5!</a></p>

<hr />

<p><a href="http://thechangelog.com/moving-to-5by5/">We moved the show to 5by5</a>! You can <a href="http://5by5.tv/live">tune-in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/93/">#93: Sass, Bourbon and Product Design with Phil LaPier</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=ESKNU9Zbx2o:x8_bqmzCX2U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=ESKNU9Zbx2o:x8_bqmzCX2U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=ESKNU9Zbx2o:x8_bqmzCX2U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=ESKNU9Zbx2o:x8_bqmzCX2U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=ESKNU9Zbx2o:x8_bqmzCX2U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=ESKNU9Zbx2o:x8_bqmzCX2U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=ESKNU9Zbx2o:x8_bqmzCX2U:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/ESKNU9Zbx2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/93/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=93</feedburner:origLink></item>
		<item>
		<title>#92: Sidekiq, Ruby, and more with Mike Perham</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/wPTEDzOLwvk/</link>
		<comments>http://thechangelog.com/92/#comments</comments>
		<pubDate>Fri, 07 Jun 2013 16:00:00 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sidekiq]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5176</guid>
		<description><![CDATA[<p>Adam Stacoviak and Andrew Thorp talk with Mike Perham about sustaining open source, sidekiq, message processing with Ruby, and more. Listen to this episode on 5by5! We moved the show to 5by5! You can tune-in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/92/">#92: Sidekiq, Ruby, and more with Mike Perham</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam Stacoviak and Andrew Thorp talk with Mike Perham about sustaining open source, sidekiq, message processing with Ruby, and more.</p>

<p><a href="http://5by5.tv/changelog/92">Listen to this episode on 5by5!</a></p>

<hr />

<p><a href="http://thechangelog.com/moving-to-5by5/">We moved the show to 5by5</a>! You can <a href="http://5by5.tv/live">tune-in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/92/">#92: Sidekiq, Ruby, and more with Mike Perham</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=wPTEDzOLwvk:IGxq-fNeJkE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=wPTEDzOLwvk:IGxq-fNeJkE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=wPTEDzOLwvk:IGxq-fNeJkE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=wPTEDzOLwvk:IGxq-fNeJkE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=wPTEDzOLwvk:IGxq-fNeJkE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=wPTEDzOLwvk:IGxq-fNeJkE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=wPTEDzOLwvk:IGxq-fNeJkE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/wPTEDzOLwvk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/92/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/92/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=92</feedburner:origLink></item>
		<item>
		<title>Create beautiful JavaScript charts with one line of Ruby using Chartkick</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/8xPzTbuPsIw/</link>
		<comments>http://thechangelog.com/create-beautiful-javascript-charts-with-chartkick/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 15:51:04 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5027</guid>
		<description><![CDATA[<p>So many web apps need to visualize data for their users that a high quality charting library is a huge boon for developers. Andrew Kane&#8217;s Chartkick might be just the library for Ruby developers. Chartkick works with Rails 3.1+ and makes adding beautiful charts to your web app as easy as a one liner. Create [...]</p><p>The post <a href="http://thechangelog.com/create-beautiful-javascript-charts-with-chartkick/">Create beautiful JavaScript charts with one line of Ruby using Chartkick</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>So many web apps need to visualize data for their users that a high quality charting library is a huge boon for developers. <a href="https://twitter.com/andrewkane">Andrew Kane&#8217;s</a> <a href="http://ankane.github.io/chartkick/">Chartkick</a> might be just the library for Ruby developers.</p>

<p><img src="http://thechangelog.com/wp-content/uploads/chartkick.png" alt="Chartkick sample" /></p>

<p>Chartkick works with Rails 3.1+ and makes adding beautiful charts to your web app as easy as a one liner. Create a simple line chart like this:</p>

<pre><code class="ruby"><%= line_chart User.group_by_day(:created_at).count %></code></pre>

<p>Or one with multiple series of data like this:</p>

<pre><code class="ruby"><%= line_chart @goals.map { |goal| 
  {
    :name => goal.name, 
    :data => goal.feats.group_by_week(:created_at).count 
  } 
} %></code></pre>

<p>A pie chart is as easy as:</p>

<pre><code class="ruby"><%= pie_chart Goal.group("name").count %></code></pre>

<p>Chartkick is mostly a JavaScript library with Ruby helpers to generate the required markup that the JavaScript turns into charts. It requires either <a href="https://developers.google.com/chart/">Google Charts</a> or <a href="http://www.highcharts.com/">Highcharts</a> to work, but it doesn&#8217;t require Ruby! If you want to use the JavaScript bits from another language, check out <a href="http://github.com/ankane/chartkick.js">Chartkick.js</a> instead.</p>

<p>Chartkick is MIT licensed and hosted <a href="https://github.com/ankane/chartkick">on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/create-beautiful-javascript-charts-with-chartkick/">Create beautiful JavaScript charts with one line of Ruby using Chartkick</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=8xPzTbuPsIw:S69doNT_im4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=8xPzTbuPsIw:S69doNT_im4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=8xPzTbuPsIw:S69doNT_im4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=8xPzTbuPsIw:S69doNT_im4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=8xPzTbuPsIw:S69doNT_im4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=8xPzTbuPsIw:S69doNT_im4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=8xPzTbuPsIw:S69doNT_im4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/8xPzTbuPsIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/create-beautiful-javascript-charts-with-chartkick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/create-beautiful-javascript-charts-with-chartkick/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=create-beautiful-javascript-charts-with-chartkick</feedburner:origLink></item>
		<item>
		<title>Open Products</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/eR5htn3r9cc/</link>
		<comments>http://thechangelog.com/open-products/#comments</comments>
		<pubDate>Fri, 31 May 2013 13:30:58 +0000</pubDate>
		<dc:creator>Chad Whitacre</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Charity]]></category>
		<category><![CDATA[Hacker Ethic]]></category>
		<category><![CDATA[Open Products]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5091</guid>
		<description><![CDATA[<p>How can we open-source consumer products? Why should we? In this essay I want to define what open products are, explain why I think they&#8217;re important, and suggest what&#8217;s needed in order to make more of them. I define an open product as &#8220;a technology product that happens to be open-source.&#8221; The best example is [...]</p><p>The post <a href="http://thechangelog.com/open-products/">Open Products</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://thechangelog.com/wp-content/uploads/please-trespass.jpg" alt="Please trespass." /></p>

<h2><em>How can we open-source consumer products? Why should we?</em></h2>

<p>In this essay I want to define what open products are, explain why I think they&#8217;re important, and suggest what&#8217;s needed in order to make more of them.</p>

<p>I define an open product as &#8220;a technology product that happens to be open-source.&#8221; The best example is <a href="http://www.reddit.com/">Reddit.com</a>: a major web property, and oh yeah by the way here&#8217;s <a href="https://github.com/reddit/reddit">almost all of its source code</a>. Whoa!</p>

<p>Open products like Reddit.com are pretty clearly distinguished from closed products like Google.com or Facebook.com, but they also stand in contrast to open-source projects. An open-source project is designed for me to download and install on my own servers. Sure, a few people run their own instance of Reddit, but that&#8217;s not its driving use case.</p>

<p>It&#8217;s a fuzzy boundary, the line between open-source projects and open products. To firm it up, we&#8217;d look at the number of installations of a given project, and the audience size for each installation. <a href="https://drupal.org/">Drupal</a> is an open-source project and not an open product, because there are many, many instances of it. <a href="http://wordpress.org/">WordPress</a> is fuzzier: how much WordPress traffic is handled by WordPress.com? I don&#8217;t know. We can also look at intentions. I&#8217;m not sure how many instances of <a href="https://rstat.us/">rstat.us</a> there are, but I do know that project leaders want it <a href="https://github.com/hotsh/rstat.us/issues/626#issuecomment-8356443">to be federated</a>, not centralized. Same with <a href="https://joindiaspora.com/">Diaspora</a>. I think of an open product as a commons, a single central instance shared by all. Email is federated. Gmail is a product.</p>

<p>Open products are also distinguished from open platforms. I think of operating systems and web browsers as platforms, and apps on those platforms as products. So <a href="http://www.mozilla.org/en-US/firefox/new/">Firefox</a> (<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox">src</a>) is an open platform, as are <a href="http://www.ubuntu.com/">Ubuntu</a> (<a href="https://launchpad.net/ubuntu">src</a>), <a href="http://fedoraproject.org/">Fedora</a>, Android (<a href="http://source.android.com/">src</a>), etc. (<a href="https://www.google.com/intl/en/chrome/browser/">Chrome</a> doesn&#8217;t count because it&#8217;s closed; <a href="http://www.chromium.org/">Chromium</a> would count if people used it directly.) We&#8217;ve got great open platforms for the same reason we&#8217;ve got great open-source projects: they&#8217;re built by developers for developers.</p>

<p>Not surprisingly, a number of existing open products are web apps used by developers. Prime examples these days would be <a href="https://travis-ci.org/">Travis CI</a> (<a href="https://github.com/travis-ci/travis-ci">src</a>), <a href="https://www.getsentry.com/">Sentry</a> (<a href="https://github.com/getsentry/sentry/">src</a>), and <a href="https://readthedocs.org/">ReadTheDocs</a> (<a href="https://github.com/rtfd/readthedocs.org">src</a>), along with venerable old <a href="http://sourceforge.net/">SourceForge</a> (a.k.a. <a href="http://allura.sourceforge.net/">Allura</a>). There are also examples of developer-focused companies with partially-open products, such as <a href="https://www.balancedpayments.com/">Balanced Payments</a> (<a href="https://github.com/balanced/balanced-dashboard">src</a>) and <a href="https://www.bountysource.com/">Bountysource</a> (<a href="https://github.com/bountysource/frontend">src</a>).</p>

<p>The open products I&#8217;m most interested in, however, are top-level, consumer-facing web and mobile products that stand on their own as consumer products first, and&mdash;almost as an afterthought&mdash;happen to be almost fully open-source to boot. We know that openness is the best model for building developer tools and platforms. That&#8217;s old news. The question today is, how much else can we bring under the banner of openness? Besides Reddit, the two best examples of consumer-facing open products I&#8217;ve found are <a href="http://www.newsblur.com/">NewsBlur</a> (<a href="https://github.com/samuelclay/NewsBlur">src</a>) and <a href="https://trovebox.com/">Trovebox</a> (<a href="https://github.com/photo/frontend">src</a>). My own entry is <a href="https://www.gittip.com/">Gittip</a> (<a href="https://github.com/gittip/www.gittip.com">src</a>). If we include older desktop apps, then we&#8217;ve also got things like <a href="http://audacity.sourceforge.net/">Audacity</a> (<a href="https://code.google.com/p/audacity/">src</a>), <a href="http://www.gimp.org/">GIMP</a> (<a href="http://developer.gimp.org/">src</a>), and <a href="https://videolan.org/vlc/">VLC</a> (<a href="https://www.videolan.org/developers/">src</a>).</p>

<p>&gt; Open products respect the hacker ethic, without forcing it on others.</p>

<p>For me, openness is not an absolute good, not an end in itself. Rather, it helps maximize personal freedom and autonomy amidst ginormous social systems. I value the luxuries of modern society, and I value the freedom to explore and tinker with society as I see fit, to feel like I&#8217;m helping run it, and not being run over by it. I doubt that more than a few percent of Reddit users know or would care that it is open-source, but to me that&#8217;s the beauty of it: this deeply respects the <a href="https://en.wikipedia.org/wiki/Hacker_ethic">hacker ethic</a>, without ideologically forcing it on others.</p>

<h2>Open Product Business Models</h2>

<p>The truth is that open-source consumer software sucks compared to proprietary competitors: GIMP vs. Photoshop. Audacity vs. Pro Tools. Trovebox vs. Instagram. Why? Money. Free software altruism isn&#8217;t enough to fully offset economic necessity, therefore the best of our collective energy goes into
proprietary software, since that&#8217;s where the money is right now. How do we start to shift this?</p>

<p>Whereas open-source projects get funded as a side-effect of other business models, an open product needs its own business model. As with proprietary software, the two basic options are:</p>

<ul>
<li><p><em>advertising</em>&#8211;selling users&#8217; attention to others</p></li>
<li><p><em>fees</em>&#8211;requiring money from users</p></li>
</ul>

<p>How to fund open products parallels the conversation about funding digital content, where creators like <a href="http://www.ted.com/talks/amanda_palmer_the_art_of_asking.html">Amanda Palmer</a>, <a href="http://www.youtube.com/watch?v=IEYTFud4jBi">Hank Green</a> and even <a href="https://thechangelog.com/membership/">The Changelog</a> are pointing to a third way: asking users for money. Companies like <a href="http://www.kickstarter.com/">Kickstarter</a>, <a href="http://flattr.com/">Flattr</a>, <a href="https://www.centup.org/">CentUp</a>, and <a href="http://www.patreon.com/">Patreon</a>, as well as my own company, <a href="https://www.gittip.com/">Gittip</a>, are building platforms to enable new business models to emerge based on what we might call &#8220;soft fees&#8221;&mdash;something between paywalls and traditional charitable
donations:</p>

<ul>
<li><em>soft fees</em>&#8211;asking users for money</li>
</ul>

<p>Open products use a mix of these models. SourceForge sells ads. Reddit sells ads and subscriptions. Travis sells ads and asks for money. Sentry sells subscriptions, along with Newsblur and Trovebox. Gittip charges fees and asks for money. ReadTheDocs asks for money, as do Audacity, GIMP, and VLC.</p>

<p>My hunch is that soft fees are the best fit for open products, but it remains to be seen whether soft-fee models can scale as well as the advertising models of Google and Facebook, or the hard-fee models of Microsoft, Apple, and Adobe. One potential approach is Jeff Lindsay&#8217;s &#8220;<a href="http://vimeo.com/60885711">autosustainable
services</a>,&#8221; where the product makes more or less urgent requests for money based on real-time operating costs:</p>

<p><a href="http://requestb.in/"><img src="http://thechangelog.com/wp-content/uploads/autosustainable-services.png" alt="Mockup of Autosustainble Services" /></a></p>

<p>The above screenshot is a mockup of autosustainable services, from a <a href="http://vimeo.com/60885711">talk</a> by Jeff Lindsay (<a href="https://twitter.com/progrium">@progrium</a>).</p>

<p>The challenge that soft-fee business models face is cultural: we&#8217;re not used to asking each other for money&#8211;and, conversely, we&#8217;re not used to giving our money away&#8211;except as &#8220;charity.&#8221; We&#8217;re accustomed to thinking of charities as optional extras in an economy where the <em>real work</em> gets done in hard-fee and advertising-based businesses. I prefer &#8220;soft fee&#8221; to &#8220;donation,&#8221; because I want to stake out a new territory where giving money is more normal. This isn&#8217;t charity. This is a new kind of business.</p>

<p>How money flows into a company building open products is one challenge. How it flows out is another. The bulk of most budgets is people, and when a product is closed it&#8217;s easy to route the money it brings in to the people who built it. They&#8217;re the company&#8217;s owners, employees, contractors and suppliers. What happens when half the labor that goes into a product comes from a loose community of so-called volunteers? Surely they should get their share of the money. They <em>have</em> to, if we&#8217;re going to make it economically rational to work on open products. As with soft fees, I think we need a redefinition, because &#8220;volunteer,&#8221; like &#8220;donation,&#8221; carries a stigma: volunteers are nice, but they don&#8217;t do <em>real work</em>. Perhaps we can say &#8220;open workers,&#8221; or just &#8220;contributors&#8221;? More important than a shift in terminology is a shift in practice. We need innovation in how we structure our companies to account for open workers as well as employees. (With Gittip, for example, we&#8217;re experimenting with bringing contributors on as independent contractors, and then voting on how money is split.)</p>

<p>Open products and companies need to compete with closed products and companies for both customers and talent. If we can find business models for open products that equal and exceed the productivity of current closed models, then we can quietly spread the hacker ethic and make our society more open and humane.</p>

<p><a href="https://news.ycombinator.com/item?id=5798662">Share your comments on Hacker News &rarr;</a></p>

<hr />

<p><em>Thanks to The Changelog for the <a href="https://twitter.com/whit537/status/319842074381926401">invitation</a> to write this essay</em>, and to those that responded to my <a href="https://twitter.com/whit537/status/327134359213731840">request</a> for examples of open products.</p>

<p>To share your <a href="http://thechangelog.com/category/opinions/">Opinion</a> on The Changelog &#8212; <a href="https://twitter.com/adamstac">get in touch with Adam</a>.</p>
<p>The post <a href="http://thechangelog.com/open-products/">Open Products</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=eR5htn3r9cc:KplScAmJhFc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eR5htn3r9cc:KplScAmJhFc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eR5htn3r9cc:KplScAmJhFc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=eR5htn3r9cc:KplScAmJhFc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eR5htn3r9cc:KplScAmJhFc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eR5htn3r9cc:KplScAmJhFc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=eR5htn3r9cc:KplScAmJhFc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/eR5htn3r9cc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/open-products/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/open-products/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=open-products</feedburner:origLink></item>
		<item>
		<title>angolmois: a music game ported to Rust</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/qAKL_HKCFEQ/</link>
		<comments>http://thechangelog.com/angolmois-a-music-game-ported-to-rust/#comments</comments>
		<pubDate>Wed, 29 May 2013 18:23:30 +0000</pubDate>
		<dc:creator>Steve Klabnik</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Rust]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5088</guid>
		<description><![CDATA[<p>Angolmois is &#8220;a BM98-like rhythm game&#8221;. It looks like this: Its author, lifthrasiir, has ported it to Rust. This is really cool for a few reasons: It&#8217;s possibly one of the bigger Rust codebases that exists today, klocing in at just over 6,000 lines of code. Some useful utility bits will be sent back upstream [...]</p><p>The post <a href="http://thechangelog.com/angolmois-a-music-game-ported-to-rust/">angolmois: a music game ported to Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://mearie.org/projects/angolmois/">Angolmois</a> is &#8220;a BM98-like rhythm game&#8221;. It looks like this:</p>

<p><img src="http://raw.github.com/lifthrasiir/angolmois-rust/b106fef2c19cd093ea84de75bbd5f7b3e2aa84d9/img/angolmois1.jpg" alt="angolmois screenshots" /></p>

<p>Its author, <a href="https://github.com/lifthrasiir">lifthrasiir</a>, has <a href="https://github.com/lifthrasiir/angolmois-rust">ported it to Rust</a>.</p>

<p>This is really cool for a few reasons:</p>

<ol>
<li>It&#8217;s possibly one of the bigger Rust codebases that exists today, <code>kloc</code>ing in at just over 6,000 lines of code.</li>
<li>Some useful utility bits will be sent back upstream into Rust&#8217;s standard library.</li>
<li>Lifthrasiir is writing a detailed guide to how it was made, and &#8220;hope[s] it to be a starting point to the advanced programming in Rust.&#8221;</li>
<li>Games are fun.</li>
</ol>

<p>You can <a href="https://github.com/lifthrasiir/angolmois-rust">check out more in its repo</a>.</p>
<p>The post <a href="http://thechangelog.com/angolmois-a-music-game-ported-to-rust/">angolmois: a music game ported to Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=qAKL_HKCFEQ:HdzmU1-OIv4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=qAKL_HKCFEQ:HdzmU1-OIv4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=qAKL_HKCFEQ:HdzmU1-OIv4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=qAKL_HKCFEQ:HdzmU1-OIv4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=qAKL_HKCFEQ:HdzmU1-OIv4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=qAKL_HKCFEQ:HdzmU1-OIv4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=qAKL_HKCFEQ:HdzmU1-OIv4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/qAKL_HKCFEQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/angolmois-a-music-game-ported-to-rust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/angolmois-a-music-game-ported-to-rust/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=angolmois-a-music-game-ported-to-rust</feedburner:origLink></item>
		<item>
		<title>rust.ko: a minimal Linux kernel module for Rust</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/emtRK3Ssz-o/</link>
		<comments>http://thechangelog.com/rust-ko-a-minimal-linux-kernel-module-for-rust/#comments</comments>
		<pubDate>Wed, 29 May 2013 17:14:11 +0000</pubDate>
		<dc:creator>Steve Klabnik</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Rust]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5086</guid>
		<description><![CDATA[<p>Hot off the heels of zero.rs and rustboot comes rust.ko. rust.ko is a minimal Linux kernel module for Rust. What does this mean? Well, from the Kernel Programming Guide, Modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need [...]</p><p>The post <a href="http://thechangelog.com/rust-ko-a-minimal-linux-kernel-module-for-rust/">rust.ko: a minimal Linux kernel module for Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hot off the heels of <a href="http://thechangelog.com/zero-rs-write-rust-without-a-runtime/">zero.rs</a> and <a href="http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/">rustboot</a> comes <a href="https://github.com/tsgates/rust.ko">rust.ko</a>. <code>rust.ko</code> is a minimal Linux kernel module for Rust.</p>

<p>What does this mean? Well, from <a href="http://www.tldp.org/LDP/lkmpg/2.6/html/x40.html">the Kernel Programming Guide</a>,</p>

<blockquote>
  <p>Modules are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system.</p>
</blockquote>

<p>Neat, eh? So basically, &#8216;extend your operating system with Rust.&#8217;</p>

<p>I&#8217;m excited to see this flurry of ultra-low-level activity from the Rust community. I&#8217;m sure there&#8217;s more neat stuff to come!</p>
<p>The post <a href="http://thechangelog.com/rust-ko-a-minimal-linux-kernel-module-for-rust/">rust.ko: a minimal Linux kernel module for Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=emtRK3Ssz-o:8l8UM9wYRag:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=emtRK3Ssz-o:8l8UM9wYRag:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=emtRK3Ssz-o:8l8UM9wYRag:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=emtRK3Ssz-o:8l8UM9wYRag:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=emtRK3Ssz-o:8l8UM9wYRag:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=emtRK3Ssz-o:8l8UM9wYRag:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=emtRK3Ssz-o:8l8UM9wYRag:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/emtRK3Ssz-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/rust-ko-a-minimal-linux-kernel-module-for-rust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/rust-ko-a-minimal-linux-kernel-module-for-rust/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rust-ko-a-minimal-linux-kernel-module-for-rust</feedburner:origLink></item>
		<item>
		<title>#91: Discover Meteor.js with Sacha Greif</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/7mLxByNeqv0/</link>
		<comments>http://thechangelog.com/91/#comments</comments>
		<pubDate>Wed, 29 May 2013 16:00:28 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Meteor]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5116</guid>
		<description><![CDATA[<p>Adam Stacoviak and Andrew Thorp talk with Sacha Greif about his new book Discover Meteor, Meteor.js, sustaining open source and more. Listen to this episode on 5by5! We moved the show to 5by5! You can tune-in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/91/">#91: Discover Meteor.js with Sacha Greif</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://thechangelog.com/author/adamstac/">Adam Stacoviak</a> and <a href="http://thechangelog.com/author/andrewpthorp/">Andrew Thorp</a> talk with <a href="http://thechangelog.com/author/sachagreif/">Sacha Greif</a> about his new book <a href="http://www.discovermeteor.com/">Discover Meteor</a>, Meteor.js, sustaining open source and more.</p>

<p><a href="http://5by5.tv/changelog/91">Listen to this episode on 5by5!</a></p>

<hr />

<p><a href="http://thechangelog.com/moving-to-5by5/">We moved the show to 5by5</a>! You can <a href="http://5by5.tv/live">tune-in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/91/">#91: Discover Meteor.js with Sacha Greif</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=7mLxByNeqv0:RWKBPKUsInQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7mLxByNeqv0:RWKBPKUsInQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7mLxByNeqv0:RWKBPKUsInQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=7mLxByNeqv0:RWKBPKUsInQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7mLxByNeqv0:RWKBPKUsInQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7mLxByNeqv0:RWKBPKUsInQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=7mLxByNeqv0:RWKBPKUsInQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/7mLxByNeqv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/91/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=91</feedburner:origLink></item>
		<item>
		<title>Namespace support is being added to Sass</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/VFSutR1Z4O8/</link>
		<comments>http://thechangelog.com/namespace-support-is-being-added-to-sass/#comments</comments>
		<pubDate>Tue, 28 May 2013 19:11:12 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Sass]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5074</guid>
		<description><![CDATA[<p>Thank you @nex3 for adding namespaces to Sass!&#8212; The Sass Way™ (@TheSassWay) May 26, 2013 Namespace support has been long-requested by those writing CSS the Sass way. The feature is still in development and should hit a Sass version near you soon enough, but it looks to be a very simple and consistent way of [...]</p><p>The post <a href="http://thechangelog.com/namespace-support-is-being-added-to-sass/">Namespace support is being added to Sass</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<blockquote class="twitter-tweet"><p>Thank you @<a href="https://twitter.com/nex3">nex3</a> for adding namespaces to Sass!</p>&mdash; The Sass Way™ (@TheSassWay) <a href="https://twitter.com/TheSassWay/status/338468680545488897">May 26, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>Namespace support has been long-requested by those writing CSS <a href="http://thesassway.com/">the Sass way</a>. The feature is still in development and should hit a Sass version near you soon enough, but it looks to be a very simple and consistent way of dealing with the vast number of use cases for namespaces.</p>

<p>For a deeper take on the history, <a href="https://github.com/nex3/sass/issues/286">read this issue</a> and <a href="https://github.com/nex3/sass/issues/286#issuecomment-18437694">this comment</a> which summarizes the solution and some of the rejected alternative solutions.</p>

<p>Here&#8217;s an example use case <a href="https://gist.github.com/chriseppstein/5649985#comment-836537">shared by Chris Eppstein</a>:</p>

<pre><code class="css">@function current-module() {
  @return nth(&#038;, 1);
}

mymodule {
  @at-root {
    .#{current-module()}-header { ... }
    .#{current-module()}-footer { ... }
    .#{current-module()}-body   {
      a          { ... } 
      span       { ... } 
      p          { ... }
      form       {
        button.#{current-module()}-button { ... } }
    }
  }
}</code></pre>

<p>And this would generate CSS like:</p>

<pre><code class="css">.mymodule-header { ... }
.mymodule-footer { ... }
.mymodule-body a { ... }
.mymodule-body span { ... }
.mymodule-body p { ... }
.mymodule-body form button.mymodule-button { ... }</code></pre>

<p>Check out <a href="https://gist.github.com/chriseppstein/5649985">this Gist</a> and <a href="https://gist.github.com/chriseppstein/5649985#comment-836537">this comment</a> to learn more.</p>
<p>The post <a href="http://thechangelog.com/namespace-support-is-being-added-to-sass/">Namespace support is being added to Sass</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=VFSutR1Z4O8:nTp7MkFKOvo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=VFSutR1Z4O8:nTp7MkFKOvo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=VFSutR1Z4O8:nTp7MkFKOvo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=VFSutR1Z4O8:nTp7MkFKOvo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=VFSutR1Z4O8:nTp7MkFKOvo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=VFSutR1Z4O8:nTp7MkFKOvo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=VFSutR1Z4O8:nTp7MkFKOvo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/VFSutR1Z4O8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/namespace-support-is-being-added-to-sass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/namespace-support-is-being-added-to-sass/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=namespace-support-is-being-added-to-sass</feedburner:origLink></item>
		<item>
		<title>Write emails in Markdown and render them with Markdown Here!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/mbnjYsfW0t0/</link>
		<comments>http://thechangelog.com/write-emails-in-markdown-and-render-them-with-markdown-here/#comments</comments>
		<pubDate>Tue, 28 May 2013 14:40:32 +0000</pubDate>
		<dc:creator>Andrew Thorp</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[browser-plugin]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5072</guid>
		<description><![CDATA[<p>Adam Pritchard has released a nice Browser Plugin that allows you to write Markdown in text fields then render it. From the About page: I created Markdown Here when I realized that I was having much more fun writing README files in Markdown than I was writing email — especially if the email contained any [...]</p><p>The post <a href="http://thechangelog.com/write-emails-in-markdown-and-render-them-with-markdown-here/">Write emails in Markdown and render them with Markdown Here!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://twitter.com/adampritchard">Adam Pritchard</a> has released a nice Browser Plugin that allows you to write Markdown in text fields then render it. From the <a href="http://markdown-here.com/about.html">About page</a>:</p>

<blockquote>
  <p>I created Markdown Here when I realized that I was having much more fun writing README files in Markdown than I was writing email — especially if the email contained any significant structure or code snippets.</p>
</blockquote>

<p>Current Browsers that support markdown here can be seen on the <a href="http://markdown-here.com/get.html">Get it! page</a>:</p>

<ul>
<li>Chrome/Chromium</li>
<li>Firefox/Pale moon</li>
<li>Safari (as of May 19, 2013)</li>
<li>Thunderbird, Postbox, Icedove (email clients)</li>
</ul>

<p>You can <a href="http://markdown-here.com/">view the project website</a> or <a href="https://github.com/adam-p/markdown-here">view the source</a> on GitHub.</p>
<p>The post <a href="http://thechangelog.com/write-emails-in-markdown-and-render-them-with-markdown-here/">Write emails in Markdown and render them with Markdown Here!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=mbnjYsfW0t0:rWA85M56AcE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=mbnjYsfW0t0:rWA85M56AcE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=mbnjYsfW0t0:rWA85M56AcE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=mbnjYsfW0t0:rWA85M56AcE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=mbnjYsfW0t0:rWA85M56AcE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=mbnjYsfW0t0:rWA85M56AcE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=mbnjYsfW0t0:rWA85M56AcE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/mbnjYsfW0t0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/write-emails-in-markdown-and-render-them-with-markdown-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/write-emails-in-markdown-and-render-them-with-markdown-here/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=write-emails-in-markdown-and-render-them-with-markdown-here</feedburner:origLink></item>
		<item>
		<title>rustboot: a tine 32 bit kernel written in Rust</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/JfG-rimePoA/</link>
		<comments>http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/#comments</comments>
		<pubDate>Mon, 27 May 2013 14:01:55 +0000</pubDate>
		<dc:creator>Steve Klabnik</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Rust]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5068</guid>
		<description><![CDATA[<p>Hot off the heels of the zero.rs release, charliesome has written a tiny, tiny kernel in Rust. It is, of course, incredibly fully featured: Ha! But, more seriously, this program that writes the screen red is written in Rust, and, in theory, will run on 32 bit commodity PC hardware. Is something with no features [...]</p><p>The post <a href="http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/">rustboot: a tine 32 bit kernel written in Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hot off the heels of the <a href="http://thechangelog.com/zero-rs-write-rust-without-a-runtime/">zero.rs</a> release, <a href="https://github.com/charliesome">charliesome</a> has written a tiny, tiny kernel in Rust.</p>

<p>It is, of course, incredibly fully featured:</p>

<p><img src="http://a248.e.akamai.net/camo.github.com/28e1248e12224c93c33ae4de311f3043a4c1f515/687474703a2f2f692e696d6775722e636f6d2f4e575265684a4a2e706e67" alt="rustboot screenshot" /></p>

<p>Ha! But, more seriously, this program that writes the screen red is written in Rust, and, in theory, will run on 32 bit commodity PC hardware.</p>

<p>Is something with no features actually a kernel? In the hobbyist OS community, this still counts. Way back in the day, there were applications that were written that also needed to boot the computer, and while an OS that only runs one program may not be what you conventionally think of, I&#8217;d say it fits. But really, I don&#8217;t care: even if it isn&#8217;t a full kernel, it&#8217;s a neat hack that would provide a great starting place for someone interested in operating systems and Rust to pick up and run with it.</p>
<p>The post <a href="http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/">rustboot: a tine 32 bit kernel written in Rust</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=JfG-rimePoA:QTIWwgXOWtg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=JfG-rimePoA:QTIWwgXOWtg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=JfG-rimePoA:QTIWwgXOWtg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=JfG-rimePoA:QTIWwgXOWtg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=JfG-rimePoA:QTIWwgXOWtg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=JfG-rimePoA:QTIWwgXOWtg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=JfG-rimePoA:QTIWwgXOWtg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/JfG-rimePoA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rustboot-a-tine-32-bit-kernel-written-in-rust</feedburner:origLink></item>
		<item>
		<title>zero.rs: write Rust without a runtime</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Vyah-UryAm4/</link>
		<comments>http://thechangelog.com/zero-rs-write-rust-without-a-runtime/#comments</comments>
		<pubDate>Mon, 27 May 2013 13:56:12 +0000</pubDate>
		<dc:creator>Steve Klabnik</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Rust]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5066</guid>
		<description><![CDATA[<p>Late last week, pcwalton released Zero.rs, a way to write Rust code without a runtime. What does that mean? Well, normally, a runtime defines all of the basic features a language supports. For example, the garbage collector. You need this to be compiled in with your program for the program to work properly. What zero.rs [...]</p><p>The post <a href="http://thechangelog.com/zero-rs-write-rust-without-a-runtime/">zero.rs: write Rust without a runtime</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Late last week, <a href="https://github.com/pcwalton">pcwalton</a> released Zero.rs, a way to write Rust code without a runtime.</p>

<p>What does that mean? Well, normally, a <a href="http://en.wikipedia.org/wiki/Runtime_library">runtime</a> defines all of the basic features a language supports. For example, the garbage collector. You <em>need</em> this to be compiled in with your program for the program to work properly.</p>

<p>What zero.rs does is provides small stubs for everything that is absolutely necessary for a given Rust program. The only thing that zero.rs depends on is 5 C functions, which are usually provided by libc.</p>

<p>What does <em>that</em> mean? Well:</p>

<blockquote>
  <p>Garbage collection, tasks, and failure will not work. All the other language features, including unique pointers, references, and closures do work, so programs such as sprocketnes that do not use garbage collection should be fine.</p>
  
  <p>The Rust standard library cannot be used in this mode, but splitting out the Rust standard library into a portion that can be used in freestanding mode would be an interesting and valuable project (IMO).</p>
</blockquote>

<p>Why is this useful? Well, you could <a href="https://github.com/mozilla/rust/tree/incoming/src/libstd/rt">use Rust to write the Rust runtime</a>. Or you could write a Linux kernel module, since it doesn&#8217;t depend on the rest of Rust. Or you could write <a href="http://thechangelog.com/rustboot-a-tine-32-bit-kernel-written-in-rust/">an operating system in Rust</a>. Or <a href="https://github.com/graydon/rust/tree/gc">write the Rust garbage collector in Rust</a>. Reducing dependencies means that it&#8217;s much easier to use Rust in a large number of places.</p>
<p>The post <a href="http://thechangelog.com/zero-rs-write-rust-without-a-runtime/">zero.rs: write Rust without a runtime</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Vyah-UryAm4:2YjNBQZjDQk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Vyah-UryAm4:2YjNBQZjDQk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Vyah-UryAm4:2YjNBQZjDQk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Vyah-UryAm4:2YjNBQZjDQk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Vyah-UryAm4:2YjNBQZjDQk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Vyah-UryAm4:2YjNBQZjDQk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Vyah-UryAm4:2YjNBQZjDQk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Vyah-UryAm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/zero-rs-write-rust-without-a-runtime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/zero-rs-write-rust-without-a-runtime/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=zero-rs-write-rust-without-a-runtime</feedburner:origLink></item>
		<item>
		<title>gif.js, a full-featured JavaScript GIF encoder that runs in your browser</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/YF-qPvQvwXQ/</link>
		<comments>http://thechangelog.com/gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser/#comments</comments>
		<pubDate>Wed, 22 May 2013 15:00:31 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5015</guid>
		<description><![CDATA[<p>Regardless of how you pronounce it, GIF&#8217;s are cool. They&#8217;ve stood the test of time on the internet and have increased team chat happiness in HipChat and Campfire&#8217;s all around the world exponentially! Here&#8217;s a recent GIF posted to the Pure Charity water cooler after shipping. gif.js is a JavaScript GIF encoder from Johan Nordberg [...]</p><p>The post <a href="http://thechangelog.com/gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser/">gif.js, a full-featured JavaScript GIF encoder that runs in your browser</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Regardless of how you pronounce it, GIF&#8217;s are cool. They&#8217;ve stood the test of time on the internet and have increased team chat happiness in HipChat and Campfire&#8217;s all around the world exponentially! Here&#8217;s a recent GIF posted to the <a href="https://www.purecharity.com/">Pure Charity</a> water cooler after shipping.</p>

<p><img src="http://thechangelog.com/wp-content/uploads/like-a-boss.gif" alt="Like a boss" title="Like a boss" /></p>

<p>gif.js is a JavaScript <a href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">GIF</a> encoder from <a href="https://github.com/jnordberg">Johan Nordberg</a> that runs in your browser. It uses <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Typed_arrays">typed arrays</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers">web workers</a> to render each frame in the background, <em>it&#8217;s really fast!</em></p>

<p>Checkout <a href="http://jnordberg.github.io/gif.js/">the demo</a> to see gif.js in action and <a href="http://github.com/jnordberg/gif.js">the source</a> on GitHub.</p>
<p>The post <a href="http://thechangelog.com/gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser/">gif.js, a full-featured JavaScript GIF encoder that runs in your browser</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=YF-qPvQvwXQ:tfiJqbBNpDo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=YF-qPvQvwXQ:tfiJqbBNpDo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=YF-qPvQvwXQ:tfiJqbBNpDo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=YF-qPvQvwXQ:tfiJqbBNpDo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=YF-qPvQvwXQ:tfiJqbBNpDo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=YF-qPvQvwXQ:tfiJqbBNpDo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=YF-qPvQvwXQ:tfiJqbBNpDo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/YF-qPvQvwXQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gif-js-a-full-featured-javascript-gif-encoder-that-runs-in-your-browser</feedburner:origLink></item>
		<item>
		<title>#90: Pair programming and Ruby with Avdi Grimm</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/eNf82fFIZis/</link>
		<comments>http://thechangelog.com/90/#comments</comments>
		<pubDate>Wed, 22 May 2013 14:00:15 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[pair-programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=5008</guid>
		<description><![CDATA[<p>Adam Stacoviak, Andrew Thorp and fellow changelogger Steve Klabnik talk about pair programming, distributed teams, workflows, Ruby and more with Avdi Grimm. Listen to this episode on 5by5! We moved the show to 5by5! You can tune-in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/90/">#90: Pair programming and Ruby with Avdi Grimm</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://thechangelog.com/author/adamstac/">Adam Stacoviak</a>, <a href="http://thechangelog.com/author/andrewpthorp/">Andrew Thorp</a> and fellow changelogger <a href="http://thechangelog.com/author/steveklabnik/">Steve Klabnik</a> talk about <a href="http://thechangelog.com/pair-with-me/">pair programming</a>, distributed teams, workflows, Ruby and more with <a href="https://twitter.com/avdi">Avdi Grimm</a>.</p>

<p><a href="http://5by5.tv/changelog/90">Listen to this episode on 5by5!</a></p>

<hr />

<p><a href="http://thechangelog.com/moving-to-5by5/">We moved the show to 5by5</a>! You can <a href="http://5by5.tv/live">tune-in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/90/">#90: Pair programming and Ruby with Avdi Grimm</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=eNf82fFIZis:fCuyzYgMHFc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eNf82fFIZis:fCuyzYgMHFc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eNf82fFIZis:fCuyzYgMHFc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=eNf82fFIZis:fCuyzYgMHFc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eNf82fFIZis:fCuyzYgMHFc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=eNf82fFIZis:fCuyzYgMHFc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=eNf82fFIZis:fCuyzYgMHFc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/eNf82fFIZis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/90/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=90</feedburner:origLink></item>
		<item>
		<title>Pair with me!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/OF5Dr-E8Tx8/</link>
		<comments>http://thechangelog.com/pair-with-me/#comments</comments>
		<pubDate>Tue, 21 May 2013 22:41:37 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[#pairwithme]]></category>
		<category><![CDATA[pair-programming]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4994</guid>
		<description><![CDATA[<p>From the readme: A community-maintained resource to encourage and facilitate diverse pair-programming. Help eagerly welcomed! Put out your pair-programming welcome mat. Pair today! If you&#8217;re new to the scene there&#8217;s TONS of resources to help you get started. Listen to episode #90 with Avdi Grimm too! We talk at length about this with #pairwithme creator [...]</p><p>The post <a href="http://thechangelog.com/pair-with-me/">Pair with me!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>From <a href="https://github.com/avdi/ppwm#readme">the readme</a>:</p>

<blockquote>
  <p>A community-maintained resource to encourage and facilitate diverse pair-programming. Help eagerly welcomed!</p>
</blockquote>

<p><a href="http://www.pairprogramwith.me/"><img src="http://www.pairprogramwith.me/badge.png" alt="Pair with me!" title="Pair with me!" /></a></p>

<p><a href="http://www.pairprogramwith.me/">Put out your pair-programming welcome mat</a>. Pair today! If you&#8217;re new to the scene <a href="http://www.pairprogramwith.me/#resources">there&#8217;s TONS of resources</a> to help you get started.</p>

<p>Listen to <a href="http://5by5.tv/changelog/90">episode #90 with Avdi Grimm</a> too! We talk at length about this with <a href="https://twitter.com/search?q=%23pairwithme">#pairwithme</a> creator <a href="https://twitter.com/avdi">Avdi Grimm</a>.</p>
<p>The post <a href="http://thechangelog.com/pair-with-me/">Pair with me!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=OF5Dr-E8Tx8:ZlesV59cjDI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=OF5Dr-E8Tx8:ZlesV59cjDI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=OF5Dr-E8Tx8:ZlesV59cjDI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=OF5Dr-E8Tx8:ZlesV59cjDI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=OF5Dr-E8Tx8:ZlesV59cjDI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=OF5Dr-E8Tx8:ZlesV59cjDI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=OF5Dr-E8Tx8:ZlesV59cjDI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/OF5Dr-E8Tx8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/pair-with-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/pair-with-me/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pair-with-me</feedburner:origLink></item>
		<item>
		<title>Heckle, the Jekyll clone in node.js</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/T2IN57a_mIQ/</link>
		<comments>http://thechangelog.com/heckle-the-jekyll-clone-in-node-js/#comments</comments>
		<pubDate>Tue, 21 May 2013 06:53:26 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jekyll]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4287</guid>
		<description><![CDATA[<p>The why: I like the approach to managing a site taken by Jekyll. A lot. I don&#8217;t like Ruby, and I don&#8217;t like strict logic-less templates. Jekyll is Ruby with Liquid as the templating engine. Heckle is JavaScript with Mold (programmable template extravaganza) as the templating engine. If you feel how Marijn feels and you [...]</p><p>The post <a href="http://thechangelog.com/heckle-the-jekyll-clone-in-node-js/">Heckle, the Jekyll clone in node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/marijnh/heckle#why">The why</a>:</p>

<blockquote>
  <p>I like the approach to managing a site taken by Jekyll. A lot.</p>
  
  <p>I don&#8217;t like Ruby, and I don&#8217;t like strict logic-less templates. Jekyll is Ruby with Liquid as the templating engine.</p>
  
  <p>Heckle is JavaScript with Mold (programmable template extravaganza) as the templating engine.</p>
</blockquote>

<p>If you feel how <a href="https://github.com/marijnh">Marijn</a> feels and you don&#8217;t like Ruby, or strict logic-less templates &#8212; you should checkout <a href="https://github.com/marijnh/heckle">Heckle</a>. Marijn also asks that you not use Heckle at this point IF you want something stable and finished. <em>It&#8217;s a work in progress.</em></p>

<p>Check out <a href="https://github.com/marijnh/heckle">the source</a>, or learn more about <a href="http://marijnhaverbeke.nl/blog/heckle.html">Heckle&#8217;s origins</a>.</p>
<p>The post <a href="http://thechangelog.com/heckle-the-jekyll-clone-in-node-js/">Heckle, the Jekyll clone in node.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=T2IN57a_mIQ:GLTmbh3BrS4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=T2IN57a_mIQ:GLTmbh3BrS4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=T2IN57a_mIQ:GLTmbh3BrS4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=T2IN57a_mIQ:GLTmbh3BrS4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=T2IN57a_mIQ:GLTmbh3BrS4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=T2IN57a_mIQ:GLTmbh3BrS4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=T2IN57a_mIQ:GLTmbh3BrS4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/T2IN57a_mIQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/heckle-the-jekyll-clone-in-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/heckle-the-jekyll-clone-in-node-js/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=heckle-the-jekyll-clone-in-node-js</feedburner:origLink></item>
		<item>
		<title>flickr-store, store arbitrary data with your 1TB Flickr cloud</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/zYT3xuFyjZo/</link>
		<comments>http://thechangelog.com/flickr-store/#comments</comments>
		<pubDate>Tue, 21 May 2013 05:58:13 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Data Store]]></category>
		<category><![CDATA[Flickr]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4976</guid>
		<description><![CDATA[<p>A neat hack from Ryan LeFevre on Flickr&#8217;s API. Someone joked about storing files on Flickr since they now offer 1TB, and I thought it was hilarious enough to try github.com/meltingice/fli…&#8212; Ryan LeFevre (@MeltingIce) May 21, 2013 From the readme: Store arbitrary data with your 1TB Flickr cloud drive by encoding any file as a [...]</p><p>The post <a href="http://thechangelog.com/flickr-store/">flickr-store, store arbitrary data with your 1TB Flickr cloud</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A neat hack from <a href="https://github.com/meltingice">Ryan LeFevre</a> on <a href="http://www.flickr.com/services/api/">Flickr&#8217;s API</a>.</p>

<blockquote class="twitter-tweet" data-cards="hidden"><p>Someone joked about storing files on Flickr since they now offer 1TB, and I thought it was hilarious enough to try <a href="https://t.co/OsSm6DMdP4" title="https://github.com/meltingice/flickr-store">github.com/meltingice/fli…</a></p>&mdash; Ryan LeFevre (@MeltingIce) <a href="https://twitter.com/MeltingIce/status/336699302221078528">May 21, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>From <a href="https://github.com/meltingice/flickr-store/blob/master/README.md">the readme</a>:</p>

<blockquote>
  <p>Store arbitrary data with your 1TB Flickr cloud drive by encoding any file as a PNG. This is mostly a proof of concept right now. Don&#8217;t do anything beyond tinkering with it yet.</p>
</blockquote>

<p>Check out <a href="https://github.com/meltingice/flickr-store">the project</a> on GitHub!</p>

<hr />

<p>Thanks to <a href="http://thechangelog.com/author/soffes/">Sam Soffes</a> for <a href="https://twitter.com/soffes/status/336703485552775168">the tip</a>!</p>
<p>The post <a href="http://thechangelog.com/flickr-store/">flickr-store, store arbitrary data with your 1TB Flickr cloud</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=zYT3xuFyjZo:TP3UCr7L-1o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=zYT3xuFyjZo:TP3UCr7L-1o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=zYT3xuFyjZo:TP3UCr7L-1o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=zYT3xuFyjZo:TP3UCr7L-1o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=zYT3xuFyjZo:TP3UCr7L-1o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=zYT3xuFyjZo:TP3UCr7L-1o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=zYT3xuFyjZo:TP3UCr7L-1o:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/zYT3xuFyjZo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/flickr-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/flickr-store/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=flickr-store</feedburner:origLink></item>
		<item>
		<title>App.net terms of service (TOS)</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/NxtRtOkluyI/</link>
		<comments>http://thechangelog.com/app-net-terms-of-service-tos/#comments</comments>
		<pubDate>Tue, 21 May 2013 05:30:48 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[Legal]]></category>
		<category><![CDATA[Terms of Service]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4965</guid>
		<description><![CDATA[<p>In a recent Founders Talk and an episode of The Industry Radio Show, I had the awesome pleasure of chatting with Dalton Caldwell about his journey as a Founder, but more importantly, I was able to chat with him about some of the innovative things they are doing at App.net. When aiming for transparency with [...]</p><p>The post <a href="http://thechangelog.com/app-net-terms-of-service-tos/">App.net terms of service (TOS)</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In <a href="http://5by5.tv/founderstalk/42">a recent Founders Talk</a> and an episode of <a href="http://theindustry.cc/2013/05/20/44-dalton-caldwell/">The Industry Radio Show</a>, I had the awesome pleasure of chatting with Dalton Caldwell about his journey as a Founder, but more importantly, I was able to chat with him about some of the innovative things they are doing at App.net.</p>

<p><a href="http://www.manton.org/2012/08/appnets_great.html">When aiming for transparency with developers</a> (something <a href="https://dev.twitter.com/blog/delivering-consistent-twitter-experience">Twitter has struggled with</a> over the past few years), something as simple as publishing your Terms of Service on GitHub goes a long way to show TRUE transparency.</p>

<p>From <a href="https://github.com/appdotnet/terms-of-service/blob/master/README.md">the readme</a>:</p>

<blockquote>
  <p>The App.net terms of service documents live here. To facilitate transparent discussion, we encourage users to create issues and/or submit pull requests with your feedback. Our general process is to incorporate user feedback on a roughly quarterly basis based on review with our legal team, but in the early stages this may occur significantly more often.</p>
</blockquote>

<p>What I love most is that transparency in changes to App.net&#8217;s terms of service are not only collaborative, but they are also just a diff away. In fact, if you wanted to get all Git about it, you could <code>git-blame</code> the actual person who committed the change.</p>

<p>Kudos to Dalton and the choice&#8217;s they are making at App.net for being transparent and developer centric!</p>

<p><em>If you don&#8217;t have an App.net account</em>, use this link to get a free account: <a href="https://join.app.net/from/adamstac">join.app.net/from/adamstac</a></p>
<p>The post <a href="http://thechangelog.com/app-net-terms-of-service-tos/">App.net terms of service (TOS)</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=NxtRtOkluyI:ys2qbF6uxzE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=NxtRtOkluyI:ys2qbF6uxzE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=NxtRtOkluyI:ys2qbF6uxzE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=NxtRtOkluyI:ys2qbF6uxzE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=NxtRtOkluyI:ys2qbF6uxzE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=NxtRtOkluyI:ys2qbF6uxzE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=NxtRtOkluyI:ys2qbF6uxzE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/NxtRtOkluyI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/app-net-terms-of-service-tos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/app-net-terms-of-service-tos/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=app-net-terms-of-service-tos</feedburner:origLink></item>
		<item>
		<title>Meet Boris, a tiny REPL for PHP</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/CG2Kp1et3PA/</link>
		<comments>http://thechangelog.com/meet-boris-a-tiny-repl-for-php/#comments</comments>
		<pubDate>Mon, 20 May 2013 12:23:43 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[repl]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4950</guid>
		<description><![CDATA[<p>Chris Corbyn was frustrated with PHP&#8217;s lack of a good REPL, so he took matters into his own hands and created Boris. I can relate to Chris&#8217;s experience. Back when I used to write WordPress plugins I got so frustrated by the lack of a Rails-like interactive console that I created one for WordPress. Boris [...]</p><p>The post <a href="http://thechangelog.com/meet-boris-a-tiny-repl-for-php/">Meet Boris, a tiny REPL for PHP</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://twitter.com/d11wtq">Chris Corbyn</a> was frustrated with PHP&#8217;s lack of a good <a href="http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop">REPL</a>, so he took matters into his own hands and created <a href="https://github.com/d11wtq/boris">Boris</a>. I can relate to Chris&#8217;s experience. Back when I used to write WordPress plugins I got so frustrated by the lack of a Rails-like interactive console that I <a href="http://wordpress.org/plugins/wordpress-console/">created one</a> for WordPress.</p>

<p>Boris is cooler than my little plugin because it works outside of WordPress and runs directly in your terminal. Check it out in action:</p>

<p><a href="https://github.com/d11wtq/boris"><img src="http://thechangelog.com/wp-content/uploads/boris.gif" alt="" /></a></p>

<p>You can install Boris via Packagist or use it directly by cloning the repo:</p>

<pre><code class='no-highlight'>git clone git://github.com/d11wtq/boris.git
cd boris
./bin/boris
</code></pre>

<p>This and much more information about the REPL is available in the <a href="https://github.com/d11wtq/boris#readme">README</a>. Boris is MIT licensed and hosted <a href="https://github.com/d11wtq/boris">on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/meet-boris-a-tiny-repl-for-php/">Meet Boris, a tiny REPL for PHP</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=CG2Kp1et3PA:cNIAkJXf7kg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=CG2Kp1et3PA:cNIAkJXf7kg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=CG2Kp1et3PA:cNIAkJXf7kg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=CG2Kp1et3PA:cNIAkJXf7kg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=CG2Kp1et3PA:cNIAkJXf7kg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=CG2Kp1et3PA:cNIAkJXf7kg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=CG2Kp1et3PA:cNIAkJXf7kg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/CG2Kp1et3PA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/meet-boris-a-tiny-repl-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/meet-boris-a-tiny-repl-for-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=meet-boris-a-tiny-repl-for-php</feedburner:origLink></item>
		<item>
		<title>Gmail Notifr, an open source Gmail notifier for OS X</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/yhEFPE08iWw/</link>
		<comments>http://thechangelog.com/gmail-notifr-an-open-source-gmail-notifier-for-os-x/#comments</comments>
		<pubDate>Sat, 18 May 2013 05:15:44 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[MacRuby]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[RubyCocoa]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4341</guid>
		<description><![CDATA[<p>Call me crazy, but I like using the native Gmail web view. Thanks to a tip from my buddy Bryce Hewett, I started to using an open source tool called Gmail Notifr for Mac OS X. It&#8217;s pretty simple and tucks neatly away in your system tray and even supports multiple accounts. If you want [...]</p><p>The post <a href="http://thechangelog.com/gmail-notifr-an-open-source-gmail-notifier-for-os-x/">Gmail Notifr, an open source Gmail notifier for OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Call me crazy, but I like using the native Gmail web view. Thanks to a tip from my buddy <a href="https://twitter.com/brycehewett">Bryce Hewett</a>, I started to using an open source tool called Gmail Notifr for Mac OS X. It&#8217;s pretty simple and tucks neatly away in your system tray and even supports multiple accounts.</p>

<p><img src="http://thechangelog.com/wp-content/uploads/gmail-notifr.png" alt="Gmail Notifier" title="Gmail Notifier" /></p>

<p>If you want to try it out, <a href="http://ashchan.com/projects/gmail-notifr">download it here</a>.</p>

<p>Gmail Notifr was originally written in <a href="https://github.com/ashchan/gmail-notifr-objc/tree/rubycocoa">RubyCocoa</a>, then <a href="https://github.com/ashchan/gmail-notifr">MacRuby</a>, and recently <a href="https://github.com/ashchan/gmail-notifr-objc">Objective-C</a>.</p>
<p>The post <a href="http://thechangelog.com/gmail-notifr-an-open-source-gmail-notifier-for-os-x/">Gmail Notifr, an open source Gmail notifier for OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=yhEFPE08iWw:_FFj2s6EKJc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=yhEFPE08iWw:_FFj2s6EKJc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=yhEFPE08iWw:_FFj2s6EKJc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=yhEFPE08iWw:_FFj2s6EKJc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=yhEFPE08iWw:_FFj2s6EKJc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=yhEFPE08iWw:_FFj2s6EKJc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=yhEFPE08iWw:_FFj2s6EKJc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/yhEFPE08iWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/gmail-notifr-an-open-source-gmail-notifier-for-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/gmail-notifr-an-open-source-gmail-notifier-for-os-x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gmail-notifr-an-open-source-gmail-notifier-for-os-x</feedburner:origLink></item>
		<item>
		<title>#89: Doing incredible things with linux containers and Docker with Solomon Hykes</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/MIzjaLVr-V4/</link>
		<comments>http://thechangelog.com/89/#comments</comments>
		<pubDate>Fri, 17 May 2013 16:37:48 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[dotcloud]]></category>
		<category><![CDATA[linux containers]]></category>
		<category><![CDATA[lxc]]></category>
		<category><![CDATA[PaaS]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4928</guid>
		<description><![CDATA[<p>Adam and Andrew talk about linux containers, Docker, and dotCloud with Solomon Hykes &#8211; Founder &#38; CEO of DotCloud and the creator of Docker. Listen to this episode on 5by5! We moved the show to 5by5! You can tune-in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/89/">#89: Doing incredible things with linux containers and Docker with Solomon Hykes</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam and Andrew talk about linux containers, Docker, and dotCloud with Solomon Hykes &#8211; Founder &amp; CEO of DotCloud and the creator of Docker.</p>

<p><a href="http://5by5.tv/changelog/89">Listen to this episode on 5by5!</a></p>

<hr />

<p><a href="http://thechangelog.com/moving-to-5by5/">We moved the show to 5by5</a>! You can <a href="http://5by5.tv/live">tune-in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/89/">#89: Doing incredible things with linux containers and Docker with Solomon Hykes</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=MIzjaLVr-V4:Kj3MU1Jq_Rs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=MIzjaLVr-V4:Kj3MU1Jq_Rs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=MIzjaLVr-V4:Kj3MU1Jq_Rs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=MIzjaLVr-V4:Kj3MU1Jq_Rs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=MIzjaLVr-V4:Kj3MU1Jq_Rs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=MIzjaLVr-V4:Kj3MU1Jq_Rs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=MIzjaLVr-V4:Kj3MU1Jq_Rs:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/MIzjaLVr-V4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/89/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=89</feedburner:origLink></item>
		<item>
		<title>Earn a Sidekiq blackbelt by breaking a few boards</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/FhWf8afywxM/</link>
		<comments>http://thechangelog.com/earn-a-sidekiq-blackbelt/#comments</comments>
		<pubDate>Fri, 17 May 2013 15:02:27 +0000</pubDate>
		<dc:creator>Kelly Martin</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[queues]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[resque]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sidekiq]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4887</guid>
		<description><![CDATA[<p>Wynn posted about Sidekiq last February, briefly introducing a new way of handling background workers. For those of us who took on the challenge of switching from Resque to Sidekiq, you can probably agree with me that it brought a new set of challenges to tackle. The upside of that, though, is that tackling those [...]</p><p>The post <a href="http://thechangelog.com/earn-a-sidekiq-blackbelt/">Earn a Sidekiq blackbelt by breaking a few boards</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn posted about Sidekiq <a href="/sidekiq-more-efficient-resque-compatible-message-process/">last February</a>, briefly introducing a new way of handling background workers.  For those of us who took on the challenge of switching from Resque to <a href="https://github.com/mperham/sidekiq">Sidekiq</a>, you can probably agree with me that it brought a new set of challenges to tackle.  The upside of that, though, is that tackling those quirks is well worth the payoff.</p>

<p>To save some trouble for those of you who want to switch but haven&#8217;t yet, here&#8217;s what to look out for on the conversion.</p>

<h2>#1: Sidekiq is too darn fast</h2>

<p>It sounds ridiculous, but Sidekiq is so fast that it can run your worker before your model even finishes saving.  There&#8217;s one easy solution for this: don&#8217;t use <code>after_create</code> or <code>after_save</code>, but instead use <code>after_commit</code> to make sure that model is done with the database.</p>

<pre><code class="ruby">after_commit :run_expensive_hello_world, :on => :create</code></pre>

<p>This will solve 99% of your use-cases, but if you use something like <a href="https://github.com/pluginaweek/state_machine">state_machine</a>, you won&#8217;t be able to use any of state_machine&#8217;s transitions to push out a worker.  Instead, we solved it by creating an instance variable that the <code>after_commit</code> callback uses.</p>

<pre><code>attr_accessor :just_moved

after_commit :tell_neighbors_hi, :if =&gt; :just_moved

state_machine :status, :initial =&gt; :sitting do
  # ...
  after_transition any =&gt; :moved do |i|
    i.just_moved = true
  end
end
</code></pre>

<h2>#2: You can&#8217;t see failed jobs. Well, sort of.</h2>

<p>Sidekiq is different from Resque in that it doesn&#8217;t keep a permanent record of your failed jobs, so you won&#8217;t always be able to go back later and run it again after it&#8217;s fixed.</p>

<p>The reasoning behind this design decision is that Sidekiq, unlike Resque, will retry your job at increasing intervals automatically up until about 20 days, along with giving you the ability to manually retry it &#8212; plenty of time to see the error, assign the bug and fix it. After that, you can say sayonara to that record. Sidekiq has some nice docs of <a href="https://github.com/mperham/sidekiq/wiki/Error-Handling">how to handle errors</a>, though, including saying one last goodbye to the error, so it&#8217;s not too hard to set up some safeguards against losing data.</p>

<p>If you don&#8217;t want to take the time to set all that up, there&#8217;s always <a href="https://github.com/mhfs/sidekiq-failures">sidekiq-failures</a>.</p>

<h2>#3: Sidekiq&#8217;s <code>perform</code> is not Resque&#8217;s <code>self.perform</code></h2>

<p>Mike Perham has done a good job of making the terminology fairly similar when switching from Resque to Sidekiq.  However, make note that Sidekiq&#8217;s <code>perform</code> method is an instance-level method, whereas Resque&#8217;s is class-level.</p>

<p>The main takeaway from this is that in Resque, it&#8217;s not uncommon to throw the <code>perform</code> method on whatever object you want to use for the worker.  In Sidekiq, you&#8217;ve got to watch out for initializing that new object. You might be able to get away with it if your <code>initialize</code> method has no arguments, but you&#8217;re better off creating a new class just for the worker.</p>

<p>After getting accustomed to some of the differences between Resque and Sidekiq, it&#8217;s pretty easy to see that Sidekiq can shave time and money off your server and is definitely worth the switch.</p>
<p>The post <a href="http://thechangelog.com/earn-a-sidekiq-blackbelt/">Earn a Sidekiq blackbelt by breaking a few boards</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=FhWf8afywxM:oZtIdR-zz7g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=FhWf8afywxM:oZtIdR-zz7g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=FhWf8afywxM:oZtIdR-zz7g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=FhWf8afywxM:oZtIdR-zz7g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=FhWf8afywxM:oZtIdR-zz7g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=FhWf8afywxM:oZtIdR-zz7g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=FhWf8afywxM:oZtIdR-zz7g:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/FhWf8afywxM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/earn-a-sidekiq-blackbelt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/earn-a-sidekiq-blackbelt/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=earn-a-sidekiq-blackbelt</feedburner:origLink></item>
		<item>
		<title>#88: Vagrant, HashiCorp and beyond with Mitchell Hashimoto</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/7j2V8_sOIOg/</link>
		<comments>http://thechangelog.com/88/#comments</comments>
		<pubDate>Wed, 15 May 2013 19:04:15 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4869</guid>
		<description><![CDATA[<p>Adam and Andrew talk with Mitchell Hashimoto, the creator of Vagrant and founder of HashiCorp. Listen to episode #88 on 5by5! If you&#8217;re just catching up, we&#8217;ve move the podcast to 5by5. Tune in LIVE on Tuesday&#8217;s at 5pm CST.</p><p>The post <a href="http://thechangelog.com/88/">#88: Vagrant, HashiCorp and beyond with Mitchell Hashimoto</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam and Andrew talk with Mitchell Hashimoto, the creator of Vagrant and founder of HashiCorp.</p>

<p><a href="http://5by5.tv/changelog/88">Listen to episode #88 on 5by5!</a></p>

<p>If you&#8217;re just catching up, <a href="http://thechangelog.com/moving-to-5by5/">we&#8217;ve move the podcast to 5by5</a>. <a href="http://5by5.tv/live">Tune in LIVE</a> on Tuesday&#8217;s at 5pm CST.</p>
<p>The post <a href="http://thechangelog.com/88/">#88: Vagrant, HashiCorp and beyond with Mitchell Hashimoto</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=7j2V8_sOIOg:_phJ9R4FJG0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7j2V8_sOIOg:_phJ9R4FJG0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7j2V8_sOIOg:_phJ9R4FJG0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=7j2V8_sOIOg:_phJ9R4FJG0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7j2V8_sOIOg:_phJ9R4FJG0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=7j2V8_sOIOg:_phJ9R4FJG0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=7j2V8_sOIOg:_phJ9R4FJG0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/7j2V8_sOIOg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/88/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=88</feedburner:origLink></item>
		<item>
		<title>Wry brings App.net to the command line</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/1gA0b66ntag/</link>
		<comments>http://thechangelog.com/wry-brings-app-net-to-the-command-line/#comments</comments>
		<pubDate>Wed, 15 May 2013 03:41:04 +0000</pubDate>
		<dc:creator>Beverly Nelson</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[App.net]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4800</guid>
		<description><![CDATA[<p>Ever wish you could keep tabs on your App.net stream but hate the thought of having one more client to check? What if you could keep up right from your terminal window? ---------- Rob Warner (@hoop33) (258) You I'm working on PM support for Wry this weekend :-) #wry ID: 5557218 -- 2013-05-11T12:04:10Z ---------- Wry [...]</p><p>The post <a href="http://thechangelog.com/wry-brings-app-net-to-the-command-line/">Wry brings App.net to the command line</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Ever wish you could keep tabs on your <a href="https://join.app.net/">App.net</a> stream but hate the thought of having <em>one more client</em> to check? What if you could keep up right from your terminal window?</p>

<pre><code class="no-highlight">----------
Rob Warner (@hoop33) (258)  You
I'm working on PM support for Wry this weekend :-) #wry
ID: 5557218 -- 2013-05-11T12:04:10Z
----------
</code></pre>

<p><a href="http://grailbox.com/wry/">Wry is a command-line tool</a> for Mac OS X 10.7+ that solves that problem by bringing App.net to the command line. Installing Wry couldn&#8217;t be easier especially if you&#8217;re using homebrew.</p>

<p>First run this to make sure everything is up to date.</p>

<pre><code class="no-highlight">$ brew doctor</code></pre>

<p>Next, simply type:</p>

<pre><code class="no-highlight">$ brew install wry</code></pre>

<p>In seconds you&#8217;ll have Wry installed and can add authorization</p>

<pre><code class="no-highlight">$ wry authorize</code></pre>

<p>Copy and paste your authorization code from the App.net website and you&#8217;re done. Yes, it&#8217;s that simple. You can also download and install the zip file yourself.</p>

<p>Once it&#8217;s installed, type <code>wry</code> to see a list of supported commands.</p>

<pre><code class="no-highlight">The wry commands are:
   authorize   Authorize with App.net
   block       Block a user
   commands    List available commands
   delete      Delete a post
   download    Download a file
   find        Finds users
   follow      Follow a user
   followers   List the users following a user
   following   List the users a user is following
   global      Display the global stream
   help        Display help
   ls          Get a file listing
   mentions    Display the mentions for a user
   mute        Mute a user
   muted       List the users that a user has muted
   post        Create a post
   posts       Display a user's posts
   read        Read a post
   replies     Display the replies to a post
   reply       Reply to a post
   repost      Repost a post
   search      Search for hashtag
   star        Star a post
   stream      Display the current user's stream
   unblock     Unblock a user
   unfollow    Unfollow a user
   unified     Display the current user's unified stream
   unmute      Unmute a user
   upload      Upload a file
   user        Display information about a user
   users       Manage the users you've authorized on this computer
   version     Display version information
</code></pre>

<p>The list of commands supported by Wry is impressive. After reaching out to Rob, to let him know how much I enjoyed using it, he told me that private messaging and patter room support was released with version 1.5. Just an added bonus to an already great tool.</p>

<p>Check out <a href="https://github.com/hoop33/wry">Wry on github</a> and follow author <a href="hoop33">Rob Warner (@hoop33) on App.net or Twitter</a>.</p>

<p>Special thanks to <a href="https://github.com/denniskeefe">Dennis Keefe</a>, writer of <a href="http://thecommongeek.com/">The Common Geek</a>, for pointing it out.</p>
<p>The post <a href="http://thechangelog.com/wry-brings-app-net-to-the-command-line/">Wry brings App.net to the command line</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=1gA0b66ntag:mk9LIzq8lg0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=1gA0b66ntag:mk9LIzq8lg0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=1gA0b66ntag:mk9LIzq8lg0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=1gA0b66ntag:mk9LIzq8lg0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=1gA0b66ntag:mk9LIzq8lg0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=1gA0b66ntag:mk9LIzq8lg0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=1gA0b66ntag:mk9LIzq8lg0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/1gA0b66ntag" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/wry-brings-app-net-to-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/wry-brings-app-net-to-the-command-line/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wry-brings-app-net-to-the-command-line</feedburner:origLink></item>
		<item>
		<title>The Changelog podcast is moving to 5by5!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/60r7LZ2eMCI/</link>
		<comments>http://thechangelog.com/moving-to-5by5/#comments</comments>
		<pubDate>Tue, 14 May 2013 18:14:03 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Updates]]></category>
		<category><![CDATA[5by5]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4768</guid>
		<description><![CDATA[<p>We&#8217;re excited to announce that the podcast is moving to 5by5! Pretty much since we first launched the podcast Dan Benjamin (founder of 5by5) has wanted The Changelog to join the ranks of 5by5. The only reason we didn&#8217;t make the move back then was because of how we choose to number our podcast episodes. [...]</p><p>The post <a href="http://thechangelog.com/moving-to-5by5/">The Changelog podcast is moving to 5by5!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><em>We&#8217;re excited to announce that <a href="http://5by5.tv/changelog">the podcast is moving to 5by5</a>!</em></p>

<p><a href="http://5by5.tv/changelog"><img src="http://thechangelog.com/wp-content/uploads/tcl+5by5.png" alt="The Changelog + 5by5" title="The Changelog + 5by5" /></a></p>

<p>Pretty much since we first launched the podcast <a href="https://twitter.com/danbenjamin">Dan Benjamin</a> (founder of 5by5) has wanted The Changelog to join the ranks of 5by5. The only reason we didn&#8217;t make the move back then was because of how we choose to number our podcast episodes. Rather than having episode #86, we had episode 0.8.6. For Dan, that was a big problem for 5by5&#8242;s CMS.</p>

<p>Needless to say, we never made the move. Over the years, we&#8217;ve even taken slack for not following <a href="http://semver.org/">SemVer</a> so we figured improperly versioning the podcast for the sake of being more true to the hacker way wasn&#8217;t working. So we&#8217;re ditching the version numbers as episode numbers, and making our way to 5by5 with normal episode numbers like a good podcast should.</p>

<p>Let me just say that <em>we are STOKED</em> to be joining forces with Dan and 5by5! If you don&#8217;t already, <a href="https://twitter.com/thechangelog">follow @TheChangelog on Twitter</a> for blog updates and new show announcements so you don&#8217;t miss a beat!</p>

<h2>What&#8217;s changing?</h2>

<p><em>Nothing, for the most part.</em></p>

<p>Since the re-launch, we made a commitment to you to bring the podcast back &#8212; we now broadcast the show live every Tuesday at 5pm CST. No change there.</p>

<p>We also opened up the IRC chat room on Freenode for realtime chat during the show. Moving to 5by5 has no effect on this plan. In fact, it only helps us to better execute this plan.</p>

<p>The only change is where you go to <a href="http://5by5.tv/live">listen to the show live</a> and <a href="http://thechangelog.com/subscribe/">subscribe</a>.</p>

<p><em>Nothing, and I repeat nothing is changing with the blog. In fact, we&#8217;re growing. More on that later.</em></p>

<h2>Listening live</h2>

<p>The show will be LIVE at <a href="http://5by5.tv/live">5by5.tv/live</a> every Tuesday at 5pm CST.</p>

<p>5by5 also has their <a href="https://itunes.apple.com/us/app/5by5-radio/id520847556?mt=8">5by5 Radio app for iOS ($2.99)</a> which lets you listen live on the go. You can also opt-in to push notifications when the show goes live so you never miss another show. If you have the app already, head to the settings and enable push notifications for The Changelog. You might as well enable push notifications for <a href="http://5by5.tv/founderstalk">Founders Talk</a> too while you&#8217;re there.</p>

<h2>Listening to the show archive</h2>

<p><a href="http://5by5.tv/changelog">The entire show archive and future recorded shows</a> will now be served by the 5by5 CMS and distributed across the globe by Cachefly&#8217;s CDN. So no matter where you are in the world, you&#8217;ll get super fast access to the show.</p>

<p>We&#8217;re also pretty excited about the new artwork <a href="https://twitter.com/sensibleworld">Jory</a> is making us! Keep an eye out <a href="http://dribbble.com/sensibleworld">on his Dribbble</a> for a sneak peek.</p>

<h2>Subscribing to the show</h2>

<p><em>For those who subscribe via RSS</em> &#8212; update your feed to use <code>http://feeds.5by5.tv/changelog</code>, or click here <a href="http://feeds.5by5.tv/changelog">feeds.5by5.tv/changelog</a>.</p>

<p><em>For those who subscribe via iTunes</em> &#8212; No change is required! We did update the feed that iTunes consumes though, so you MAY see older shows get re-downloaded. Sadly, we can&#8217;t prevent this. <a href="https://itunes.apple.com/podcast/the-changelog/id341623264">Subscribe via iTunes</a> here.</p>
<p>The post <a href="http://thechangelog.com/moving-to-5by5/">The Changelog podcast is moving to 5by5!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=60r7LZ2eMCI:0AS72aXzLP0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=60r7LZ2eMCI:0AS72aXzLP0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=60r7LZ2eMCI:0AS72aXzLP0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=60r7LZ2eMCI:0AS72aXzLP0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=60r7LZ2eMCI:0AS72aXzLP0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=60r7LZ2eMCI:0AS72aXzLP0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=60r7LZ2eMCI:0AS72aXzLP0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/60r7LZ2eMCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/moving-to-5by5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/moving-to-5by5/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=moving-to-5by5</feedburner:origLink></item>
		<item>
		<title>Episode 0.8.7 – Sustaining open source and building an open company with Chad Whitacre</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/WtRepZuxHVc/</link>
		<comments>http://thechangelog.com/087/#comments</comments>
		<pubDate>Fri, 10 May 2013 04:00:57 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[open company]]></category>
		<category><![CDATA[sustainability]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4786</guid>
		<description><![CDATA[<p>Adam Stacoviak, Andrew Thorp and Kenneth Reitz talk with Chad Whitacre about sustaining open source through Gittip, building an open company and more. Tune in LIVE every Tuesday at 3pm PT / 6pm ET. We&#8217;re live every Tuesday! thechangelog.com/live Hack in style with your very own Changelog tee! We are now member supported! We&#8217;re joined [...]</p><p>The post <a href="http://thechangelog.com/087/">Episode 0.8.7 &#8211; Sustaining open source and building an open company with Chad Whitacre</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam Stacoviak, Andrew Thorp and Kenneth Reitz talk with Chad Whitacre about sustaining open source through <a href="https://www.gittip.com/">Gittip</a>, building an open company and more.</p>

<p><em><a href="/live/">Tune in LIVE every Tuesday at 3pm PT / 6pm ET</a>.</em></p>

<audio src="http://changelogshow.com/105/91605-episode-0-8-7-sustaining-open-source-and-building-an-open-company-with-chad-whitacre.mp3" controls="controls" preload="none"></audio>

<ul>
<li>We&#8217;re live every Tuesday! <a href="http://thechangelog.com/live">thechangelog.com/live</a></li>
<li><a href="https://thechangelog.com/store">Hack in style with your very own Changelog tee!</a></li>
<li>We are now <a href="https://thechangelog.com/membership">member supported!</a></li>
<li>We&#8217;re joined by <a href="http://twitter.com/whit537">Chad Whitacre</a> of <a href="http://gittip.com">gittip.com</a></li>
<li><a href="http://gittip.com">gittip.com</a> allows you to send recurring gifts to people you want to support</li>
<li>Chad is running gittip.com as an <a href="http://blog.gittip.com/post/26350459746/the-first-open-company">open company</a></li>
<li><a href="http://pledgie.com/">Pledgie</a> is a way to raise funds online</li>
<li>The <a href="http://www.macfound.org/programs/fellows/">MacArthur Genius Grant</a> is a program that supports awesome people doing awesome things</li>
<li><a href="https://balancedpayments.com/">Balanced Payments</a> is the payment provider behind gittip</li>
<li><a href="http://stripe.com">Stripe</a> is another payment provider</li>
<li><a href="https://watsi.org/">Watsi</a> is crowd funding for changing the world for good</li>
<li>Balanced has <a href="https://github.com/balanced/balanced-dashboard">open sourced their dashboard</a></li>
<li>A <a href="http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life">BDFL</a> is a Benevolent Dictator for Life</li>
<li><a href="http://theleanstartup.com/">The Lean Startup</a> is a book by Eric Ries</li>
<li><a href="https://www.gittip.com/heroku/">Heroku gives on gittip.</a></li>
<li><a href="https://www.gittip.com/MaxCDN/">MaxCDN gives on gittip.</a></li>
<li><a href="http://reddit.com">Reddit</a> is an open source project and is on <a href="http://github.com/reddit/reddit">github</a></li>
<li>Share projects and links with us <a href="http://www.reddit.com/r/thechangelog">on our subreddit</a></li>
<li>You can sign up for the <a href="https://tinyletter.com/gittip">gittip newsletter</a></li>
<li><a href="https://medium.com/">Medium</a> is a new writing platform</li>
<li>Kenneth loves <a href="https://twitter.com/whit537/status/317753680663298049">this tweet</a> from Chad on <a href="http://twitter.com/whit537">Twitter</a></li>
</ul>
<p>The post <a href="http://thechangelog.com/087/">Episode 0.8.7 &#8211; Sustaining open source and building an open company with Chad Whitacre</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=WtRepZuxHVc:U01APYrP7cY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=WtRepZuxHVc:U01APYrP7cY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=WtRepZuxHVc:U01APYrP7cY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=WtRepZuxHVc:U01APYrP7cY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=WtRepZuxHVc:U01APYrP7cY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=WtRepZuxHVc:U01APYrP7cY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=WtRepZuxHVc:U01APYrP7cY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/WtRepZuxHVc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/087/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>

		<media:content url="http://feedproxy.google.com/~r/thechangelog/~5/_2IdAPREses/91605-episode-0-8-7-sustaining-open-source-and-building-an-open-company-with-chad-whitacre.mp3" fileSize="38353024" type="audio/mpeg" /><feedburner:origLink>http://thechangelog.com/087/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=087</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/thechangelog/~5/_2IdAPREses/91605-episode-0-8-7-sustaining-open-source-and-building-an-open-company-with-chad-whitacre.mp3" length="38353024" type="audio/mpeg" /><feedburner:origEnclosureLink>http://changelogshow.com/105/91605-episode-0-8-7-sustaining-open-source-and-building-an-open-company-with-chad-whitacre.mp3</feedburner:origEnclosureLink></item>
		<item>
		<title>CSS Zen Garden turns 10 and the source is now open on GitHub</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/bOK_g3ebFT8/</link>
		<comments>http://thechangelog.com/css-zen-garden-is-ten/#comments</comments>
		<pubDate>Wed, 08 May 2013 20:39:57 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4751</guid>
		<description><![CDATA[<p>If you started a project like CSS Zen Garden today, it would be natural to put the source code on GitHub and ask for contributions via pull request. However, CSS Zen Garden just turned 10, so its life spans beyond that of Git and GitHub for that matter. So, needless to say, it&#8217;s a big [...]</p><p>The post <a href="http://thechangelog.com/css-zen-garden-is-ten/">CSS Zen Garden turns 10 and the source is now open on GitHub</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you started a project like CSS Zen Garden today, it would be natural to put the source code on GitHub and ask for contributions via pull request. However, <a href="http://mezzoblue.com/archives/2013/05/07/10_years/">CSS Zen Garden just turned 10</a>, so its life spans beyond that of Git and GitHub for that matter.</p>

<p>So, needless to say, <em>it&#8217;s a big deal for <a href="https://github.com/mezzoblue">Dave Shea</a> to move the codebase to GitHub</em> and follow suit with what we now think is a norm, which is open projects and social coding.</p>

<p><img src="http://thechangelog.com/wp-content/uploads/css-zen-ten.png" alt="CSS Zen Garden is 10 years old" title="CSS Zen Garden is 10 years old" /></p>

<p>If you&#8217;d like to add a modern CSS Zen Garden design to the mix, <em>fork, branch and submit a pull request!</em> If you&#8217;re new to Git and GitHub, and you&#8217;re not sure what to do &#8211; either <a href="http://try.github.io/levels/1/challenges/1">learn git</a> (do this!) or use the traditional submission form at <a href="http://www.mezzoblue.com/zengarden/submit/">mezzoblue.com/zengarden/submit</a>.</p>

<p>Sadly my submission from WAY BACK IN THE DAY was never added as an official design, but <a href="http://csszengarden.com/?cssfile=http://www.adamstac.com/zengarden/style.css">can be seen (un-styled) here</a>. I still have the CSS for that so maybe one day I can work it out with Dave to update the CSS src URL for my submission.</p>

<p>Check out <a href="https://github.com/mezzoblue/csszengarden.com">the source and fork it</a> on GitHub. Or head to <a href="http://www.csszengarden.com/">csszengarden.com</a> to see the original design and learn more.</p>
<p>The post <a href="http://thechangelog.com/css-zen-garden-is-ten/">CSS Zen Garden turns 10 and the source is now open on GitHub</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=bOK_g3ebFT8:e_gqMZE3OFc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=bOK_g3ebFT8:e_gqMZE3OFc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=bOK_g3ebFT8:e_gqMZE3OFc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=bOK_g3ebFT8:e_gqMZE3OFc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=bOK_g3ebFT8:e_gqMZE3OFc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=bOK_g3ebFT8:e_gqMZE3OFc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=bOK_g3ebFT8:e_gqMZE3OFc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/bOK_g3ebFT8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/css-zen-garden-is-ten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/css-zen-garden-is-ten/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=css-zen-garden-is-ten</feedburner:origLink></item>
		<item>
		<title>Gitcrypt, transparent Git encryption</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/HMZbZ10t29s/</link>
		<comments>http://thechangelog.com/gitcrypt-transparent-git-encryption/#comments</comments>
		<pubDate>Tue, 07 May 2013 15:02:49 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4745</guid>
		<description><![CDATA[<p>Are you paranoid and want to protect your codes at all times? Gitcrypt is inspired by this document written by Ning Shang, which was in turn inspired by this post. Without these two documents, by people much smarter than me, git-encrypt would not exist. There is some controversy over using this technique, so do your [...]</p><p>The post <a href="http://thechangelog.com/gitcrypt-transparent-git-encryption/">Gitcrypt, transparent Git encryption</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Are you paranoid and want to protect your codes at all times?</p>

<blockquote>
  <p>Gitcrypt is inspired by <a href="http://syncom.appspot.com/papers/git_encryption.txt" title="GIT transparent encryption">this document</a> written by <a href="http://syncom.appspot.com/">Ning Shang</a>, which was in turn inspired by <a href="http://git.661346.n2.nabble.com/Transparently-encrypt-repository-contents-with-GPG-td2470145.html" title="Web discussion: Transparently encrypt repository contents with GPG">this post</a>. Without these two documents, by people much smarter than me, git-encrypt would not exist.</p>
</blockquote>

<p>There is <a href="http://article.gmane.org/gmane.comp.version-control.git/113221" title="Junio Hamano does not recommend this technique">some controversy</a> over using this technique, so do your research and understand the implications of using this tool before you go crazy with it.</p>

<p>Check out <a href="https://github.com/shadowhand/git-encrypt">the project on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/gitcrypt-transparent-git-encryption/">Gitcrypt, transparent Git encryption</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=HMZbZ10t29s:B4-eDKh-xpc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=HMZbZ10t29s:B4-eDKh-xpc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=HMZbZ10t29s:B4-eDKh-xpc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=HMZbZ10t29s:B4-eDKh-xpc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=HMZbZ10t29s:B4-eDKh-xpc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=HMZbZ10t29s:B4-eDKh-xpc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=HMZbZ10t29s:B4-eDKh-xpc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/HMZbZ10t29s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/gitcrypt-transparent-git-encryption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/gitcrypt-transparent-git-encryption/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gitcrypt-transparent-git-encryption</feedburner:origLink></item>
		<item>
		<title>The Accessibility Project, a community-driven effort to make web accessibility easier</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/nHU-rzsxSwc/</link>
		<comments>http://thechangelog.com/the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier/#comments</comments>
		<pubDate>Tue, 07 May 2013 06:55:14 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[accessibility]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4654</guid>
		<description><![CDATA[<p>The Accessibility Project from Dave Rupert (and many others) makes it easier to digest and share tips and tricks on web accessibility. For many web developers, accessibility is complex and somewhat difficult. The Accessibility Project understands that and we want to help to make web accessibility easier for front end developers to implement. Dive into [...]</p><p>The post <a href="http://thechangelog.com/the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier/">The Accessibility Project, a community-driven effort to make web accessibility easier</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The Accessibility Project from <a href="https://github.com/davatron5000">Dave Rupert</a> (and <a href="https://github.com/a11yproject/a11yproject.com/contributors">many others</a>) makes it easier to digest and share tips and tricks on web accessibility.</p>

<blockquote>
  <p>For many web developers, accessibility is complex and somewhat difficult. The Accessibility Project understands that and we want to help to make web accessibility easier for front end developers to implement.</p>
</blockquote>

<p>Dive into the <a href="http://a11yproject.com/archives.html">archives</a>, <a href="http://a11yproject.com/checklist.html">web accessibility checklist</a> and <a href="http://a11yproject.com/resources.html">resources</a> to get up to speed on how to implement best practices for web accessibility in your project.</p>

<p>If you&#8217;ve got something you&#8217;d like to share, <a href="https://github.com/a11yproject/a11yproject.com">fork the project</a>! The site is built with <a href="https://github.com/mojombo/jekyll">Jekyll</a> &amp; <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> collaboratively on <a href="https://github.com/a11yproject/a11yproject.com/">Github</a>.</p>
<p>The post <a href="http://thechangelog.com/the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier/">The Accessibility Project, a community-driven effort to make web accessibility easier</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=nHU-rzsxSwc:48eUVq1u6_E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nHU-rzsxSwc:48eUVq1u6_E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nHU-rzsxSwc:48eUVq1u6_E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=nHU-rzsxSwc:48eUVq1u6_E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nHU-rzsxSwc:48eUVq1u6_E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nHU-rzsxSwc:48eUVq1u6_E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=nHU-rzsxSwc:48eUVq1u6_E:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/nHU-rzsxSwc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-accessibility-project-a-community-driven-effort-to-make-web-accessibility-easier</feedburner:origLink></item>
		<item>
		<title>An implementation of Facebook’s ChatHeads on iOS</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/W07iCstU2h4/</link>
		<comments>http://thechangelog.com/facebook-chatheads-on-ios/#comments</comments>
		<pubDate>Tue, 07 May 2013 06:35:07 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Chat Heads]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4729</guid>
		<description><![CDATA[<p>If you&#8217;re a fan of Facebook 6.0 with Chat Heads you&#8217;re gonna love this. This project is an attempt to re-implement this feature and to figure out how the animations are done. I don&#8217;t support this project in a way to completely implement all features of ChatHeads. It should only illustrate how parts of ChatHeads [...]</p><p>The post <a href="http://thechangelog.com/facebook-chatheads-on-ios/">An implementation of Facebook&#8217;s ChatHeads on iOS</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re a fan of <a href="http://www.theverge.com/2013/4/16/4230274/facebook-6-0-for-ipad-and-iphone-hands-on-with-chat-heads-stickers">Facebook 6.0 with Chat Heads</a> you&#8217;re gonna love this.</p>

<blockquote>
  <p>This project is an attempt to re-implement this feature and to figure out how the animations are done. I don&#8217;t support this project in a way to completely implement all features of ChatHeads. It should only illustrate how parts of ChatHeads are done.</p>
</blockquote>

<p>Yours truly even has <a href="https://github.com/brutella/chatheads/commit/1ab9c9727b1e10e5366821278ff60869c4d9238e">a commit</a>. Sure, it&#8217;s just a spelling change, but <a href="http://thechangelog.com/you-yes-you-should-contribute-to-open-source/">that&#8217;s all it takes</a>.</p>

<p>Check out <a href="https://github.com/brutella/chatheads">the source on GitHub</a>.</p>

<p>ht/ <a href="https://twitter.com/soffes/status/331245396645007361">@Soffes</a></p>
<p>The post <a href="http://thechangelog.com/facebook-chatheads-on-ios/">An implementation of Facebook&#8217;s ChatHeads on iOS</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=W07iCstU2h4:THuQDaRNr44:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=W07iCstU2h4:THuQDaRNr44:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=W07iCstU2h4:THuQDaRNr44:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=W07iCstU2h4:THuQDaRNr44:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=W07iCstU2h4:THuQDaRNr44:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=W07iCstU2h4:THuQDaRNr44:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=W07iCstU2h4:THuQDaRNr44:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/W07iCstU2h4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/facebook-chatheads-on-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/facebook-chatheads-on-ios/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=facebook-chatheads-on-ios</feedburner:origLink></item>
		<item>
		<title>Stringer: a self-hosted, anti-social RSS reader</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/DD1QRJtHu6c/</link>
		<comments>http://thechangelog.com/stringer-a-self-hosted-anti-social-rss-reader/#comments</comments>
		<pubDate>Mon, 06 May 2013 13:40:32 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sinatra]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4719</guid>
		<description><![CDATA[<p>With July 1st&#8217;s closing of Google Reader looming ever closer, the open source community has risen to the challenge of providing viable alternatives to the popular feed reading service. Stringer is Matt Swanson&#8217;s entry into the RSS ecosystem. Matt describes Stringer like so: Stringer has no external dependencies, no social recommendations/sharing, and no fancy machine [...]</p><p>The post <a href="http://thechangelog.com/stringer-a-self-hosted-anti-social-rss-reader/">Stringer: a self-hosted, anti-social RSS reader</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>With July 1st&#8217;s <a href="http://googlereader.blogspot.com/2013/03/powering-down-google-reader.html">closing of Google Reader</a> looming ever closer, the open source community has risen to the challenge of providing viable alternatives to the popular feed reading service.</p>

<p><a href="https://github.com/swanson/stringer">Stringer</a> is <a href="http://twitter.com/_swanson">Matt Swanson&#8217;s</a> entry into the RSS ecosystem. Matt describes Stringer like so:</p>

<blockquote>
  <p>Stringer has no external dependencies, no social recommendations/sharing, and no fancy machine learning algorithms. But it does have keyboard shortcuts and was made with love! When BIG_FREE_READER shuts down, your instance of Stringer will still be kicking.</p>
</blockquote>

<p>Here&#8217;s a screenshot of it in action. (Bonus points for featuring a Changelog post!)</p>

<p><a href="https://github.com/swanson/stringer"><img src="http://thechangelog.com/wp-content/uploads/stringer-stories.png" alt="" /></a></p>

<p>Stringer is written in Ruby and built on Sinatra with a PostgreSQL datastore. It deploys easily to <a href="http://heroku.com">Heroku</a> and is a self-professed <em>work-in-progress</em>. One thing the web app currently <a href="https://github.com/swanson/stringer/issues/7">lacks</a> is a solid mobile offering, so please get involved if you have mobile ideas and/or chops!</p>

<p>The project is <a href="https://github.com/swanson/stringer/blob/master/LICENSE">MIT licensed</a> and hosted <a href="https://github.com/swanson/stringer">on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/stringer-a-self-hosted-anti-social-rss-reader/">Stringer: a self-hosted, anti-social RSS reader</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=DD1QRJtHu6c:k_Z9dC8V2uY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=DD1QRJtHu6c:k_Z9dC8V2uY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=DD1QRJtHu6c:k_Z9dC8V2uY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=DD1QRJtHu6c:k_Z9dC8V2uY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=DD1QRJtHu6c:k_Z9dC8V2uY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=DD1QRJtHu6c:k_Z9dC8V2uY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=DD1QRJtHu6c:k_Z9dC8V2uY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/DD1QRJtHu6c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/stringer-a-self-hosted-anti-social-rss-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/stringer-a-self-hosted-anti-social-rss-reader/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=stringer-a-self-hosted-anti-social-rss-reader</feedburner:origLink></item>
		<item>
		<title>Run Ruby in the browser with Decaf, a fork of WebKit.</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/j3A1S_gjLSc/</link>
		<comments>http://thechangelog.com/run-ruby-in-the-browser-with-decaf-a-fork-of-webkit/#comments</comments>
		<pubDate>Sun, 05 May 2013 19:37:53 +0000</pubDate>
		<dc:creator>Andrew Thorp</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4714</guid>
		<description><![CDATA[<p>Decaf, from Tim Mahoney is a fork of WebKit that allows you to run Ruby in the browser. A simple example from the README: &#60;script type='text/ruby'&#62; window.onload do introduction = document.create_element('p') introduction.inner_text = 'Hello, world!' document.body.append_child(introduction) end &#60;/script&#62; It only works on the Mac right now, and there are a few other gotcha&#8217;s to keep [...]</p><p>The post <a href="http://thechangelog.com/run-ruby-in-the-browser-with-decaf-a-fork-of-webkit/">Run Ruby in the browser with Decaf, a fork of WebKit.</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Decaf, from <a href="https://twitter.com/timimahoney">Tim Mahoney</a> is a fork of <a href="https://github.com/WebKit/webkit">WebKit</a> that allows you to run Ruby in the browser. A simple example from the <a href="https://github.com/timahoney/decaf/blob/decaf/README.md#decaf">README</a>:</p>

<pre><code>&lt;script type='text/ruby'&gt;
  window.onload do
    introduction = document.create_element('p')
    introduction.inner_text = 'Hello, world!'
    document.body.append_child(introduction)
  end
&lt;/script&gt;
</code></pre>

<p>It only works on the Mac right now, and there are a <a href="https://github.com/timahoney/decaf/blob/decaf/README.md#differences-from-javascript">few other gotcha&#8217;s</a> to keep in mind:</p>

<ul>
<li>In Ruby, methods and attributes are specified in <code>underscore_case</code> instead of <code>camelCase</code>.</li>
<li>The <code>window</code> variable is accessible from only the top-most scope. Elsewhere you can use the global <code>$window</code>.</li>
<li>Ruby accepts <code>Procs</code> and <code>blocks</code> as callbacks and listeners. <a href="https://github.com/timahoney/decaf/blob/decaf/README.md#differences-from-javascript">View an example</a>.</li>
</ul>

<p>You can go to the <a href="http://trydecaf.org">project homepage</a>, get the <a href="http://trydecaf.org/latest">latest release</a> or <a href="https://github.com/timahoney/decaf">view the source</a> on GitHub.</p>
<p>The post <a href="http://thechangelog.com/run-ruby-in-the-browser-with-decaf-a-fork-of-webkit/">Run Ruby in the browser with Decaf, a fork of WebKit.</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=j3A1S_gjLSc:iypuxhfdf7Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=j3A1S_gjLSc:iypuxhfdf7Q:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=j3A1S_gjLSc:iypuxhfdf7Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=j3A1S_gjLSc:iypuxhfdf7Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=j3A1S_gjLSc:iypuxhfdf7Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=j3A1S_gjLSc:iypuxhfdf7Q:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=j3A1S_gjLSc:iypuxhfdf7Q:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/j3A1S_gjLSc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/run-ruby-in-the-browser-with-decaf-a-fork-of-webkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/run-ruby-in-the-browser-with-decaf-a-fork-of-webkit/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=run-ruby-in-the-browser-with-decaf-a-fork-of-webkit</feedburner:origLink></item>
		<item>
		<title>Xray-rails reveals which files are being rendered in your view</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/RZmoHLemJIg/</link>
		<comments>http://thechangelog.com/xray-rails-reveals-which-files-are-being-rendered-in-your-view/#comments</comments>
		<pubDate>Fri, 03 May 2013 21:51:11 +0000</pubDate>
		<dc:creator>Beverly Nelson</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyGems]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4693</guid>
		<description><![CDATA[<p>When I pair with Railsbridge attendees or new developers, I often wish I had a visual way to let them see the connection between the files in the codebase and what&#8217;s rendered in the browser. Today Ruby 5 featured Xray and a number of friends contacted me about checking it out. In no time I [...]</p><p>The post <a href="http://thechangelog.com/xray-rails-reveals-which-files-are-being-rendered-in-your-view/">Xray-rails reveals which files are being rendered in your view</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>When I pair with <a href="http://workshops.railsbridge.org/">Railsbridge</a> attendees or new developers, I often wish I had a visual way to let them see the connection between the files in the codebase and what&#8217;s rendered in the browser.  Today <a href="http://ruby5.envylabs.com/episodes/370-episode-366-may-3rd-2013">Ruby 5</a> featured <a href="https://github.com/brentd/xray-rails">Xray</a> and a number of friends contacted me about checking it out.  In no time I knew I&#8217;d found the solution.</p>

<p>I gave it a test drive on one of the student apps and it took 5 minutes, at most, to get up and running.</p>

<p>Just drop this in your <code>Gemfile</code>:</p>

<pre><code>group :development do
  gem 'xray-rails'
end
</code></pre>

<p>Bundle and delete the cached assets:</p>

<pre><code class="no-highlight">$ bundle &#038;&#038; rm -rf tmp/cache/assets</code></pre>

<p>Restart your app, visit it in your browser, and press <code>cmd+shift+x</code></p>

<p><img src="http://thechangelog.com/wp-content/uploads/xray-rails-example.png" alt="xray-rails" title="Xray overlay" /></p>

<p>By far the best feature in Xray is the fact that it allows you to actually click on the overlay and go straight to the file or partial being rendered.  It defaults to <a href="http://www.sublimetext.com/">Sublime</a>, which is easy for new users, but is simple enough to customize to another tool for seasoned pros.</p>

<p><a href="https://github.com/brentd/xray-rails">Xray</a> is great for:</p>

<ul>
<li>Helping new Rails developers while pairing to get clearer understanding of views</li>
<li>Gaining quick insight into complex views</li>
<li>Debugging templates, partials, and backbone views</li>
</ul>

<p><a href="http://f.cl.ly/items/1A0o3y1y3Q13103V3F1l/xray-rails-large.gif">See Xray in action</a></p>

<p>Right now Xray is a tool for the Rails framework but there are plans to expand and make it available for any framework. You can check it out on <a href="https://github.com/brentd/xray-rails">Github</a>.</p>
<p>The post <a href="http://thechangelog.com/xray-rails-reveals-which-files-are-being-rendered-in-your-view/">Xray-rails reveals which files are being rendered in your view</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=RZmoHLemJIg:UgNC9jK4I-A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=RZmoHLemJIg:UgNC9jK4I-A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=RZmoHLemJIg:UgNC9jK4I-A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=RZmoHLemJIg:UgNC9jK4I-A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=RZmoHLemJIg:UgNC9jK4I-A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=RZmoHLemJIg:UgNC9jK4I-A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=RZmoHLemJIg:UgNC9jK4I-A:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/RZmoHLemJIg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/xray-rails-reveals-which-files-are-being-rendered-in-your-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/xray-rails-reveals-which-files-are-being-rendered-in-your-view/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=xray-rails-reveals-which-files-are-being-rendered-in-your-view</feedburner:origLink></item>
		<item>
		<title>Episode 0.8.6 – Discourse, Ruby and more with Jeff Atwood (aka Coding Horror)</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/QsbMUIow3n4/</link>
		<comments>http://thechangelog.com/086/#comments</comments>
		<pubDate>Fri, 03 May 2013 15:10:16 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Discourse]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4683</guid>
		<description><![CDATA[<p>Adam Stacoviak, Andrew Thorp and Kenneth Reitz talk with Jeff Atwood about Discourse and more. Tune in LIVE every Tuesday at 3pm PT / 6pm ET. We&#8217;re live every Tuesday! thechangelog.com/live Hack in style with your very own Changelog tee! We are now member supported! We&#8217;re joined by Jeff Atwood, from codinghorror.com and stackexchange.com Stack [...]</p><p>The post <a href="http://thechangelog.com/086/">Episode 0.8.6 &#8211; Discourse, Ruby and more with Jeff Atwood (aka Coding Horror)</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam Stacoviak, Andrew Thorp and Kenneth Reitz talk with Jeff Atwood about Discourse and more.</p>

<p><em><a href="/live/">Tune in LIVE every Tuesday at 3pm PT / 6pm ET</a>.</em></p>

<audio src="http://changelogshow.com/105/90496-episode-0-8-6-discourse-ruby-and-more-with-jeff-atwood-aka-coding-horror.mp3" controls="controls" preload="none"></audio>

<ul>
<li>We&#8217;re live every Tuesday! <a href="http://thechangelog.com/live">thechangelog.com/live</a></li>
<li><a href="https://thechangelog.com/store">Hack in style with your very own Changelog tee!</a></li>
<li>We are now <a href="https://thechangelog.com/membership">member supported!</a></li>
<li>We&#8217;re joined by Jeff Atwood, from <a href="http://codinghorror.com">codinghorror.com</a> and <a href="http://stackexchange.com">stackexchange.com</a></li>
<li><a href="http://stackoverflow.com">Stack Overflow</a> is a community Q&amp;A platform.</li>
<li><a href="http://discourse.org">Discourse</a> is an open source discussion platform.</li>
<li><a href="http://wordpress.org">WordPress</a> is an open source CMS in PHP.</li>
<li><a href="http://gitorious.org/shapado">Shapado</a> is a Q&amp;A platform in ruby.</li>
<li><a href="http://www.osqa.net/">OSQA</a> is an open source Q&amp;A system.</li>
<li><a href="http://reddit.com">Reddit</a> is an online community where users vote on content.</li>
<li><a href="https://sites.google.com/site/steveyegge2/tour-de-babel">Steve Yegge&#8217;s tour de babel</a> is a language roundup from 2006.</li>
<li><a href="http://www.codinghorror.com/blog/2013/03/why-ruby.html">Why Ruby?</a> is a blog post by Jeff about why he did Discourse in ruby.</li>
<li><a href="http://www.mono-project.com/Main_Page">mono</a> is an open source .NET development framework.</li>
<li><a href="http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/">Discourse as Your First Rails App</a> is a blog post about setting up the Discourse development environment.</li>
<li><a href="http://emberjs.com/">ember</a> is a JavaScript framework for ambitious web applications.</li>
</ul>
<p>The post <a href="http://thechangelog.com/086/">Episode 0.8.6 &#8211; Discourse, Ruby and more with Jeff Atwood (aka Coding Horror)</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=QsbMUIow3n4:awFWwHyK5Vg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=QsbMUIow3n4:awFWwHyK5Vg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=QsbMUIow3n4:awFWwHyK5Vg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=QsbMUIow3n4:awFWwHyK5Vg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=QsbMUIow3n4:awFWwHyK5Vg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=QsbMUIow3n4:awFWwHyK5Vg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=QsbMUIow3n4:awFWwHyK5Vg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/QsbMUIow3n4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/086/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>

		<media:content url="http://feedproxy.google.com/~r/thechangelog/~5/bkL8tQI5GxU/90496-episode-0-8-6-discourse-ruby-and-more-with-jeff-atwood-aka-coding-horror.mp3" fileSize="37496960" type="audio/mpeg" /><feedburner:origLink>http://thechangelog.com/086/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=086</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/thechangelog/~5/bkL8tQI5GxU/90496-episode-0-8-6-discourse-ruby-and-more-with-jeff-atwood-aka-coding-horror.mp3" length="37496960" type="audio/mpeg" /><feedburner:origEnclosureLink>http://changelogshow.com/105/90496-episode-0-8-6-discourse-ruby-and-more-with-jeff-atwood-aka-coding-horror.mp3</feedburner:origEnclosureLink></item>
		<item>
		<title>Just make the Intern do the (JavaScript) testing</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/vk_i_rss9fE/</link>
		<comments>http://thechangelog.com/just-make-the-intern-do-the-javascript-testing/#comments</comments>
		<pubDate>Wed, 01 May 2013 21:00:37 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[ci]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[spec]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4676</guid>
		<description><![CDATA[<p>SitePen has open sourced an exciting (can you get excited about testing? Yes, yes you can!) new JavaScript testing framework called Intern. What makes this testing framework stand out from the rest? Look no further than the README&#8217;s comparison matrix to find out. Want to get started with Intern? There&#8217;s also a community-driven examples repo [...]</p><p>The post <a href="http://thechangelog.com/just-make-the-intern-do-the-javascript-testing/">Just make the Intern do the (JavaScript) testing</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.sitepen.com/">SitePen</a> has open sourced an exciting (can you get excited about testing? Yes, yes you can!) new JavaScript testing framework called <a href="http://theintern.io/">Intern</a>.</p>

<p>What makes <em>this</em> testing framework stand out from the rest? Look no further than the README&#8217;s <a href="https://github.com/theintern/intern#comparison">comparison matrix</a> to find out.</p>

<p>Want to get started with Intern? There&#8217;s also a community-driven <a href="https://github.com/theintern/intern-examples">examples repo</a> to show you the ropes!</p>

<p>Intern is <a href="https://github.com/theintern/intern#license">BSD licensed</a> and hosted <a href="https://github.com/theintern/intern#license">on GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/just-make-the-intern-do-the-javascript-testing/">Just make the Intern do the (JavaScript) testing</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=vk_i_rss9fE:3xir4kmW-nw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vk_i_rss9fE:3xir4kmW-nw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vk_i_rss9fE:3xir4kmW-nw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=vk_i_rss9fE:3xir4kmW-nw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vk_i_rss9fE:3xir4kmW-nw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vk_i_rss9fE:3xir4kmW-nw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=vk_i_rss9fE:3xir4kmW-nw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/vk_i_rss9fE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/just-make-the-intern-do-the-javascript-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/just-make-the-intern-do-the-javascript-testing/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=just-make-the-intern-do-the-javascript-testing</feedburner:origLink></item>
		<item>
		<title>A guide to setting up Sublime Text 2 from Drew Barontini</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/XfdGW8mufBA/</link>
		<comments>http://thechangelog.com/a-guide-to-setting-up-sublime-text-2/#comments</comments>
		<pubDate>Wed, 01 May 2013 15:53:05 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Sublime Text]]></category>
		<category><![CDATA[text-editor]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4660</guid>
		<description><![CDATA[<p>If you use Sublime Text 2, you need to check out Drew Barontini&#8217;s guide on how he uses it. Lots of open source goodness in that post. From the guide: The usefuless of this setup guide will vary based on your personal preferences for how your text editor should function, but it should help with [...]</p><p>The post <a href="http://thechangelog.com/a-guide-to-setting-up-sublime-text-2/">A guide to setting up Sublime Text 2 from Drew Barontini</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you use Sublime Text 2, you need to check out <a href="http://drewbarontini.com/">Drew Barontini&#8217;s</a> <a href="http://drewbarontini.com/setup/sublime-text">guide</a> on how he uses it. Lots of open source goodness in that post.</p>

<p>From <a href="http://drewbarontini.com/setup/sublime-text">the guide</a>:</p>

<blockquote>
  <p>The usefuless of this setup guide will vary based on your personal preferences for how your text editor should function, but it should help with the initial setup of Sublime Text.</p>
</blockquote>

<hr />

<p>If Drew were on <a href="https://www.gittip.com/">Gittip</a> you could <a href="https://www.gittip.com/on/github/drewbarontini/">give him a gift</a>.</p>
<p>The post <a href="http://thechangelog.com/a-guide-to-setting-up-sublime-text-2/">A guide to setting up Sublime Text 2 from Drew Barontini</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=XfdGW8mufBA:za2lP3iAAxo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=XfdGW8mufBA:za2lP3iAAxo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=XfdGW8mufBA:za2lP3iAAxo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=XfdGW8mufBA:za2lP3iAAxo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=XfdGW8mufBA:za2lP3iAAxo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=XfdGW8mufBA:za2lP3iAAxo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=XfdGW8mufBA:za2lP3iAAxo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/XfdGW8mufBA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/a-guide-to-setting-up-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/a-guide-to-setting-up-sublime-text-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-guide-to-setting-up-sublime-text-2</feedburner:origLink></item>
		<item>
		<title>Episode 0.8.5 – We’re back and we’re LIVE!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/tFdm7emntTE/</link>
		<comments>http://thechangelog.com/085/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 21:05:44 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Discourse]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Gittip]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rust]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4637</guid>
		<description><![CDATA[<p>Adam Stacoviak, Andrew Thorp, Steve Klabnik, Kenneth Reitz and Jerod Santo take the show live for the first time since August 8th, 2012. Tune in LIVE every Tuesday at 3pm PT / 6pm ET. We&#8217;re live every Tuesday! thechangelog.com/live Hack in style with your very own Changelog tee! We are now member supported! Groovy on [...]</p><p>The post <a href="http://thechangelog.com/085/">Episode 0.8.5 &#8211; We&#8217;re back and we&#8217;re LIVE!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adam Stacoviak, Andrew Thorp, Steve Klabnik, Kenneth Reitz and Jerod Santo take the show live for the first time <a href="http://thechangelog.com/episode-0-8-4-news-roundup/">since August 8th, 2012</a>.</p>

<p><em><a href="/live/">Tune in LIVE every Tuesday at 3pm PT / 6pm ET</a>.</em></p>

<audio src="http://changelogshow.com/105/88486-episode-0-8-5-we-re-back-and-we-re-live.mp3" controls="controls" preload="none"></audio>

<ul>
<li>We&#8217;re live every Tuesday! <a href="http://thechangelog.com/live">thechangelog.com/live</a></li>
<li><a href="https://thechangelog.com/store">Hack in style with your very own Changelog tee!</a></li>
<li>We are now <a href="https://thechangelog.com/membership">member supported!</a></li>
<li><a href="http://grails.org">Groovy on Grails</a> is a Groovy Open Source web app framework for the JVM.</li>
<li><a href="https://github.com/mozilla/rust">Rust</a> is a new open source language from Mozilla.</li>
<li><a href="http://www.pairprogramwith.me/">pairprogramwith.me</a> encourages diverse pair-programming.</li>
<li><a href="https://www.gittip.com">gittip</a> is a way to give small weekly cash gifts to people you love and are inspired by.</li>
<li><a href="http://python-requests.org">requests</a> is HTTP for Humans in python.</li>
<li><a href="http://thechangelog.com/postgres-preps-for-a-big-security-release/">Postgres</a> had a big security release not too long ago.</li>
<li><a href="https://github.com/mozilla/servo">Servo</a> is a browser rendering engine written in Rust.</li>
<li><a href="http://www.rustforrubyists.com/">Rust for Rubyists</a> is a great book about Rust, by Steve Klabnik.</li>
<li><a href="http://python-guide.org">The Hitchhiker&#8217;s Guide to Python!</a> aims to be a guide for learning Python, by Kenneth Reitz.</li>
<li><a href="http://thechangelog.com/get-git-all-up-in-your-gutter-with-git-gutter/">Git Gutter</a> keeps your editor up to date with Git.</li>
<li><a href="http://premailer.dialect.ca/">Premailer</a> is Pre-flight for HTML email in Ruby.</li>
<li><a href="https://github.com/dotcloud/docker">docker</a> is the Linux container runtime.</li>
<li><a href="https://juju.ubuntu.com/">juju</a> helps you build entire environments in the cloud.</li>
<li><a href="http://www.discourse.org">discourse</a> is a new Open Source discussion platform from Jeff Atwood.</li>
<li><a href="https://github.com/kennethreitz/blackbox">blackbox</a> is a tool to help archive the internet.</li>
<li><a href="https://groups.google.com/forum/#!forum/philosophy-in-a-time-of-software">Philosophy in a time of software</a> is a Google Group about Philosophy/Software.</li>
</ul>
<p>The post <a href="http://thechangelog.com/085/">Episode 0.8.5 &#8211; We&#8217;re back and we&#8217;re LIVE!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=tFdm7emntTE:ieCxJvRlYQE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=tFdm7emntTE:ieCxJvRlYQE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=tFdm7emntTE:ieCxJvRlYQE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=tFdm7emntTE:ieCxJvRlYQE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=tFdm7emntTE:ieCxJvRlYQE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=tFdm7emntTE:ieCxJvRlYQE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=tFdm7emntTE:ieCxJvRlYQE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/tFdm7emntTE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/085/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>

		<media:content url="http://feedproxy.google.com/~r/thechangelog/~5/KE5aYmGkgRs/88486-episode-0-8-5-we-re-back-and-we-re-live.mp3" fileSize="33736832" type="audio/mpeg" /><feedburner:origLink>http://thechangelog.com/085/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=085</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/thechangelog/~5/KE5aYmGkgRs/88486-episode-0-8-5-we-re-back-and-we-re-live.mp3" length="33736832" type="audio/mpeg" /><feedburner:origEnclosureLink>http://changelogshow.com/105/88486-episode-0-8-5-we-re-back-and-we-re-live.mp3</feedburner:origEnclosureLink></item>
		<item>
		<title>Ack hits 2.0, moves beyond Grep</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/SFmzytfGiRU/</link>
		<comments>http://thechangelog.com/ack-hits-2-0-moves-beyond-grep/#comments</comments>
		<pubDate>Sun, 21 Apr 2013 20:36:17 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4608</guid>
		<description><![CDATA[<p>The much beloved ack &#8212; a text search tool akin to grep, but tuned specifically for searching code &#8212; reached the 2.0 milestone this week. The new release brings with it a bevy of changes, most notably a more liberal default search algorithm and the ability to load multiple ackrc files. Ack has historically made [...]</p><p>The post <a href="http://thechangelog.com/ack-hits-2-0-moves-beyond-grep/">Ack hits 2.0, moves beyond Grep</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The much beloved <a href="http://beyondgrep.com/">ack</a> &mdash; a text search tool akin to grep, but tuned specifically for searching code &mdash; reached the 2.0 milestone this week. The new release brings with it a <a href="http://beyondgrep.com/ack-2.0/">bevy of changes</a>, most notably a more liberal default search algorithm and the ability to load multiple ackrc files.</p>

<p>Ack has historically made its value proposition by being &#8220;better than grep&#8221;, but that has also changed with the new release. <a href="http://petdance.com/">Andy Lester</a> (ack&#8217;s author) replied to <a href="https://news.ycombinator.com/item?id=5578097">a comment</a> on Hacker News asking how ack 2.0&#8242;s speed compares to the recently released (<a href="http://thechangelog.com/searching-improved-with-the-silver-searcher/">and changelog&#8217;d</a>) Silver Searcher tool by <a href="https://news.ycombinator.com/item?id=5578304">saying</a>:</p>

<blockquote>
  <p>It&#8217;s OK to have two similar tools in your toolbox. When you need the &#8211;output option, for example, you use ack. When you want crazy speed, you use ag. You don&#8217;t have to choose one over the other. That&#8217;s why I changed the name from &#8220;betterthangrep.com&#8221; to &#8220;beyondgrep.com&#8221;. There&#8217;s no need to have a ranking of &#8220;I use this over that.&#8221;</p>
</blockquote>

<p>Ack requires Perl 5.8.8+ and that&#8217;s it. There are <a href="http://beyondgrep.com/install/">plenty of ways</a> to install it on different systems and there is even a <a href="http://beyondgrep.com/ack-2.02-single-file">single-file version</a> which can simply be dropped in your PATH and made executable.</p>

<p>Want to get invovled? Ack is developed <a href="https://github.com/petdance/ack">on GitHub</a>!</p>
<p>The post <a href="http://thechangelog.com/ack-hits-2-0-moves-beyond-grep/">Ack hits 2.0, moves beyond Grep</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=SFmzytfGiRU:lxANwafq76g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=SFmzytfGiRU:lxANwafq76g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=SFmzytfGiRU:lxANwafq76g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=SFmzytfGiRU:lxANwafq76g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=SFmzytfGiRU:lxANwafq76g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=SFmzytfGiRU:lxANwafq76g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=SFmzytfGiRU:lxANwafq76g:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/SFmzytfGiRU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/ack-hits-2-0-moves-beyond-grep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/ack-hits-2-0-moves-beyond-grep/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ack-hits-2-0-moves-beyond-grep</feedburner:origLink></item>
		<item>
		<title>Pre-order your Changelog t-shirt today!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Y9gAC6XfmF0/</link>
		<comments>http://thechangelog.com/pre-order-your-changelog-t-shirt-today/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 17:50:53 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Updates]]></category>
		<category><![CDATA[store]]></category>
		<category><![CDATA[tees]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4521</guid>
		<description><![CDATA[<p>If you&#8217;ve been waiting patiently to hack on your favorite open source projects while wearing a Changelog t-shirt, that day has come! We are printing our first batch of tees on a super-comfy black American Apparel tri-blend short sleeve track shirt. This initial batch is open for pre-order now and will begin shipping on May [...]</p><p>The post <a href="http://thechangelog.com/pre-order-your-changelog-t-shirt-today/">Pre-order your Changelog t-shirt today!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;ve been waiting patiently to hack on your favorite open source projects while wearing a Changelog t-shirt, that day has come!</p>

<p><figure class="zoom">
  <img src="http://thechangelog.com/wp-content/uploads/tcl-tri-blend-2013-800x800.jpg" class="big">
  <img src="http://thechangelog.com/wp-content/uploads/tcl-tri-blend-2013.jpg">
</figure></p>

<p>We are printing our first batch of tees on a <em>super-comfy</em> black American Apparel tri-blend short sleeve track shirt. This initial batch is open for pre-order now and will begin shipping on May 17th, 2013.</p>

<p>If you&#8217;re <a href="/membership">a member</a>, <a href="/signin">sign-in</a> and save 20%!</p>

<p><em><a href="/store">Pre-order today!</a></em></p>

<hr />

<p>Special thanks to <a href="http://www.jacklmoore.com/">Jack Moore</a> and <a href="http://www.jacklmoore.com/zoom/">jQuery Zoom</a> for making it too easy to add the &#8220;hover to zoom&#8221; feature.</p>
<p>The post <a href="http://thechangelog.com/pre-order-your-changelog-t-shirt-today/">Pre-order your Changelog t-shirt today!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Y9gAC6XfmF0:0aqq95sBq_k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Y9gAC6XfmF0:0aqq95sBq_k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Y9gAC6XfmF0:0aqq95sBq_k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Y9gAC6XfmF0:0aqq95sBq_k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Y9gAC6XfmF0:0aqq95sBq_k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Y9gAC6XfmF0:0aqq95sBq_k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Y9gAC6XfmF0:0aqq95sBq_k:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Y9gAC6XfmF0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/pre-order-your-changelog-t-shirt-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/pre-order-your-changelog-t-shirt-today/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pre-order-your-changelog-t-shirt-today</feedburner:origLink></item>
		<item>
		<title>shame.css — a best practice for handling CSS hacks</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Fzz-jWli66A/</link>
		<comments>http://thechangelog.com/shame-css/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 15:13:33 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[git-blame]]></category>
		<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4565</guid>
		<description><![CDATA[<p>@tkenny seems you missed his point. He&#8217;s not advocating hacks. @csswizardry is advocating a best practice for handling them.&#8212; Adam Stacoviak (@adamstac) April 18, 2013 Harry Roberts (aka CSS Wizardry) isn&#8217;t advocating writing &#8220;hacky&#8221; CSS, he&#8217;s advocating a best practice for handling them. From his post on the subject: The idea of shame.css is that [...]</p><p>The post <a href="http://thechangelog.com/shame-css/">shame.css &#8212; a best practice for handling CSS hacks</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<blockquote class="twitter-tweet"><p>@<a href="https://twitter.com/tkenny">tkenny</a> seems you missed his point. He&#8217;s not advocating hacks. @<a href="https://twitter.com/csswizardry">csswizardry</a> is advocating a best practice for handling them.</p>&mdash; Adam Stacoviak (@adamstac) <a href="https://twitter.com/adamstac/status/324806542518001664">April 18, 2013</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p><a href="https://twitter.com/csswizardry">Harry Roberts</a> (aka <a href="http://csswizardry.com/">CSS Wizardry</a>) isn&#8217;t advocating writing &#8220;hacky&#8221; CSS, he&#8217;s advocating a best practice for handling them.</p>

<p>From <a href="http://inspectelement.com/snippets/shame-css/">his post</a> on the subject:</p>

<blockquote>
  <p>The idea of shame.css is that you have a totally new stylesheet reserved just for your hacky code. The code you have to write to get the release out on time, but the code that makes you ashamed.</p>
</blockquote>

<p>As Harry mentioned <a href="http://csswizardry.com/2013/04/shame-css/">in his article</a>, putting your CSS hacks and quick-fixes in their own file called <code>shame.css</code> you do a few things:</p>

<ol>
<li>You make them stick out like a sore thumb</li>
<li>You keep your &#8216;main&#8217; codebase clean</li>
<li>You make developers aware that their hacks are made very visible</li>
<li>You make them easier to isolate and fix.</li>
<li><code>$ git blame shame.css</code></li>
</ol>

<p>I don&#8217;t know about you, but Harry had me at <code>git blame</code>.</p>
<p>The post <a href="http://thechangelog.com/shame-css/">shame.css &#8212; a best practice for handling CSS hacks</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Fzz-jWli66A:qLZMr-3XMH4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Fzz-jWli66A:qLZMr-3XMH4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Fzz-jWli66A:qLZMr-3XMH4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Fzz-jWli66A:qLZMr-3XMH4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Fzz-jWli66A:qLZMr-3XMH4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Fzz-jWli66A:qLZMr-3XMH4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Fzz-jWli66A:qLZMr-3XMH4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Fzz-jWli66A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/shame-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/shame-css/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=shame-css</feedburner:origLink></item>
		<item>
		<title>Syntax highlighting now done with highlight.js</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/LWLHqCfD1fw/</link>
		<comments>http://thechangelog.com/syntax-highlighting-now-done-with-highlight-js/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 06:51:32 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Updates]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[syntax highlighting]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4545</guid>
		<description><![CDATA[<p>We shipped an update tonight that replaces the old cargo-culted Prettify syntax highlighter we&#8217;ve been using for years with highlight.js from Ivan Sagalaev &#8212; you can support his open source through Gittip. Highlight.js has numerous themes to choose from (we&#8217;re using Tomorrow Night) and is a cinch to integrate. It automatically: finds blocks of code, [...]</p><p>The post <a href="http://thechangelog.com/syntax-highlighting-now-done-with-highlight-js/">Syntax highlighting now done with highlight.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>We shipped an update tonight that replaces the old cargo-culted Prettify syntax highlighter we&#8217;ve been using for years with <a href="http://softwaremaniacs.org/soft/highlight/en/">highlight.js</a> from <a href="https://github.com/isagalaev">Ivan Sagalaev</a> &#8212; you can <a href="https://www.gittip.com/isagalaev/">support his open source through Gittip</a>.</p>

<p>Highlight.js has <a href="http://softwaremaniacs.org/media/soft/highlight/test.html">numerous themes</a> to choose from (we&#8217;re using <a href="http://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night.css">Tomorrow Night</a>) and is a cinch to integrate. It automatically: finds blocks of code, detects the language, and highlights it.</p>

<p>Here are a few samples.</p>

<p>Ruby:</p>

<pre><code># Output "I LOVE RUBY"
say = "I love Ruby"
puts say.upcase
</code></pre>

<p>JavaScript:</p>

<pre><code>function helloWorld () {
  // Log out to console
  console.log("Hello world!");  
}

helloWorld();
</code></pre>

<p>CSS:</p>

<pre><code>.for-1 {
  width: 61px;
}

.for-2 {
  width: 62px;
}

.for-3 {
  width: 63px;
}

.for-4 {
  width: 64px;
}
</code></pre>

<p>No highlight:</p>

<pre><code class="no-highlight">$ gem install rails
$ rails new app
$ cd app
$ subl .</code></pre>

<p>I&#8217;m still holding out for Sass/SCSS support &#8212; there&#8217;s <a href="http://github.com/isagalaev/highlight.js/issues/48">this issue</a>.</p>

<p>Check out <a href="http://github.com/isagalaev/highlight.js">the source</a> on GitHub, <a href="http://softwaremaniacs.org/media/soft/highlight/test.html">the demo</a>, or <a href="http://highlightjs.readthedocs.org/en/latest/">the developer docs</a> if you want to add support for your favorite languages.</p>
<p>The post <a href="http://thechangelog.com/syntax-highlighting-now-done-with-highlight-js/">Syntax highlighting now done with highlight.js</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=LWLHqCfD1fw:7WDDyolbI-c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=LWLHqCfD1fw:7WDDyolbI-c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=LWLHqCfD1fw:7WDDyolbI-c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=LWLHqCfD1fw:7WDDyolbI-c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=LWLHqCfD1fw:7WDDyolbI-c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=LWLHqCfD1fw:7WDDyolbI-c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=LWLHqCfD1fw:7WDDyolbI-c:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/LWLHqCfD1fw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/syntax-highlighting-now-done-with-highlight-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/syntax-highlighting-now-done-with-highlight-js/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=syntax-highlighting-now-done-with-highlight-js</feedburner:origLink></item>
		<item>
		<title>Detect and highlight your heart-rate using just a webcam and this Python app</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/K0HdG9HWRzc/</link>
		<comments>http://thechangelog.com/detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 13:31:20 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[openmdao]]></category>
		<category><![CDATA[openvc]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4481</guid>
		<description><![CDATA[<p>webcam-pulse-detector is a cross-platform Python application that can detect a person&#8217;s heart-rate using their computer&#8217;s webcam. I could write 1,000 words about it, or just show you this: Pretty rad, huh? If you&#8217;re wondering how it all works, you&#8217;re in luck! There is an entire section of the README dedicated to the topic. The app [...]</p><p>The post <a href="http://thechangelog.com/detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application/">Detect and highlight your heart-rate using just a webcam and this Python app</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/thearn/webcam-pulse-detector">webcam-pulse-detector</a> is a cross-platform Python application that can detect a person&#8217;s heart-rate using their computer&#8217;s webcam. I could write 1,000 words about it, or just show you this:</p>

<p><a href="https://github.com/thearn/webcam-pulse-detector"><img src="http://thechangelog.com/wp-content/uploads/webcam-pulse-detector-screenshot.png" alt="webcam-pulse-detector-screenshot" /></a></p>

<p>Pretty rad, huh? If you&#8217;re wondering how it all works, you&#8217;re in luck! There is an entire section of the <a href="https://github.com/thearn/webcam-pulse-detector#how-it-works">README</a> dedicated to the topic.</p>

<p>The app depends on <a href="http://python.org/">Python 2.7+</a>, <a href="http://opencv.org/">OpenCV 2.4+</a>, and <a href="http://openmdao.org/">OpenMDAO 0.5.5+</a>, so it might take some work to get up and running.  From the looks of it, it&#8217;d be totally worth the effort.</p>

<p>View the project on <a href="https://github.com/thearn/webcam-pulse-detector">GitHub</a>.</p>
<p>The post <a href="http://thechangelog.com/detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application/">Detect and highlight your heart-rate using just a webcam and this Python app</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=K0HdG9HWRzc:LQLNr7haJjc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=K0HdG9HWRzc:LQLNr7haJjc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=K0HdG9HWRzc:LQLNr7haJjc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=K0HdG9HWRzc:LQLNr7haJjc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=K0HdG9HWRzc:LQLNr7haJjc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=K0HdG9HWRzc:LQLNr7haJjc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=K0HdG9HWRzc:LQLNr7haJjc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/K0HdG9HWRzc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=detect-and-highlight-your-heart-rate-using-just-a-webcam-and-this-python-application</feedburner:origLink></item>
		<item>
		<title>Fergulator — NES Emulator Written in Go</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/Inb2hRHkPZA/</link>
		<comments>http://thechangelog.com/nes-go/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 02:41:47 +0000</pubDate>
		<dc:creator>Kenneth Reitz</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Emulator]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Nintendo]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4454</guid>
		<description><![CDATA[<p>Fergulator is an NES emulator, written in Go. Need we say more?</p><p>The post <a href="http://thechangelog.com/nes-go/">Fergulator — NES Emulator Written in Go</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/scottferg/Fergulator#readme">Fergulator</a> is an NES emulator, written in Go.</p>

<p><img src="http://thechangelog.com/wp-content/uploads/fergulator-screenshot.png" alt="Fergulator screenshot" title="Fergulator screenshot" /></p>

<p>Need we say more?</p>
<p>The post <a href="http://thechangelog.com/nes-go/">Fergulator — NES Emulator Written in Go</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=Inb2hRHkPZA:RHfBcrV-rkw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Inb2hRHkPZA:RHfBcrV-rkw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Inb2hRHkPZA:RHfBcrV-rkw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Inb2hRHkPZA:RHfBcrV-rkw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Inb2hRHkPZA:RHfBcrV-rkw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=Inb2hRHkPZA:RHfBcrV-rkw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=Inb2hRHkPZA:RHfBcrV-rkw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/Inb2hRHkPZA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/nes-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/nes-go/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=nes-go</feedburner:origLink></item>
		<item>
		<title>Note taking made simple with Notational Velocity – and nvALT!</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/vGcg7BY4-3U/</link>
		<comments>http://thechangelog.com/note-taking-made-simple-with-notational-velocity-and-nvalt/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 20:58:08 +0000</pubDate>
		<dc:creator>Andrew Thorp</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Mac App]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4437</guid>
		<description><![CDATA[<p>As many of you know, and hopefully are ready for, we will be recording LIVE today at 6PM EST, which is a little more than an hour away! We are very excited, and you can keep up with us at any of the following: http://thechangelog.com/live http://thechangelog.com/irc #thechangelog on freenode The show will be myself, Adam [...]</p><p>The post <a href="http://thechangelog.com/note-taking-made-simple-with-notational-velocity-and-nvalt/">Note taking made simple with Notational Velocity &#8211; and nvALT!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>As many of you know, and hopefully are ready for, we will be recording <strong>LIVE</strong> <em>today at 6PM EST</em>, which is a little more than an hour away! We are very excited, and you can keep up with us at any of the following:</p>

<ul>
<li><a href="http://thechangelog.com/live">http://thechangelog.com/live</a></li>
<li><a href="http://thechangelog.com/irc">http://thechangelog.com/irc</a></li>
<li>#thechangelog on freenode</li>
</ul>

<p>The show will be <a href="http://twitter.com/andrewpthorp">myself</a>, <a href="http://twitter.com/adamstac">Adam Stacoviak</a>, <a href="http://twitter.com/steveklabnik">Steve Klabnik</a>, <a href="http://twitter.com/kennethreitz">Kenneth Reitz</a> and <a href="http://twitter.com/jerodsanto">Jerod Santo</a>. We will be discussing the relaunch, news and much more as it relates to Open Source!</p>

<p><em>That&#8217;s enough advertising, now on to the real purpose of the post!</em></p>

<hr />

<p>While preparing for the new Podcast, I decided to dig around and look for the best (open source) note taking application I could find. I have heard about <a href="http://notational.net/">Notational Velocity</a>, by Zachary Schneirov. 
Obviously, <a href="http://notational.net/">by the looks of it</a>, development has ceased on the project &nbsp; the code hasn&#8217;t been updated in 2 years.</p>

<p>However, a fork of the project, which I heard <a href="http://twitter.com/hotdogsladies">Merlin Mann</a> discuss on another podcast I listen to, has continued to improve. The fork is <a href="https://github.com/ttscoff/nv">nvALT</a> by <a href="https://twitter.com/ttscoff/">Brett Terpstra</a> and it is what I will be using today while recording the new podcast!</p>

<p>Brett has written a <a href="http://brettterpstra.com/projects/nvalt/">great summary</a> of what Notational Velocity is, what nvALT is, and the features that this application has. If you are interested in contributing to a growing, fun Mac App, this is a great place to start!</p>

<p>As usual, you can <a href="https://github.com/ttscoff/nv">view the source</a> on GitHub or <a href="http://brettterpstra.com/projects/nvalt/">visit the project&#8217;s homepage</a>.</p>
<p>The post <a href="http://thechangelog.com/note-taking-made-simple-with-notational-velocity-and-nvalt/">Note taking made simple with Notational Velocity &#8211; and nvALT!</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=vGcg7BY4-3U:jWLIeMgZ22w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vGcg7BY4-3U:jWLIeMgZ22w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vGcg7BY4-3U:jWLIeMgZ22w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=vGcg7BY4-3U:jWLIeMgZ22w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vGcg7BY4-3U:jWLIeMgZ22w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=vGcg7BY4-3U:jWLIeMgZ22w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=vGcg7BY4-3U:jWLIeMgZ22w:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/vGcg7BY4-3U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/note-taking-made-simple-with-notational-velocity-and-nvalt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/note-taking-made-simple-with-notational-velocity-and-nvalt/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=note-taking-made-simple-with-notational-velocity-and-nvalt</feedburner:origLink></item>
		<item>
		<title>Moment.js is a Swiss Army Knife for dealing with Time in JavaScript</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/cdcfpAF61E4/</link>
		<comments>http://thechangelog.com/moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 13:46:07 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4390</guid>
		<description><![CDATA[<p>Judging from how many stars Moment.js has garnered on GitHub, you may already know about it. But for those who haven&#8217;t, Moment.js is Tim Wood&#8217;s highly polished and well-documented JavaScript library for parsing, validating, manipulating, and formatting dates. It runs in the browser or Node.js, supports many languages, has a great API, and has saved [...]</p><p>The post <a href="http://thechangelog.com/moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript/">Moment.js is a Swiss Army Knife for dealing with Time in JavaScript</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Judging from how many stars <a href="https://github.com/timrwood/moment/">Moment.js</a> has garnered on GitHub, you may already know about it. But for those who haven&#8217;t, Moment.js is <a href="https://github.com/timrwood">Tim Wood&#8217;s</a> highly polished and <a href="http://momentjs.com/docs/">well-documented</a> JavaScript library for parsing, validating, manipulating, and formatting dates.</p>

<p>It runs in the browser or Node.js, supports many languages, has a great API, and has saved this Changelogger countless hours over the years. Here are a few example uses from the project&#8217;s <a href="http://momentjs.com/">homepage</a>:</p>

<pre><code>moment().startOf('day').fromNow();
moment().add('days', 10).calendar();
moment().format("MMM Do YY");
</code></pre>

<p>The library weighs in at just 5.5kb and recently reached version 2.0, so if you haven&#8217;t looked at it in awhile now&#8217;s the time to <a href="http://momentjs.com/">check it out</a> once again!</p>
<p>The post <a href="http://thechangelog.com/moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript/">Moment.js is a Swiss Army Knife for dealing with Time in JavaScript</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=cdcfpAF61E4:sUopo7JY6Eo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=cdcfpAF61E4:sUopo7JY6Eo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=cdcfpAF61E4:sUopo7JY6Eo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=cdcfpAF61E4:sUopo7JY6Eo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=cdcfpAF61E4:sUopo7JY6Eo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=cdcfpAF61E4:sUopo7JY6Eo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=cdcfpAF61E4:sUopo7JY6Eo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/cdcfpAF61E4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=moment-js-is-a-swiss-army-knife-for-dealing-with-time-in-javascript</feedburner:origLink></item>
		<item>
		<title>Bring your server side debug logging into the browser with Chrome Logger</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/nCuD9nFnWlY/</link>
		<comments>http://thechangelog.com/bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 21:45:37 +0000</pubDate>
		<dc:creator>Jerod Santo</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4371</guid>
		<description><![CDATA[<p>If you find yourself jumping back and forth between Chrome&#8217;s Dev Tools and a terminal displaying your server side request logs, Craig Campbell&#8217;s Chrome Logger might be just the thing you need! It&#8217;s a Chrome extension which lets you see your server side logs right in the browser. There are currently libraries for: Python Ruby [...]</p><p>The post <a href="http://thechangelog.com/bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger/">Bring your server side debug logging into the browser with Chrome Logger</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>If you find yourself jumping back and forth between Chrome&#8217;s <a href="https://developers.google.com/chrome-developer-tools/">Dev Tools</a> and a terminal displaying your server side request logs, <a href="http://craig.is/">Craig Campbell&#8217;s</a> <a href="http://craig.is/writing/chrome-logger/">Chrome Logger</a> might be just the thing you need!</p>

<p>It&#8217;s a <a href="https://chrome.google.com/webstore/detail/chromephp/noaneddfkdjfnfdakjjmocngnfkfehhd">Chrome extension</a> which lets you see your server side logs right in the browser. There are currently libraries for:</p>

<ul>
<li><a href="http://github.com/ccampbell/chromelogger-python">Python</a></li>
<li><a href="http://github.com/cookrn/chrome_logger">Ruby</a></li>
<li><a href="http://github.com/ccampbell/chromephp">PHP</a></li>
<li><a href="http://github.com/olahol/express-chrome-logger">Express</a></li>
</ul>

<p>Is your server side language/environment of choice not on that list? Don&#8217;t worry, Chrome Logger uses an <a href="http://craig.is/writing/chrome-logger/techspecs">open and published</a> protocol so you can easily write client libraries of your own!</p>

<p>See the project&#8217;s <a href="http://craig.is/writing/chrome-logger/">home page</a> for more info or <a href="https://github.com/ccampbell/chromelogger">check under the hood</a> if you&#8217;re curious about how it all works.</p>
<p>The post <a href="http://thechangelog.com/bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger/">Bring your server side debug logging into the browser with Chrome Logger</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=nCuD9nFnWlY:o8AMfTfqmuE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nCuD9nFnWlY:o8AMfTfqmuE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nCuD9nFnWlY:o8AMfTfqmuE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=nCuD9nFnWlY:o8AMfTfqmuE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nCuD9nFnWlY:o8AMfTfqmuE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=nCuD9nFnWlY:o8AMfTfqmuE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=nCuD9nFnWlY:o8AMfTfqmuE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/nCuD9nFnWlY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=bring-your-server-side-debug-logging-into-the-browser-with-chrome-logger</feedburner:origLink></item>
		<item>
		<title>Chart.js — Beautiful client side graphs to visualise your data using HTML5 canvas</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/fX9n65a4P_U/</link>
		<comments>http://thechangelog.com/chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 21:32:30 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4369</guid>
		<description><![CDATA[<p>Sexy charts can really make a good data driven UI that much better. One thing that designers struggle with is creating sexy charts and graphs that their developer counterparts can actually implement without having to write it all from scratch. Chart.js, from Nick Browne, makes it easy to visualize your data using HTML&#8217;s &#60;canvas&#62; tag [...]</p><p>The post <a href="http://thechangelog.com/chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas/">Chart.js &#8212; Beautiful client side graphs to visualise your data using HTML5 canvas</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.chartjs.org/docs/#pieChart-introduction"><img src="http://thechangelog.com/wp-content/uploads/chartjs.png" alt="Chart.js" title="Chart.js" /></a></p>

<p>Sexy charts can really make a good data driven UI that much better. One thing that designers struggle with is creating sexy charts and graphs that their developer counterparts can actually implement without having to write it all from scratch.</p>

<p>Chart.js, from <a href="https://github.com/nnnick">Nick Browne</a>, makes it easy to visualize your data using HTML&#8217;s <code>&lt;canvas&gt;</code> tag and create great looking charts that are fully customizable. With 6 charts to choose from &#8212; you&#8217;re able to visualise your data with various animated charts that look great on retina displays too.</p>

<p>Check out <a href="http://github.com/nnnick/Chart.js">the source</a> and <a href="http://www.chartjs.org/docs/">the docs</a> to get up to speed. There&#8217;s <a href="https://github.com/cfddream/nchart">a node port</a> too.</p>
<p>The post <a href="http://thechangelog.com/chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas/">Chart.js &#8212; Beautiful client side graphs to visualise your data using HTML5 canvas</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=fX9n65a4P_U:OzUMmkSmoxk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=fX9n65a4P_U:OzUMmkSmoxk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=fX9n65a4P_U:OzUMmkSmoxk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=fX9n65a4P_U:OzUMmkSmoxk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=fX9n65a4P_U:OzUMmkSmoxk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=fX9n65a4P_U:OzUMmkSmoxk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=fX9n65a4P_U:OzUMmkSmoxk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/fX9n65a4P_U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=chart-js-beautiful-client-side-graphs-to-visualise-your-data-using-html5-canvas</feedburner:origLink></item>
		<item>
		<title>Hyperresource: a hypermedia API client for Ruby</title>
		<link>http://feedproxy.google.com/~r/thechangelog/~3/X0_2Zz2CkzI/</link>
		<comments>http://thechangelog.com/hyperresource-a-hypermedia-api-client-for-ruby/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 18:15:40 +0000</pubDate>
		<dc:creator>Steve Klabnik</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thechangelog.com/?p=4363</guid>
		<description><![CDATA[<p>Any of you who know me aren&#8217;t surprised about me posting this story: it&#8217;s right up my alley! Basically, hyperresource is intended to be a general hypermedia client. What&#8217;s that mean? It can work with any API that happens to use one of the media types it supports. Right now, that&#8217;s just HAL+JSON, but more [...]</p><p>The post <a href="http://thechangelog.com/hyperresource-a-hypermedia-api-client-for-ruby/">Hyperresource: a hypermedia API client for Ruby</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Any of you who know me aren&#8217;t surprised about me posting this story: it&#8217;s right up my alley!</p>

<p>Basically, <a href="https://github.com/gamache/hyperresource">hyperresource</a> is intended to be a general hypermedia client. What&#8217;s that mean? It can work with any API that happens to use one of the media types it supports. Right now, that&#8217;s just HAL+JSON, but more will be added in the future.</p>

<p>What&#8217;s that mean in terms of code? Well, here&#8217;s an example <a href="https://github.com/gamache/hyperresource#hyperresource">from the README</a>:</p>

<pre><code>api = HyperResource.new(root: 'https://api.example.com')
# =&gt; #&lt;HyperResource:0xABCD1234 @root="https://api.example.com" @href="" @namespace=nil ... &gt;
root = api.get
# =&gt; #&lt;HyperResource:0xABCD1234 @root="https://api.example.com" @href="" @namespace=nil ... &gt;
root.response_body
# =&gt; { 'message' =&gt; 'Welcome to the Example.com API',
#      'version' =&gt; 1,
#      '_links' =&gt; {
#        'self' =&gt; {'href' =&gt; '/'},
#        'users' =&gt; {'href' =&gt; '/users{?email,last_name}', 'templated' =&gt; true},
#        'forums' =&gt; {'href' =&gt; '/forums{?title}', 'templated' =&gt; true}
#      }
#    }
jdoe_user = api.users.where(email: "jdoe@example.com").first
# =&gt; #&lt;HyperResource:0x12312312 ...&gt;
</code></pre>

<p>How does it know how to look up those users? Well, there&#8217;s a <code>users</code> link relation on in the response, and it has a templated URI as its <code>href</code> attribute. This lets the client reflect and know how to look up users by their email or last name.</p>

<p>The power of this generic tooling is that we no longer have to think about how to parse HAL, how to interpret the response&#8230; we have this one library which works with any HAL-powered API.</p>

<p>The biggest drawback of hyperresource is that it&#8217;s read-only at the moment, nothing but GET. But it shows a lot of promise, and I&#8217;m excited to see this kind of stuff pop up in the wild. Everything I see points to 2013 as the year of example code for hypermedia services.</p>

<p><a href="https://github.com/gamache/hyperresource">Check it out on GitHub.</a></p>
<p>The post <a href="http://thechangelog.com/hyperresource-a-hypermedia-api-client-for-ruby/">Hyperresource: a hypermedia API client for Ruby</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/thechangelog?a=X0_2Zz2CkzI:Ja2g5HcKiIo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=X0_2Zz2CkzI:Ja2g5HcKiIo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=X0_2Zz2CkzI:Ja2g5HcKiIo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=X0_2Zz2CkzI:Ja2g5HcKiIo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=X0_2Zz2CkzI:Ja2g5HcKiIo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/thechangelog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/thechangelog?a=X0_2Zz2CkzI:Ja2g5HcKiIo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/thechangelog?i=X0_2Zz2CkzI:Ja2g5HcKiIo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/thechangelog/~4/X0_2Zz2CkzI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/hyperresource-a-hypermedia-api-client-for-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thechangelog.com/hyperresource-a-hypermedia-api-client-for-ruby/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hyperresource-a-hypermedia-api-client-for-ruby</feedburner:origLink></item>
	<media:rating>nonadult</media:rating></channel>
</rss>
