<?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</title>
	<atom:link href="http://ryanmckern.com/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>My first month with the Grado Prestige SR60i&#039;s</title>
		<link>http://ryanmckern.com/2012/03/my-first-month-with-the-grado-prestige-sr60is/</link>
		<comments>http://ryanmckern.com/2012/03/my-first-month-with-the-grado-prestige-sr60is/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 04:58:44 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[bragging]]></category>
		<category><![CDATA[op-ed]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[audioengine]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[grado]]></category>
		<category><![CDATA[headphones]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=1447</guid>
		<description><![CDATA[Posted in braggingop-edopinionThe creepy mustache that is Jesse Thorn, of Put This On (the thinking man's style blog) published a bit about good headphones back on February 16th. When you think style blogging, you probably don't think about headphones (unless you buy gimmicky equipment like Beats Audio…) but he recommended the same headphones that my musician friends [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ryanmckern.com/wp-content/uploads/2012/03/b3c62cd67aed11e1b10e123138105d6b_7-200x200.jpg" alt="" title="Grado SR60i Headphones" width="200" height="200" class="alignright size-thumbnail wp-image-1456" /></p>

<p>The creepy mustache that is <a href="http://twitter.com/jessethorn" class="aga aga_31">Jesse Thorn</a>, of <a href="http://putthison.com/" class="aga aga_32">Put This On</a> (the thinking man's style blog) published a <a href="http://putthison.com/post/17716872246/headphones-for-listening-im-in-the-audio" class="aga aga_33">bit about good headphones</a> back on February 16th. When you think style blogging, you probably don't think about headphones (unless you buy gimmicky equipment like Beats Audio…) but he recommended the same headphones that my musician friends <strong>AND</strong> my audiophile friends had both previously recommended. After a week of hemming and hawing, I broke down and purchased an entry level pair of <a href="http://www.gradolabs.com/page_headphones.php?item=f4ba8830232696b5f580bd531134b668" class="aga aga_34">Grado SR60i</a> headphones.</p>

<p>I had up until that point used an old pair of open-back <a href="http://www.crutchfield.com/S-3eFEzhuM25c/p_143HD570/Sennheiser-HD-570.html" class="aga aga_35">Sennheiser HD570</a> cans for all of my "stuff I want to enjoy" listening; they're nothing fancy but they sound clear and they've aged well over the last, I don't know, 10 years or so that I've owned them. I don't know if that's before or after Sennheiser supposedly over-extended their brand in order to get shelf-space in big-box retailers, but I really wanted to know how these would compare. Peter, at <a href="http://www.natural-sound.com/" class="aga aga_36">Natural Sound of Framingham</a> (the gentleman who sold me the Grado cans) said quite matter-of-factly, "I think you'll like these more than your Sennheisers."</p>

<p>After a month of near-daily usage, I will tell you flatly that Peter was right. Jesse was right. My audiophile &amp; music nerd friends were right. They are the best headphones I've ever owned, and it was $80.00 USD <em>well</em> spent.</p>

<p>Sure, on first glance, they kind of look like the sort of knock-off junk you'd find in a swap meet in the parking lot of an Arizona hardware store. The plastic is flat and black, there's no gloss or glitz, they're sort of just hanging off these steel posts topped with a simple plastic cap, and they have a cable coming off each cup instead of routing it across the headband like everyone else does these days.</p>

<p>You know why they look like that? Because everything that isn't essential to making them sound good is effectively ignored: they're built for listening to, and they are wonderful. I had initially toyed with picking up the SR80i's instead, as a friend reminded me that they are supposed to be "measurably better" but I'm not really an audio nerd -- I figured, "I've got tinnitus and I can't really hear anything higher pitched than a child's voice". A month later and now I'm considering getting a second pair (maybe the SR80i's?) so I don't have to bring a pair back and forth to and from work every day.</p>

<p><span class="tldr"><strong>TL;DR</strong> Anyone want a used but serviceable pair of Sennheiser HD570 cans?</span></p>

<h3>**BONUS ROUND**: The Audioengine D1 USB/Optical DAC</h3>

<p>I also picked up an <a href="http://audioengineusa.com/Store/Audioengine-D1" class="aga aga_37">Audioengine D1 USB/Optical DAC</a> to use in lieu of the relatively noisy headphone out on my laptop. Not worth getting into since most of the technical minutia is either over my head or beneath my concern<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> but it was a solid, if unnecessary purchase.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>Audio-out on this port apparently runs across a shared bus with a bunch of other internal components. It's a common problem, and most people will never, ever notice it. Really, not a big deal. <a href="#fnref:1" rev="footnote">↩</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2012/03/my-first-month-with-the-grado-prestige-sr60is/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_47">David Copeland</a> (<a href="http://twitter.com/davetron5000" class="aga aga_48">@davetron5000</a>), author of <a href="https://github.com/davetron5000/gli" class="aga aga_49">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_50">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_51">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_52">Trollop</a>, David's own <a href="https://github.com/davetron5000/methadone" class="aga aga_53">methadone</a>, and <a href="https://github.com/ahoward/main" class="aga aga_54">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_55">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>
		<item>
		<title>Mark Wunsch, on Installing Gems</title>
		<link>http://ryanmckern.com/2011/08/mark-wunsch-on-installing-gems/</link>
		<comments>http://ryanmckern.com/2011/08/mark-wunsch-on-installing-gems/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 21:58:00 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[gripes]]></category>
		<category><![CDATA[grumbling]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/2011/08/mark-wunsch-on-installing-gems/</guid>
		<description><![CDATA[Posted in rubytechnicalhttp://mwunsch.tumblr.com/post/8645762505/installing-gemsI have 3 or 4 queued up posts about Ruby butthurt, and what Mark has to say is pretty in line with a lot of it.]]></description>
			<content:encoded><![CDATA[<p>I have 3 or 4 queued up posts about Ruby butthurt, and what Mark has to say is pretty in line with a lot of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2011/08/mark-wunsch-on-installing-gems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The iTunes 10 UI is an abomination</title>
		<link>http://ryanmckern.com/2010/09/the-itunes-10-ui-is-an-abomination/</link>
		<comments>http://ryanmckern.com/2010/09/the-itunes-10-ui-is-an-abomination/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:15:11 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[diatribes]]></category>
		<category><![CDATA[op-ed]]></category>
		<category><![CDATA[shit stirring]]></category>
		<category><![CDATA[chewbacca]]></category>
		<category><![CDATA[embarrassing]]></category>
		<category><![CDATA[endor]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[terrible]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=927</guid>
		<description><![CDATA[Posted in applediatribesop-edshit stirringSo, iTunes 10 looks like Apple's college intern office bitch slapped the design together over the weekend while on a bender. What happened to those LEGIONS of UI designers they employ? Let's Talk About That Icon It's pretty damned terrible. It's so bad that I don't even care that the software runs faster than before [...]]]></description>
			<content:encoded><![CDATA[<p>So, <a href="http://apple.com/itunes/" class="aga aga_71">iTunes 10</a> looks like Apple's college intern office bitch slapped the design together over the weekend while on a bender. What happened to those <a href="http://developer.apple.com/ue/" class="aga aga_72">LEGIONS of UI designers they employ</a>? <span id="more-927"></span></p>

<h3>Let's Talk About That Icon</h3>

<p>It's <strong>pretty damned terrible</strong>. It's so bad that I don't even care that the software runs faster than before (and it does). The improved responsiveness has taken a backseat to shame. <a href="http://www.apple.com/itunes/ping/" class="aga aga_73">Ping?</a> <strong>HOST UNREACHABLE</strong>. It's an embarrassment to use or to be seen using. Here are two pieces of shitty MS clipart that my wife found in Office 2007 in less than 45 seconds:</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/icons.jpeg" alt="These sad eighth notes are all brown notes." title="iTunes Icons Gangbang" class="aligncenter block size-full wp-image-949" /></p>

<p>If these two crazy kids tried to get shitty on <a href="http://www.amazon.com/Franklin-International-5063-Titebond-Original/dp/B0002YWZPW" class="aga aga_74">cheap woodworking glue</a> and <a href="http://www.insidemdsports.com/forums/showthread.php?t=25854&amp;page=6" class="aga aga_75">Mad Dog 20/20</a> one weekend and "made an oopsie", you'd get something that looks a lot like that icon.</p>

<p>Oh, and here's a serious question: why are the window controls vertical? <a href="http://en.wikipedia.org/wiki/Chewbacca_defense" class="aga aga_76">Chewbacca lives on Endor!</a> It does <strong><em>not make sense</em></strong>! Stylistically and conceptually the whole thing feels clumsy and a bit like an attempt to get "in your face."</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/Window_Controls.jpg" alt="iTunes 10 Window Controls" title="iTunes 10 Window Controls" width="35" height="64" class="alignright size-full wp-image-932" /></p>

<p>Almost every damned widget is <strong><em>A)</em></strong> yet again custom to iTunes, not the OS; <strong><em>B)</em></strong> different than it was before. They're almost all universally ugly. Things that should be buttons are just sort of decal looking sections of the screen and a lot of stuff has tremendously crappy bezels for no real reason.</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/Bezels.jpeg" alt="Uneccesary " title="iTunes Bezels" width="582" height="88" class="aligncenter block size-full wp-image-945" /></p>

<h3>Is There Anything They Did Right?</h3>

<p>The speaker management window is a tremendous improvement?</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/speakers.jpg" alt="This however is a welcome improvement" title="iTunes Speaker Controls" width="421" height="152" class="aligncenter size-full block wp-image-946" /></p>

<p>I think I like this hybrid cover art view they're pushing for column based browsing.</p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/columns.jpeg" alt="" title="Hybrid Column Browsing" class="aligncenter size-full wp-image-965" /></p>

<hr />

<h3>You Like Third Party Library Servers?</h3>

<p>Too bad. iTunes 10 has munged with the DAAP protocol (which, admittedly, is Apple's protocol, so it's their right) and <a href="http://discussions.apple.com/thread.jspa?threadID=2564925&amp;tstart=15" class="aga aga_77">broken 3rd party DAAP servers</a>. So, your Drobo, your Synology DiskStation, your Netgear ReadyNAS, and those Western Digital disks that support streaming music? They're all basically going to need firmware updates when the someone figures out what to patch or change in <a href="http://www.fireflymediaserver.org/" class="aga aga_78">MT-DAAP (or Firefly, if you prefer)</a> to make it work again; you can make a pretty safe bet that Apple won't rev the protocol back to help fix this problem.</p>

<h3>Final Thoughts</h3>

<p>I have to believe that someone, somewhere is laboring away on music library management software that isn't encumbered by goofy widgets and ridiculous business decisions. It's probably not coming from the Linux camp (see: <a href="http://projects.gnome.org/rhythmbox/" class="aga aga_79">Rhythmbox</a>, <a href="http://banshee.fm/" class="aga aga_80">Banshee</a>, <a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CB8QFjAA&amp;url=http%3A%2F%2Famarok.kde.org%2F&amp;ei=kEN_TJObK4GBlAfS0LnSDw&amp;usg=AFQjCNFk8tWf-dsfTT85tY4rvLEYlUlwpQ" class="aga aga_81">Amarok</a>, <a href="http://code.google.com/p/clementine-player/" class="aga aga_82">Clementine</a>, &amp; <a href="http://sourceforge.net/projects/guayadeque/" class="aga aga_83">Guayadeque</a> for an idea of where <strong>they're</strong> reinventing the wheel). <a href="http://www.getsongbird.com/" class="aga aga_84">Songbird</a> is wrapped in <a href="http://en.wikipedia.org/wiki/XUL" class="aga aga_85">XUL interface</a> hell (never mind technical backend "iffiness"). I think iTunes has been the dominant player in this space (at least in OS X) for so long that no one even bothers trying anymore.</p>

<p><em>Sigh…</em></p>

<p><img src="http://ryanmckern.com/wp-content/uploads/2010/09/sad-panda.gif" alt="" title="Sad Panda" width="400" height="300" class="aligncenter block size-full wp-image-961" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2010/09/the-itunes-10-ui-is-an-abomination/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NNTP readers on OS X are built from failure</title>
		<link>http://ryanmckern.com/2009/10/nntp-readers-on-os-x-are-built-from-failure/</link>
		<comments>http://ryanmckern.com/2009/10/nntp-readers-on-os-x-are-built-from-failure/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 05:59:27 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[op-ed]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[Hogwasher]]></category>
		<category><![CDATA[MacSoup]]></category>
		<category><![CDATA[MaxNews]]></category>
		<category><![CDATA[MT-NewsWatcher]]></category>
		<category><![CDATA[Nemo]]></category>
		<category><![CDATA[newsgroups]]></category>
		<category><![CDATA[newsreader]]></category>
		<category><![CDATA[nntp]]></category>
		<category><![CDATA[OSXNews]]></category>
		<category><![CDATA[Pineapple News]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Unison]]></category>
		<category><![CDATA[Xnntp]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=734</guid>
		<description><![CDATA[Posted in applicationsmacop-edIn the office where I work we use/maintain a newsgroup server with a variety of internal newsgroups where everything from items for sale to complaints and hassles are posted. Late last year I went pretty much all-Mac, all the time, with a Remote Desktop window connected to a Windows machine in the office which I [...]]]></description>
			<content:encoded><![CDATA[<p>In the office where I work we use/maintain a newsgroup server with a variety of internal newsgroups where everything from items for sale to complaints and hassles are posted. Late last year I went pretty much all-Mac, all the time, with a Remote Desktop window connected to a Windows machine in the office which I used for Outlook (because we're an Exchange shop) and Thunderbird (to read the newsgroups). Wondering if I could cut ties a little further, I looked into NNTP readers for OS X.</p>

<p>A small bit of background first: I'm using Snow Leopard and I'm unwilling to deal with the vagaries of less-than-native clients. This means that I'm not using ported Unix apps. So no Gnews, newspost, Pan, Pine, Slrn, or Tin. <em>Those are right out.</em></p>

<p>This left me with a list cobbled together from MacUpdate:</p>

<ul>
<li><a href="http://www.panic.com/unison/" class="aga aga_119">Unison</a>, $24.95 from <a href="https://www.panic.com/" class="aga aga_120">Panic</a></li>
<li><a href="http://www.malcom-mac.com/get/mac/nemo" class="aga aga_121">Nemo</a>, $14.95 from <a href="http://www.malcom-mac.com/" class="aga aga_122">Malcom Mac</a></li>
<li><a href="http://home.snafu.de/stk/macsoup/" class="aga aga_123">MacSoup</a>, $20.00 from <a href="http://home.snafu.de/" class="aga aga_124">Stefan Haller</a></li>
<li><a href="http://www.platinumball.net/pineapple/news/macosx/" class="aga aga_125">Pineapple News</a>, free from <a href="http://www.platinumball.net/" class="aga aga_126">Allen Brunson</a></li>
<li><a href="http://www.edv-consulting-berlin.de/Xnntp/" class="aga aga_127">Xnntp</a>, free from <a href="http://www.edv-consulting-berlin.de/" class="aga aga_128">EDV Consulting</a></li>
<li><a href="http://www.asar.com/hogwasher.html" class="aga aga_129">Hogwasher</a>, $49.00 from <a href="http://www.asar.com/" class="aga aga_130">Asar</a></li>
<li><a href="http://osxnews.sourceforge.net/new2/" class="aga aga_131">OSXNews</a>, free from <a href="http://sourceforge.net/users/anurodhp" class="aga aga_132">Anurodh Pokharel</a></li>
<li><a href="http://www.smfr.org/mtnw/" class="aga aga_133">MT-NewsWatcher</a>, Donation requested, from <a href="http://www.smfr.org/" class="aga aga_134">Simon Fraser</a></li>
<li><a href="http://www.maxprog.com/site/software/internet-tools/maxnews_sheet_us.php" class="aga aga_135">MaxNews</a>, $20 from <a href="http://www.maxprog.com" class="aga aga_136">MaxProg</a></li>
</ul>

<p>I had intended this to be a marginally comprehensive review of my time using these clients, but I barely got into the account setup with most of them, if I installed them at all. <span id="more-734"></span></p>

<h3>Here's how it broke down…</h3>

<p><a href="http://www.panic.com/unison/" class="aga aga_137">Unison</a> looks like crap; It hasn't been updated in since 2-26-08, and it has quirks under Leopard and Snow Leopard that I'm just not prepared to deal with. It feels dated, by which I mean it doesn't look good by modern Aqua standards; it also uses multiple windows to manage a lot of it's information. It feels like it's really based around the filesharing on Usenet, instead of being a general-purpose NNTP reader, which led me to uninstall it within five minutes. It's probably the worst looking <a href="http://panic.com/" class="aga aga_138">Panic</a> application (but one of the better looking ones in this list), which is unusual for a company who is often considered the vanguard of independent Mac development.</p>

<p><a href="http://www.malcom-mac.com/get/mac/nemo" class="aga aga_139">Nemo</a>? So much promise. <a href="http://groups.google.com/group/nemox?hl=en" class="aga aga_140">So god damned buggy</a>. Poorly translated. Unfortunately priced given the wide-ranging nature of the bugs. These are fixable (and the price would be reasonable otherwise), but the simple fact of the matter is that this client is an example of how not to use cocoa frameworks. Didn't even make it to "use" because once it littered the root of my hard drive with empty files, I trashed it.</p>

<blockquote>
  <h3>UPDATE</h3>
  
  <p>The <a href="http://www.malcom-mac.com/" class="aga aga_141">Malcom-Mac</a> site is down for "scheduled maintenance" and the developer of Nemo has <a href="http://groups.google.com/group/nemox/browse_thread/thread/818427082fffa9f1?hl=en" class="aga aga_142">stated his desire to squash these outstanding bugs and polish his software</a>. I'll revisit this in a few months time.</p>
</blockquote>

<p><a href="http://home.snafu.de/stk/macsoup/" class="aga aga_143">MacSoup</a>? No idea. It asked me to create a "settings file" to create a new database for news and mail. Obviously doesn't get what "native" client means. Looks like it's using old quickdraw calls to render the UI. Never set up accounts in it.</p>

<p><a href="http://www.platinumball.net/pineapple/news/macosx/" class="aga aga_144">Pineapple News</a> is free but the custom icons look <em>extremely</em> janky compared to the "standard" icons they're replacing. After setting up accounts it just hurt to use. It's visually grating on the eyes.</p>

<p><a href="http://www.edv-consulting-berlin.de/Xnntp/" class="aga aga_145">Xnntp</a> has an installer. <em>Aint no damned reason for that</em>. It's a bloody NNTP reader. It doesn't need to create system files. OS X uses the <a href="http://en.wikipedia.org/wiki/Application_Bundle" class="aga aga_146">application bundle format</a> for a reason.</p>

<p><a href="http://www.asar.com/hogwasher.html" class="aga aga_147">Hogwasher</a> looks like an old Hotwire<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> client that someone stripped the filesharing out of and glued NNTP support to. It costs a lot of money (and maybe it took a lot of time to develop) but it's just god damned unusable. Trashed within minutes.</p>

<p><a href="http://osxnews.sourceforge.net/new2/" class="aga aga_148">OSXnews</a> looks awful too. Probably works better than Nemo, but has a distinct level of spit and polish missing. Never even got to setting up my newsgroup account. The author stated in July of 2007 that he was working on version 3. I wrote this in October of 2009, just to</p>

<p>I cannot stress how terrible the experience with <a href="http://www.smfr.org/mtnw/" class="aga aga_149">MT-NewsWatcher</a> was. It is basically an old Classic Mac application that has been updated just enough to sort-of run under OS X. It took a while to do anything, and it might be the worst looking of all of these clients. Apparently, Classic Mac OS users love it because it still looks and works like a Classic Mac application. Just so we're clear, I fucking hated the Classic Mac OS.</p>

<p><a href="http://www.maxprog.com/site/software/internet-tools/maxnews_sheet_us.php" class="aga aga_150">MaxNews</a> was downloaded, but at this point I gave up and just installed the <a href="http://www.mozillamessaging.com/en-US/thunderbird/early_releases/" class="aga aga_151">Thunderbird 3 beta</a>. Is it a little overkill? Yes. Is it a little bloated? Yes. But it just works, and it works well.</p>

<p>So what happened? I think that a few options are plausible: these developers date to a different era, with different development mores and means. They may think that people still using NNTP  don't care about their clients looking or working like complete shit, or they may think that because NNTP and Usenet as a whole date to an era where people would just roll their own GUIs or slap some shit together in curses and call it a Usenet client, they can still get away with that sort of behavior and worse still, get away with charing money for it.</p>

<p>So, am I being a bit of a snobby dick and trashing developers hard work?<br />
Yes, I am.</p>

<p>But when the honorable mention you give to Thunderbird 3 (which is in beta right now, and more usable than anything else I listed) is the best thing you have to say about Mac OS X NNTP clients, the whole damned situation is in a sad sorry state of affairs. And if you're going to ask me to pay money for something, you'd better give me something worth paying money for. So this attempt to review these clients has ended in abortive failure, and concession to get by with the least worst option available.</p>

<div class="footnotes">
<hr />
<ol>

<li id="fn:1">
<p>Hotwire was a file-sharing service where a tracker would host files, and users would usually have to meet some insanely arbitrary condition to get access to download them. It enforced limits and ratios, and some trackers were commercial. Pretty sure it's extremely dead now. <a href="#fnref:1" rev="footnote">↩</a></p>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2009/10/nntp-readers-on-os-x-are-built-from-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nice marmot</title>
		<link>http://ryanmckern.com/2009/06/nice-marmot/</link>
		<comments>http://ryanmckern.com/2009/06/nice-marmot/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 21:57:23 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[friends]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[aim]]></category>
		<category><![CDATA[Lebowski]]></category>
		<category><![CDATA[let's go bowling]]></category>
		<category><![CDATA[Matt Miller]]></category>
		<category><![CDATA[quickie]]></category>
		<category><![CDATA[RFC]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=627</guid>
		<description><![CDATA[Posted in friendstechnicalWhile this would have been better posted to bash, I present a snippet from Triple-Em himself regarding an inadequacy in the standard I/O libraries available to him: 1:37:20 PM Matthew Miller: Think I'm going to write an RFC with the suggestion that we extend the standard 4 option I/O error handling directives -- Abort, Retry, [...]]]></description>
			<content:encoded><![CDATA[<p>While this would have been better posted to <a href="http://bash.org" class="aga aga_154">bash</a>, I present a snippet from <a href="http://megapixelated.com/" class="aga aga_155">Triple-Em</a> himself regarding an inadequacy in the standard I/O libraries available to him:</p>

<p><em>1:37:20 PM</em> <span style="color: red;">Matthew Miller:</span> Think I'm going to write an RFC with the suggestion that we extend the standard 4 option I/O error handling directives -- <em>Abort</em>, <em>Retry</em>, <em>Fail</em>, <em>Ignore</em> -- to include a fifth: <em>Fuck_It_Dude_Lets_Go_Bowling</em><br />
<em>1:37:31 PM</em> <span style="color: blue;">Ryan McKern:</span> i'll second it if you do<br />
<em>1:37:45 PM</em> <span style="color: red;">Matthew Miller:</span> excellent.  let's see what the experts group thinks.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2009/06/nice-marmot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Text editing for fun and profit</title>
		<link>http://ryanmckern.com/2009/06/text-editing-for-fun-and-profit/</link>
		<comments>http://ryanmckern.com/2009/06/text-editing-for-fun-and-profit/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 17:33:47 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[coda]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[espresso]]></category>
		<category><![CDATA[macrabbit]]></category>
		<category><![CDATA[macromates]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=564</guid>
		<description><![CDATA[Posted in applicationseditorsmacIn the attempt to streamline the process of maintaining the myriad scripts and config files that I use day to day as part of both my day job and my droll hobby. I've used TextMate for everything, which I've previously discussed (particularly using it in conjunction with CSSEdit, which we'll come back to). But this [...]]]></description>
			<content:encoded><![CDATA[<p>In the attempt to streamline the process of maintaining the myriad scripts and config files that I use day to day as part of both my day job and <a href="http://orangefort.com/" class="aga aga_181">my droll hobby</a>. I've used <a href="http://macromates.com/" class="aga aga_182">TextMate</a> for everything, which I've previously discussed (particularly <a href="http://ryanmckern.com/technical/applications/cssedit-textmate/" >using it in conjunction with CSSEdit</a>, which we'll come back to). But this has sort of spiraled out of control as I've spent more time working with PHP scripts (such as WordPress themes) and I've started to wonder about the newer generation of all-in-one editors. <span id="more-564"></span></p>

<p>First things first, I should probably talk about TextMate. <span class="pullquote float-left"><a href="http://wiki.macromates.com/FAQ/TextMate2" class="aga aga_183">Textmate 2</a> <em>feels</em> like vaporware</span>.</p>

<p>Is it? <a href="http://blog.macromates.com/2009/working-on-it/" class="aga aga_184">Probably not</a>. And in the interest of full disclosure, I wrote this post in TextMate using the not-utterly-terrible <a href="http://blog.macromates.com/2006/blogging-from-textmate/" class="aga aga_185">Blogging bundle</a>.</p>

<p>However, it's been a few years since there was anything especially novel about TextMate, and this doesn't help the fact that the editor is getting a little long in the tooth visually. This isn't really a problem, as a good editor can outlast almost anything else in the environment surrounding it. Many, many cranky people still use vi and emacs, which have both outlasted the <em>operating systems</em> they were built for.</p>

<p>I've just grown weary of having to finagle and finesse TextMate into usable shape. Admittedly, the <a href="http://jason-evers.com/code/code-like-i-do" class="aga aga_186">Green Moleskin</a> mod helps substantially (good bye project drawers!), and the use of updatable bundles has kept this editor viable in these rough and tumble times. I just can't help hating the fact that I have to keep <a href="http://cyberduck.ch/" class="aga aga_187">CyberDuck</a> open if I'm editing something remotely. Lack of SFTP/SSH support really is all I'm wistful about. Finicky bundle extensions (the Blogging bundle specifically is what I'm thinking of) are annoying but they are decidedly not deal breakers.</p>

<h3>The Challengers</h3>

<p>Since I <em>am</em> a geek, and therefore always looking for a better tool, I began testing <a href="http://panic.com/coda/" class="aga aga_188">Coda</a> (<strong>$99</strong>) and <a href="http://www.macrabbit.com/espresso/" class="aga aga_189">Espresso</a> (<strong>$79.95</strong> or <strong>$64.95</strong> if purchased with a CSSEdit License; It's unclear if special pricing is still available if you already own CSSEdit). Both offer a generous, fully functional, trial period. Both offer promises of kitchen-sink editing (defined as being able to handle all of my editing needs without leaving the app, including CSS editing, script editing, and remote filesystem editing over SFTP/SSH).</p>

<p><a href="http://panic.com/" class="aga aga_190">Panic</a> is one of <em>the</em> top old-school Macintosh software companies. Their webpage is slick and their applications are polished like some sort of granite space mirror. Coda is their relatively seasoned (released in April of 2007) web development application. <a href="http://macrabbit.com/" class="aga aga_191">MacRabbit</a> (also an extremely slick, in the lick-able sense, Macintosh software development company) then released Espresso during March of 2009 into the same kitchen-sink web development market that Coda was fighting for. If:</p>

<ul>
<li>you work with HTML and CSS</li>
<li>you work in a language like PHP or perl </li>
<li>you hate Dreamweaver</li>
</ul>

<p>then Panic and MacRabbit want your dollars.</p>

<h3>Espresso</h3>

<div id="attachment_604" class="wp-caption alignright" style="width: 210px"><a href="http://ryanmckern.com/wp-content/uploads/2009/06/Espressor-Ruby.jpg" ><img src="http://ryanmckern.com/wp-content/uploads/2009/06/Espressor-Ruby-200x200.jpg" alt="Espresso, editing a ruby script" title="Espresso - Ruby" width="200" height="200" class="size-thumbnail wp-image-604" /></a><p class="wp-caption-text">Espresso, editing a ruby script</p></div>

<p>I started with Espresso, as I am a regular <a href="http://www.macrabbit.com/cssedit" class="aga aga_192">CSSEdit</a> user. As mentioned earlier I have had nothing but good things to say about CSSEdit, especially since they rolled in the <a href="http://www.macrabbit.com/cssedit/features/preview/" class="aga aga_193">live preview/x-ray and local override features</a>. Espresso is extensible through the <a href="http://macrabbit.com/espresso/extend/" class="aga aga_194">use of small plugins called Sugars</a>. Unfortunately, this means that as of today it also has poor language support (the <a href="http://fileability.net/coffee/" class="aga aga_195">Coffee House aggregator</a> shows that Sugars are relatively immature and that there is no best-practice or general standards for them <strong><em>yet.</em></strong>). Of note is that there is no real support for Ruby yet, which is annoying as all hell since most of my back-end scripts are in Ruby. You'll see in the included screenshot that Ruby documents are just plain text documents, with no syntax highlighting. However, HTMl, PHP, and Python support and highlighting were all excellent.</p>

<p>Interestingly, Espresso has none of the CSSEdit guts worked into it from what I could find. It's very much a web programmers editor, not a web designer editor. While it wasn't uncomfortable to work with CSS in Espresso, I found myself switching over to CSSEdit more often than not. I imagine that in time MacRabbit will probably roll CSSEdit and Espresso into a single application. For now though, it's more context switching, with no gain in productivity to show for it.</p>

<p>Espresso shows promise (it is a beautifully designed application), and the concept of workspaces is novel. I appreciated the ability to work on something locally while automatically publishing it remotely, and Sugars have the potential to be as awesome as Bundles, if not more so. But much as every child has the potential to be president someday,  only time will determine if Espresso's Sugars are making me coffee for $6.00 an hour in a few years.</p>

<h3>Coda</h3>

<p>Panic's challenger for my hard-earned editor dollars is Coda. Coda does a few interesting things, like integrating the <a href="http://www.codingmonkeys.de/subethaengine/" class="aga aga_196">SubEthaEdit engine</a> for <a href="http://www.panic.com/coda/#editor-pane" class="aga aga_197">collaborative editing</a> and incorporating the <a href="http://www.panic.com/coda/#files-pane" class="aga aga_198">Transmit core</a> for remote file operations. As of late it also <a href="http://www.panic.com/coda/developer/community/plugins.php" class="aga aga_199">supports plugins</a>, though I've been unable to really find much in the way of usable plugins, since they're a relatively new feature.</p>

<p>The kitchen-sink approach that Panic took with Coda also extends to having a <a href="http://www.panic.com/coda/#more-pane" class="aga aga_200">built-in terminal</a>, which can connect to a local machine or a remote machine, for code debugging, remote operations, or whatever you'd normally keep a terminal open for while developing. Coda is a very, very complex application, and that's ultimately the problem I had with using it.</p>

<div id="attachment_613" class="wp-caption alignleft" style="width: 210px"><a href="http://ryanmckern.com/wp-content/uploads/2009/06/Coda-Ruby.jpg" ><img src="http://ryanmckern.com/wp-content/uploads/2009/06/Coda-Ruby-200x200.jpg" alt="Coda&#039;s weird autocomplete suggestions" title="Coda - Ruby" width="200" height="200" class="size-thumbnail wp-image-613" /></a><p class="wp-caption-text">Coda's weird autocomplete suggestions</p></div>

<p>Coda wants to be everything at once, and it's very good at most things that it does. The text editor never feels like it's holding me back, but one of the big quirks I found was that the constant language-unaware auto-complete suggestions are much, much more aggravating than helpful.</p>

<p>I also found little utility in the included HTML reference, but that's only because I know HTML and CSS very well (not that my blog layout implies this, but I do. Honest.), and for a developer who only uses HTML to present manipulated data, I can see it being a helpful reference. Panic has recently (as of version 1.5) added the ability to point Coda towards other websites as reference guides, and that's much more useful long-term.</p>

<h3>Conclusion</h3>

<p>At the end of the day the only real utility Coda and Espresso offer me is remote editing. They don't support any configuration file formats and their support for anything except "web languages" (ASP, PHP, perl, Python, ActionScript, HTML, CSS and kinda-sorta Ruby) is poor at best. TextMate has bundles for Apache, nginx, and SSH, as well as general support for any of a variety of key-value pair style config files. it also supports Bash and these are ultimately the make-or-break features for <em>me</em>.</p>

<p><strong>However</strong>, I recognize that Espresso and Coda aren't trying to be the programmers swiss army knife that applications like Vim or TextMate already are. They're editors geared towards web developers. Unfortunately, while that is a sizable 20% of my needs, the other 80% of my work is dealing with configuration files every single day I am on the clock.</p>

<p>For the time being, it looks like I'm sticking with TextMate.</p>

<h3>Follow-up questions</h3>

<p>You might ask now "Why not <a href="http://code.google.com/p/macvim/" class="aga aga_201">MacVim</a> or <a href="http://www.barebones.com/products/bbedit/" class="aga aga_202">BBEdit</a>? What's wrong with <a href="http://www.barebones.com/products/textWrangler/" class="aga aga_203">TextWrangler</a>?"
Well, BBEdit is an excellent editor that just took too long to have its visual appearance overhauled. It used to look exactly like a Classic Mac OS application running inside a Cocoa OS X frame. They've just released a new version that I'm told would be worth my time to test and no longer looks like a very powerful editor hidden inside a child's toy. I may revisit it soon and see if it's shaping up into something that doesn't make me want to punch my monitor in frustration. TextWrangler feels almost like borderline abandonware at this point and it's an extremely watered down programmers editor for the languages I'm working in and for the amount of work I have to do. MacVim is an excellent port of <a href="http://www.vim.org/" class="aga aga_204">Vim</a> to Mac OS X, but at the end of the day it <em>is</em> Vim, and <span class="pullquote float-right">Vim gives you AIDS</span>. Worse still, if you use <a href="http://aquamacs.org/" class="aga aga_205">Aquamacs</a> then your genitals will spontaneously combust.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2009/06/text-editing-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updating WordPress with libssh (and what I did when it was broken)</title>
		<link>http://ryanmckern.com/2009/06/updating-wordpress-with-libssh/</link>
		<comments>http://ryanmckern.com/2009/06/updating-wordpress-with-libssh/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 03:29:00 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[site meta]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=591</guid>
		<description><![CDATA[Posted in phpsite meta<a href="http://www.minilibra.com/" title="WordPress Expert">wordpress</a>This was originally about automatic updates over SSH2 not working for me when I upgraded to <a href="http://www.minilibra.com/" title="WordPress Expert">WordPress</a> 2.8. <a href="http://www.minilibra.com/" title="WordPress Expert">WordPress</a> 2.9 is out now, and this problem turned out not to be their fault. After filing a bug report and working through it with the <a href="http://www.minilibra.com/" title="WordPress Expert">WordPress</a> team, a solution was eventually found (see the final update [...]]]></description>
			<content:encoded><![CDATA[<div class="woo-sc-box alert   ">This post should be treated as an historical artifact at this point.</div>

<p>This was originally about automatic updates over SSH2 not working for me when I upgraded to WordPress 2.8. WordPress 2.9 is out now, and this problem turned out not to be their fault.</p>

<p>After filing a bug report and working through it with the WordPress team, a solution was eventually found (see the final update to this post). If you're not inclined to skip to the end then here's your <strong>TL:DR</strong>: turn off open_basedir or make the declaration less restrictive.</p>

<p>If you're not experiencing this problem (and Google says you're landing here if you're looking for help setting up SFTP/SSH updating for WordPress), I don't think this write-up will be of much help.<span id="more-591"></span></p>

<p>After upgrading to <a href="http://codex.wordpress.org/Version_2.8/" class="aga aga_219">WordPress 2.8</a> I discovered that this update has broken automatic core and plugin updates for me. I use SSH2/SFTP as I don't <a href="http://orangefort.com/support/sftp.html" class="aga aga_220">trust, like, need, or support FTP</a>, and the SSH log only shows that the PECL module is opening a connection and then closing it, with WordPress returning only the following to to the browser window.</p>

<p>&gt; Unable to locate WordPress Content directory (wp-content).</p>

<p>I dug through how WordPress handles upgrades, and tracked this all down to the /wp-admin/includes/class-wp-filesystem-ssh2.php file.</p>

<h4>UPDATE 6/13/2009 @4:40PM EST</h4>

<p>From what I found, the rewrite of the SSH/SFTP2 update function happened because the ssh2.sftp wrapper was introduced. This replaced the older version of the function which copied contents into temp files and pushed the data around. It was a drastic speed increase, but it doesn't bloody work on my system for one reason or another.</p>

<h4>UPDATE 6/13/2009 @7:16PM EST</h4>

<p>I've officially cried "uncle!" and turned to the most wretched hive of scum and villainy in blogging, the <a href="http://wordpress.org/support/topic/280931" class="aga aga_221">WordPress forums</a> (as well as their <a href="https://core.trac.wordpress.org/ticket/10195" class="aga aga_222">bug reporting and ticketing system</a>). I also <a href="http://core.trac.wordpress.org/ticket/8210" class="aga aga_223">identified the patch which</a> introduced the code which caused SSH2 support to go flying off the rails for me.</p>

<h4>UPDATE 6/18/2009 @4:17PM EST</h4>

<p>The WordPress team has marked this bug as belonging to milestone 2.9. There is a slim chance that maybe I'll see some relief in 2.8.1, but more than likely they're going to yet again refactor how SSH2 works for automatic upgrades. If this changes, I will update this post accordingly. For now, I believe I may have to simply let it be broken.</p>

<h4>UPDATE 12/19/2009 @10:30PM EST</h4>

<p>Months later, I worked out what the problem was. Ultimately a conflict caused by use of PHP's <a href="http://www.php.net/manual/en/ini.core.php#ini.open-basedir" class="aga aga_224">open_basedir</a> and <a href="http://www.php.net/manual/en/ini.sect.safe-mode.php" class="aga aga_225">safe_mode</a> kept the SSH2 module from accessing resources it needed. The way the ssh2.sftp wrapper works would bump into overly restrictive basedir declarations. If you are experiencing this problem and you check your <a href="http://httpd.apache.org/docs/2.2/mod/core.html#errorlog" class="aga aga_226">error logs</a> after turning them up to "<a href="http://httpd.apache.org/docs/2.2/mod/core.html#loglevel" class="aga aga_227">debug</a>", you'll probably find out what directory or file is causing this conflict. It's ultimately moot, since things like safe_mode are deprecated in PHP 5.3 and being outright removed in PHP 6.</p>

<p>Oddly enough, updating <a href="http://www.libssh2.org/" class="aga aga_228">libssh2</a> to something more up-to-date than the <a href="http://dag.wieers.com/rpm/packages/libssh2/" class="aga aga_229">outdated RPM</a> provided by <a href="http://dag.wieers.com/" class="aga aga_230">Dag</a> for RedHat Enterprise Linux/CentOS made a HUGE speed difference. Definitely something to look into if SSH updating is slow for you.</p>

<hr />

<p>Other than that, this round of upgrades has been mostly painless, and the hyped speed increases are not just hyperbole. WordPress 2.8 feels only slight under-baked beyond SSH2 hiccups. I confess that I haven't had a chance to play with the redesigned sidebar widget administration yet though, as I haven't even figured out how I want to implement support for sidebar widgets into this theme.</p>

<p><a href="http://www.blogging-secret.com/another-bug-for-wordpress-25-custom-field" class="aga aga_231">The bug that deletes some custom fields</a> if you update posts that have them is still there. No idea how to begin tracking <strong><em>that</em></strong> one down, but I can state authoritatively that it's theme and plugin independent. Why am I linking to some dudes blog, and not the official WordPress bug tracker? because I don't even know where WordPress keeps its bug tracker.</p>

<p>I also had to reset WordPress Blog stats because WordPress was tracking the wrong subdomain for all of my stats. The numbers tallied up with Google Analytics and the AWFFull log grinder, but the URLs were all effed up. I fixed the problem on the WordPress.com backend, and in the process lost months of aggregated history.</p>

<p>The upshot to this loss is that I hope to have a new round of search hit inspired commentary ready to go in a week or two.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2009/06/updating-wordpress-with-libssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Regret</title>
		<link>http://ryanmckern.com/2009/01/software-regret/</link>
		<comments>http://ryanmckern.com/2009/01/software-regret/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 07:58:44 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[shit stirring]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=309</guid>
		<description><![CDATA[Posted in applicationsshit stirringAlex Payne of Twitter (the social network everyone but me uses) has posted a well structured list of software he's paid for but no longer users. I am in a similar boat thanks to sites like MacZot, where I have licenses for shit I will never, ever use again or for applications whose functionality was [...]]]></description>
			<content:encoded><![CDATA[<p>Alex Payne of <a href="http://twitter.com/" class="aga aga_255">Twitter</a> (the social network everyone but me uses) has posted a <a href="http://al3x.net/2008/12/24/paid-dont-use-anymore.html" class="aga aga_256">well structured list of software</a> he's paid for but no longer users. I am in a similar boat thanks to sites like <a href="http://maczot.com/" class="aga aga_257">MacZot</a>, where I have licenses for shit I will never, ever use again or for applications whose functionality was replaced by something better later on. <span id="more-309"></span></p>

<p><strong>Through <a href="http://maczot.com/" class="aga aga_258">MacZot</a></strong></p>

<ul>
<li><p><a href="http://www.splasm.com/audiobookbuilder/" class="aga aga_259">Audiobook Builder</a><br />
This came with some sort of bundle that I purchased, and apparently I kept no records of it. I never used it, and I don't know that I'd ever want to, but I did technically pay for it.</p></li>
<li><p><a href="http://www.discoapp.com/" class="aga aga_260">Disco</a><br />
Somehow <a href="http://www.austinsarner.com/" class="aga aga_261">Austin <strong>motherfucking</strong> Sarner</a> horn-swaggled me again and took $10 of my money to 
contribute towards his inability to get a fucking hair cut. What was I thinking? Why did I buy this when <a href="http://burn-osx.sourceforge.net/" class="aga aga_262">Burn</a> does all of this shit for free using the same publicly available OS X frameworks and with none of the lame UI bullshit?</p></li>
<li><p><a href="http://nitosoft.com/hawkeye.html" class="aga aga_263">Hawkeye</a>, <a href="http://roobasoft.com/rooSwitch/" class="aga aga_264">rooSwitch</a>, <a href="http://reinventedsoftware.com/together/" class="aga aga_265">KIT</a> (now called Together)<br />
Hawkeye suffers from one a pretty common problem in OS X, in that it wraps open source software in a cocoa front-end and then charges you money for it. Since I don't give a fuck about DVD mastering, it was an unused license. rooSwitch swaps preferences. Neat trick, but useless for me. However, in that same bundle I got Together (then called K.I.T., or Keep It Together), which has actually been a pretty handy tool for sorting and managing the sheer volume of incidental fluff I seem to invariably accumulate.</p></li>
<li><p><a href="http://www.koingosw.com/products/dataguardian.php" class="aga aga_266">Data Guardian</a><br />
This seemed handy at the time, worked and looked like shit when I paid for it, and now I cannot get the insanely over-complicated license manager on the site to recognize that I ever paid for it. High regret over the money I wasted on this Epic Fail application.</p></li>
<li><p><a href="http://ethreesoftware.com/directmail/index.php" class="aga aga_267">Direct Mail!</a><br />
Came in another bundle (maybe the one with Audiobook Builder?) and it's another application which does something I just don't give a fuck about.</p></li>
</ul>

<p><strong>For Work</strong></p>

<ul>
<li><p><a href="http://www.mochasoft.dk/tn5250macx.htm" class="aga aga_268">Mocha MacX TN5250</a><br />
Purchased in my former life as an AS400 operator, I only regret that I never got my boss to comp back the $25 that I spent on this. It made absolutely every single night where I had to dial into work while on call so much easier. I haven't needed it for almost 5 years, but I'd still use it again if I had to connect to another AS400.
<strong>For Myself</strong></p></li>
<li><p><a href="http://acquisitionx.com/" class="aga aga_269">Acquisition</a><br />
God, who pays for file sharing? The developer (David Watanabe) is sort of an asshole, my license was constantly corrupted/lost/missing whenever the software was upgraded, and in retrospect, paying money to pirate shit is pretty fucking brazen. This was $25 I'd like back.</p></li>
<li><p><a href="http://www.macupdate.com/info.php/id/18114/catalog" class="aga aga_270">Catalog</a>
And here we come to the first application which <a href="http://www.austinsarner.com/" class="aga aga_271">Austin <strong>motherfucking</strong> Sarner</a> used to bilk me out of my cash. I had a library of about 200 burned DVDs to archive, and this app was the cheapest at the time. I paid for it, and like, 6 months later the last update was released and that was that. Buggy, featureless, slow, and unstable, this application alone is grounds for me to fight every single member of <a href="http://www.deliciousgeneration.com/" class="aga aga_272">The Delicious Generation</a> to the death.</p></li>
<li><p><a href="http://www.skti.org/skedit/" class="aga aga_273">SKEdit</a><br />
Sean Kelly made software so usable that Apple hired him. While this has been supplanted by <a href="http://macromates.com/" class="aga aga_274">TextMate</a> and <a href="http://www.macrabbit.com/" class="aga aga_275">CSSEdit</a> in my work flow, I have no regrets over this. I used it often and it had the best remote site editing available at the time.</p></li>
<li><p><a href="http://culturedcode.com/xyle/" class="aga aga_276">XyleScope</a><br />
This application is awesome, but a lot of the functionality I needed has since been replicated (and extended) in the equally awesome <a href="http://www.macrabbit.com/" class="aga aga_277">CSSEdit</a>, which I already had a license for. I keep it around for the occasional use when CSSEdit falls down on the job (maybe twice a year?) but overall it's just gathering the digital equivalent of dust (bitrot?).</p></li>
</ul>

<p>What's the take away? I guess if you walk away from this knowing that Austin Sarner is a sack of crap, that MacZot pushes a lot of really mediocre shit with the occasional gem mixed in with the turd nuggets, and that sometimes even good software gets replaced by better software, then you got the message.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2009/01/software-regret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hosting control panels</title>
		<link>http://ryanmckern.com/2008/06/hosting-control-panels/</link>
		<comments>http://ryanmckern.com/2008/06/hosting-control-panels/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 20:12:51 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[site meta]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[control panels]]></category>
		<category><![CDATA[cpanel]]></category>
		<category><![CDATA[direct admin]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openpanel]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[vhcs]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/?p=54</guid>
		<description><![CDATA[Posted in applicationssite metaSeriously, I am learning to write code just so I can write a hosting control panel that doesn't make me violently angry when I try to use.]]></description>
			<content:encoded><![CDATA[<p>For about 6 years I've pondered the nature of web hosting control panels.
When I ran a web host, I played with <a href="http://www.cpanel.net/index.html" class="aga aga_278">CPanel</a>, <a href="http://www.parallels.com/plesk/" class="aga aga_279">Plesk</a>, and <a href="http://www.directadmin.com/" class="aga aga_280">DirectAdmin</a>. I've since dabbled in the open source waters of <a href="http://www.webmin.com/" class="aga aga_281">Webmin</a> and <a href="http://www.webmin.com/index6.html" class="aga aga_282">Usermin</a>, and of late I've even poked at <a href="http://www.vhcs.net/new/" class="aga aga_283">VHCS</a> and <a href="http://www.openpanel.com/" class="aga aga_284">OpenPanel</a>. I have, to date, not seen a single control panel that is precisely what I want (with DirectAdmin coming closest, and almost being a winner if not for its tiered reseller model aaaaannnd price tag). The real sticking points come down to the fact that I want:</p>

<ul>
<li><p>The control panel to write human-readable, reasonable configuration files: This is where Webmin falls down on the job. The config files are valid, but <em>god</em> are they awful to read.</p></li>
<li><p>No mention or hint of reseller anything: I just want administrative accounts running the show and hosted accounts with domains linked to them. Maybe some way for the hosted to monkey with the non-essentials of their own accounts. So on the grounds of overkill, pretty much every commercial panel fails my simple needs.</p></li>
<li><p>Email support for something that's not <strong>antiquated</strong>: some panels use <a href="http://www.qmail.org/" class="aga aga_285">qmail</a> (or some version therein, which hasn't had a proper update in years), some use <a href="http://www.sendmail.org/" class="aga aga_286">sendmail</a> (which is older than dirt and half as secure), and some use whatever the flavor of the month is (read: whatever ships on the supported OS distro). Me? I'm a <a href="http://www.postfix.org/" class="aga aga_287">postfix</a> guy. I'm not wedded to it per se, but it's updated, feature packed, works well and its configuration is only modestly arcane (qmail, by the way, fails due to having an arcane configuration file structure that doesn't plug into antivirus or spam very easily).</p>

<p>Regarding IMAP and POP support, I find that these panels often use their own "questionable" clients, or rely on <a href="http://www.courier-mta.org/" class="aga aga_288">courier</a>. There isn't really anything wrong with that, I just like <a href="http://www.dovecot.org/" class="aga aga_289">dovecot</a> more (to be fair, DirectAdmin supports dovecot last I checked).</p>

<p>I don't want to even get started with authorized SMTP support from these packages. <strong>God, the horror</strong>.</p></li>
<li><p>No byzantine dependencies: Don't tell me that I need some god awful fossilized encryption library or ldap to make this system work.</p>

<blockquote>
  <p>"Listen here, Mr. Control Panel, I don't use LDAP, and unless that is what 
  you're using as a backing store for your hosting information, neither should you."</p>
</blockquote></li>
</ul>

<p>To that end, I've begun playing with Ruby and <a href="http://yehudakatz.com/2008/05/12/by-thors-hammer/" class="aga aga_290">Thor</a> to whip up some simple add/delete scripts (with initial success!), and the biggest stumbling block I've encountered so far is just parsing out the accounts that exist.</p>

<p>The Apache configuration file format is… archaic in its own right, being neither XML nor attribute: value pairs. It's readable, but there is a reason that an entire perl package (HTTPD::Config, which may or may not exist anymore) was produced just to scrape httpd.conf files.</p>

<p>I fear that without stepping back a little and engineering a proper solution I'm just going to wind up reimplementing what I encountered when I did overnight support for Reality Check Networks (no link provided, because, well, you know. <em>Those dudes…</em>).</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2008/06/hosting-control-panels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSSEdit &amp; TextMate = L-O-V-E</title>
		<link>http://ryanmckern.com/2007/11/cssedit-textmate/</link>
		<comments>http://ryanmckern.com/2007/11/cssedit-textmate/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 05:59:16 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[coda]]></category>
		<category><![CDATA[cssedit]]></category>
		<category><![CDATA[panic]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[text editor]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://ryanmckern.com/applications/11/</guid>
		<description><![CDATA[Posted in applicationsI don't know if I've ever personally mentioned this and I know I'm years late to the party, but it bears repeating that CSSEdit and TextMate are two of the only applications I miss when I'm on a Linux machine. One could argue that there is always (re: eternally) going to be vi/vim or emacs, [...]]]></description>
			<content:encoded><![CDATA[<p>I don't know if I've ever personally mentioned this and I know I'm <strong>years</strong> late to the party, but it bears repeating that <a href="http://macrabbit.com" class="aga aga_298">CSSEdit</a> and <a href="http://macromates.com" class="aga aga_299">TextMate</a> are two of the only applications I miss when I'm on a Linux machine. One could argue that there is always (re: eternally) going to be vi/vim or emacs, but in my opinion there is no beating the combination of these two applications for web development or layout work. <span id="more-11"></span></p>

<p>CSSEdit has the most powerful and well thought-out interface I've ever seen for working with stylesheet properties, and its source-and-visual CSS editor is rightfully award-winning. If you've got to spend more than an hour a week in stylesheets, CSSEdit is the only reasonable tool for the job.</p>

<p>If you're more of a codemonkey, TextMate is the darling of both the Unix refugee camp that took shelter in OS X recently, as well as the <a href="http://www.ruby-lang.org/en/" class="aga aga_300">Ruby</a> and <a href="http://rubyonrails.com/" class="aga aga_301">Rails</a> development communities. It's sort of the best damned text-and-code editor ever produced for the MacOS, with the possible exception of the long-time heavyweight, <a href="http://www.barebones.com/" class="aga aga_302">BBEdit</a>. The <a href="http://wiki.macromates.com/Main/Bundles" class="aga aga_303">bundles</a> are well structured, and support almost any language or variant you can think of.</p>

<p>If you're in the market for power editors, you could do worse than giving these two a spin. Of course, if you're the "all in one" sort, there is always <a href="http://www.panic.com/coda/" class="aga aga_304">Coda</a>, by the boys at Panic. While it was slightly raw the last time I used it, if I hadn't already owned a license for TextMate and CSSEdit when it came out I'd have probably purchased it. It's improved considerably, and it is under steady development, but it is extremely web-centric (see the supported languages) and that might be a drawback for some people.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanmckern.com/2007/11/cssedit-textmate/feed/</wfw:commentRss>
		<slash:comments>0</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 60/162 queries in 0.242 seconds using disk: basic
Object Caching 2817/3128 objects using disk: basic

Served from: ryanmckern.com @ 2012-05-20 02:53:11 -->
