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

<channel>
	<title>Ryan McKern &#187; books</title>
	<atom:link href="http://ryanmckern.com/tag/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://ryanmckern.com</link>
	<description>Loudmouth web engineer from the Boston area; loud music, sketchy source code, good food.</description>
	<lastBuildDate>Fri, 27 Apr 2012 03:11:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>&quot;Learn code the hard way&quot; is Zed Shaw&#039;s most awesome project to date</title>
		<link>http://ryanmckern.com/2012/04/learn-code-the-hard-way-is-zed-shaws-most-awesome-project-to-date/</link>
		<comments>http://ryanmckern.com/2012/04/learn-code-the-hard-way-is-zed-shaws-most-awesome-project-to-date/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 05:22:51 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[literary]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=1389</guid>
		<description><![CDATA[Posted in booksgeneralliterarytechnicalNot a whole lot to say about it, but I think that the Learn Code The Hard Way initiative is absolutely awesome; it's probably Zed Shaw's (@zedshaw) best work. I've used his Learn Python The Hard Way book (and snippets of Learn C The Hard Way, because sometimes the Old Ways are the Best Ways) [...]]]></description>
			<content:encoded><![CDATA[<p>Not a whole lot to say about it, but I think that the <a href="http://learncodethehardway.org/" class="aga aga_6">Learn Code The Hard Way</a> initiative is absolutely awesome; it's probably <a href="http://zedshaw.com/" class="aga aga_7">Zed Shaw</a>'s (<a href="https://twitter.com/zedshaw" class="aga aga_8">@zedshaw</a>) best work. I've used his <a href="http://learnpythonthehardway.org/" class="aga aga_9">Learn Python The Hard Way</a> book (and snippets of <a href="http://c.learncodethehardway.org/" class="aga aga_10">Learn C The Hard Way</a>, because sometimes the <em>Old Ways</em> are the <strong>Best Ways</strong>) as reference but they really excel when used linearly to do what it says on the label.</p>

<p>This series uses example-based tutorials to explain and illustrate concepts and new lessons build upon concepts learned from previous lessons and examples. By the time you've gone through one of the books the most fundamental lessons have been iterated over numerous times (but without beating you over the head with them), and that's how these things stick. But honestly, my favorite things about these books are that they're priced to move (free &amp; cheap, based on what format you're looking for) and that they're open-source (<a href="https://gitorious.org/~zedshaw" class="aga aga_11">the source code is up on Zed's Gitorious account</a>) <strong>but</strong> they're edited; no wild-ass Wikipedia style misinformation, just people contributing what they know where they think it'll do some good.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2012/04/learn-code-the-hard-way-is-zed-shaws-most-awesome-project-to-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey, here&#039;s another book I read recently: How to Count</title>
		<link>http://ryanmckern.com/2012/04/hey-heres-another-book-i-read-recently-how-to-count/</link>
		<comments>http://ryanmckern.com/2012/04/hey-heres-another-book-i-read-recently-how-to-count/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 04:00:06 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[how to count]]></category>
		<category><![CDATA[primer]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=1404</guid>
		<description><![CDATA[Posted in booksgeneralSteven Frank (@stevef), of Panic infamy has self-published the first volume of an ambitious new series of technical books: How to Count: Programming for Mere Mortals, Volume 1. It's a slim volume, clocking in at approximately 70 pages (depending on your e-reader of choice) but it's an excellent read on the fundamental skill of thinking [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://stevenf.com/" class="aga aga_18">Steven Frank</a> (<a href="http://twitter.com/stevenf/" class="aga aga_19">@stevef</a>), of <a href="http://panic.com/" class="aga aga_20">Panic</a> infamy has self-published the first volume of an ambitious new series of technical books: <a href="http://stevenf.com/pages/book.html" class="aga aga_21">How to Count: Programming for Mere Mortals, Volume 1</a>. It's a slim volume, clocking in at approximately 70 pages (depending on your e-reader of choice) but it's an excellent read on the fundamental skill of thinking about numbers the way a computer thinks about numbers. I will likely continue to use the bits about converting hex to binary long, long after I've forgotten everything else I read in here.</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2012/04/howtocount.png" alt="" title="How To Count" class="alignleft size-full wp-image-1482" /></p>

<p>Long story short, it's inexpensive ($2.99 e-book, $7.99 dead tree!), well written (as well written as the beloved <a href="http://mislav.uniqpath.com/poignant-guide/" class="aga aga_22">Why's (Poignant) Guide to Ruby</a>), and fun in a nerdy sort of "taught myself calculus one summer back in high school" sort of way. Did you teach yourself calculus one summer back in high school? If you did, this book is probably beneath you. But since I spent my summers in high school at the Warped Tour, working dead-end food-service jobs, and swimming in creeks, I got a lot out of a surprisingly thin book.</p>

<p>If you're interested in a gentle introduction to programming, looking for a refresher on how computers do "<a href="http://www.word-detective.com/2011/05/04/math-vs-maths/" class="aga aga_23">The Maths</a>", or just want to contribute a few dollars towards a noble cause (that is, convincing Steve to write volume 2) this is a worthwhile purchase. Double word score bonus to the fact that unless we have a massive quantum compute breakthrough within our lifetimes, the contents of this book should withstand factual atrophy astonishingly well.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2012/04/hey-heres-another-book-i-read-recently-how-to-count/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Literary beta testing: Build Awesome Command-Line Applications in Ruby</title>
		<link>http://ryanmckern.com/2012/03/literary-beta-testing-build-awesome-command-line-applications-in-ruby/</link>
		<comments>http://ryanmckern.com/2012/03/literary-beta-testing-build-awesome-command-line-applications-in-ruby/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 06:22:27 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=1205</guid>
		<description><![CDATA[Posted in booksrubyDavid Copeland (@davetron5000), author of GLI (Git-like Interface Command Parser) has written a book called Build Awesome Command-Line Applications in Ruby. I've been beta-testing the book while it was going through the publishing process, and it is excellent. Of note: it focuses on writing command suites (like the rails command or git) and stand-alone command-line [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.naildrivin5.com/blog" class="aga aga_33">David Copeland</a> (<a href="http://twitter.com/davetron5000" class="aga aga_34">@davetron5000</a>), author of <a href="https://github.com/davetron5000/gli" class="aga aga_35">GLI (Git-like Interface Command Parser</a>) has written a book called <em><a href="http://pragprog.com/book/dccar/build-awesome-command-line-applications-in-ruby" class="aga aga_36">Build Awesome Command-Line Applications in Ruby</a></em>. I've been beta-testing the book while it was going through the publishing process, and it is excellent. Of note: it focuses on writing command suites (like the <code>rails</code> command or <code>git</code>) <strong>and</strong> stand-alone command-line applications (like <code>rsync</code>).</p>

<p><a href="http://ryanmckern.com/wp-content/uploads/2012/03/dccar1.jpg" ><img class="alignleft size-full wp-image-1394" title="Build Awesome Command-Line Applications in Ruby" src="http://ryanmckern.com/wp-content/uploads/2012/03/dccar1.jpg" alt="Build Awesome Command-Line Applications in Ruby" width="208" height="250" /></a></p>

<p>So like I mentioned up there, I initially grabbed the book around its second or third beta release, figuring that while it was still in the process of becoming a Real Book I sometimes feel like I'm still in the process of becoming a Real Admin so, you know, what the hell, let's work through it together.</p>

<p>I know a number of developers who only know Ruby in the context of the Rails framework (and maybe related Rake tasks) and this book is an exceptional guide to using Ruby for more than just Rails applications. Command-line tooling has long been an area of interest for me as working in operations means often having to perform a number of repetitive tasks which lend themselves well to being scripted; good admins write good scripts. <span id="more-1205"></span></p>

<p>To that end, I think there's a philosophy behind useful scripting and I think that sticking to system tools like Bash (or if you insist, standard bourne shell) whenever possible is always your safest bet. But sometimes it's just easier or smarter (and sometimes both) to use a language like Ruby or Perl for tasks like string manipulation, data aggregation and analysis, or "<a href="http://en.wikipedia.org/wiki/Glue_code" class="aga aga_37">glue code</a>". I think the most important thing this book does is try to instill a general philosophy of how good shell scripts and command line tools are built <strong>and</strong> maintained.</p>

<p>Beyond its focus on OptionParser (the standard Ruby argv parser library), <em>Build Awesome Command-Line Applications in Ruby</em> also gives a high level but functional overview of some of the popular options (<a href="http://trollop.rubyforge.org/" class="aga aga_38">Trollop</a>, David's own <a href="https://github.com/davetron5000/methadone" class="aga aga_39">methadone</a>, and <a href="https://github.com/ahoward/main" class="aga aga_40">main</a>) for parsing options and building help screens for your tools. For those of you who are curious, <a href="http://lee.jarvis.co/slop/" class="aga aga_41">Slop</a> is also somewhat popular but I understand that reviewing all of the options would have unnecessarily extended the length and scope of the book; you have to draw the line somewhere.</p>

<p>David has written a pretty useful book and I think it's a must-read for anyone who has to roll their own tools with any regularity. If you work in operations, development, or tooling you owe it to yourself to give it a read if only for the overview of what makes a successful command line tool that people appreciate using and what makes a shitty ad-hoc script with no help screen or sanity checking that your coworkers hate using but no one wants to take the time to refactor.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2012/03/literary-beta-testing-build-awesome-command-line-applications-in-ruby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 28/35 queries in 0.014 seconds using disk: basic
Object Caching 983/987 objects using disk: basic

Served from: ryanmckern.com @ 2012-05-22 04:19:29 -->
