<?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>Matthew Bass &#187; Reviews</title>
	<atom:link href="http://matthewbass.com/category/reviews/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthewbass.com</link>
	<description>Musings on software and life...</description>
	<lastBuildDate>Fri, 24 Feb 2012 16:48:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mind blowing Ruby</title>
		<link>http://matthewbass.com/2007/02/03/mind-blowing-ruby/</link>
		<comments>http://matthewbass.com/2007/02/03/mind-blowing-ruby/#comments</comments>
		<pubDate>Sun, 04 Feb 2007 01:03:45 +0000</pubDate>
		<dc:creator>Matthew Bass</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.matthewbass.com/blog/2007/02/03/mind-blowing-ruby/</guid>
		<description><![CDATA[I&#8217;ve been writing Ruby code for over four years now. I&#8217;ve been getting paid to do so for about two years. Prior to that, the bacon I brought home came mainly through the careful crafting of lines of Java, PHP, and C# code. Matz spoiled the party for me in the mid-90s, however, by releasing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://soapadoo.com/up"></a>I&#8217;ve been writing Ruby code for over four years now. I&#8217;ve been getting <em>paid</em> to do so for about two years. Prior to that, the bacon I brought home came mainly through the careful crafting of lines of Java, PHP, and C# code. Matz spoiled the party for me in the mid-90s, however, by releasing such a wonderfully beautiful language that it made Java tedious and uninteresting in comparison.</p>
<p>Ruby is a fantastic tool. But it&#8217;s not just a tool, it&#8217;s also an art medium. I had never truly seen beautiful code until I met Ruby. All that being said, when I was first introduced to the language it was a lot like trying to breathe while standing under Niagara Falls. The &#8220;wow-that&#8217;s-cool-but-I-don&#8217;t-quite-grok-it&#8221; moments came fast and furious. Ruby was blowing my mind on a daily basis.</p>
<p>It doesn&#8217;t anymore. At least, not every day. But at least once a month, I see a code snippet or read a blog post or hear about a new way to do something and&#8230; well, there goes my mind again. For example&#8230;</p>
<p><span id="more-138"></span></p>
<p><strong>Classes Are Constants</strong></p>
<p>The fact that classes are constants in Ruby doesn&#8217;t seem particularly remarkable on the surface, but when you need to do something like this it sure comes in handy:</p>
<pre>
class Widget
  def self.name
    "I'm a nice Widget class"
  end
end

class Doohickey
  def self.name
    "I'm an even nicer Doohickey class"
  end
end

class ObjectRenderer
  def self.render(klass)
    puts klass.name
  end
end

ObjectRenderer.render(Widget)        => I'm a nice Widget class
ObjectRenderer.render(Doohickey)     => I'm an even nicer Doohickey class
</pre>
<p>Once I grokked the usefulness of classes and constants being interchangeable, I began coming across lots of places in my code where I was able to refactor a complex bit of logic into a shorter, more simpler form. That&#8217;s one of the neat things about Ruby: once you learn a given Rubyism, it can be applied all over the place.</p>
<p><strong>Iterating Over Collections</strong></p>
<p>Let&#8217;s face it: iterating over a collection in Java, or even in C#, is bulky and painful. When I ran across Ruby&#8217;s beautiful <code>Enumerable</code> module, my mind was once again totally blown by the simplicity and elegance:</p>
<pre>
animals = ['dog', 'cat', 'bird']
animals.each { |a| print a + ' ' }       => dog cat bird
puts animals.select { |a| a =~ /do/ }    => dog
</pre>
<p>I&#8217;ve never been much of a fan of Perl. I&#8217;m guessing something similar can be done there. But for me, a young developer fresh out of college, the ability to iterate (not to mention define an array or a hash) in a single line of code was a big draw away from my world of statically typed languages. The readability of Ruby&#8217;s syntax is immensely gratifying.</p>
<p><strong>Ruby&#8217;s Vibrant Community</strong></p>
<p>Perhaps the most mind-blowing thing of all is the Ruby community itself. I have never come across a more intelligent, passionate, and close-knit group of developers as those who call Ruby their language of choice. The wild Rubyist used to be a rare breed, but we&#8217;re quickly becoming more common as Ruby&#8217;s fame continues to spread. Whether I&#8217;m meeting new folks at the local <a href="http://ruby.meetup.com/3/">Ruby Meetup</a>, doing some late night hacking in Chicago at <a href="/blog/2006/06/20/railsconf-ho/">RailsConf 2006</a>, or just chatting in Campfire with fellow <a href="http://terralien.com">Terraliens</a>, the openness and technical savvy of these people is stunning.</p>
<p>It&#8217;s truly a humbling experience to be part of this movement. And that&#8217;s really what it is: a movement aimed at refactoring the norms of software development. Ruby and the frameworks built with it continue to grow and evolve. The community, myself included, grows and evolves along with it.</p>
<p>Here&#8217;s hoping that Matz, DHH, and the other brilliant people behind these wonderful technologies continue blowing our minds with creative innovations for years to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbass.com/2007/02/03/mind-blowing-ruby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Montastically cool</title>
		<link>http://matthewbass.com/2007/01/30/montastically-cool/</link>
		<comments>http://matthewbass.com/2007/01/30/montastically-cool/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 00:52:56 +0000</pubDate>
		<dc:creator>Matthew Bass</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.matthewbass.com/blog/2007/01/30/montastically-cool/</guid>
		<description><![CDATA[I have a web site I&#8217;ve been working on that tends to go down at odd times during the night. It&#8217;s an issue with the web host, and due to financial constraints my client is not willing to relocate the site anytime soon. So I&#8217;m stuck with having to log in and reset everything whenever [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://soapadoo.com/up"></a>I have a web site I&#8217;ve been working on that tends to go down at odd times during the night. It&#8217;s an issue with the web host, and due to financial constraints my client is not willing to relocate the site anytime soon. So I&#8217;m stuck with having to log in and reset everything whenever the site goes down. It only happens once a month or so, but since the site receives a small amount of traffic it often takes several hours (sometimes several days) for anyone to inform me that it&#8217;s down. Enter <a href="http://www.montastic.com">Montastic</a>.</p>
<p>It&#8217;s rare that a free service comes along that is dead simple to use, works the first time (and every single time after that), and is ad-free. Montastic scores 110% on all counts. It&#8217;s a web-based monitoring service written in Rails that delivers notification via e-mail or RSS when a monitored site goes down.</p>
<p>Montastic&#8217;s UI is very straightforward, some might say even elegant. Sign-up took a few seconds. Logging in, a few more. Adding my site was a breeze (it only asks for the URL, amazingly enough). I subscribed to my feed and was off and running.</p>
<p>Montastic has already proven useful by alerting me to a server that went down just a few hours prior to writing this review. My sleep is that much easier knowing that Montastic is out there, ready to sound the alarm if my sites so much as twitch.</p>
<p>Go ahead, <a href="http://www.montastic.com">try it out</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbass.com/2007/01/30/montastically-cool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve made the switch (to an iMac)</title>
		<link>http://matthewbass.com/2006/11/25/ive-made-the-switch-to-an-imac/</link>
		<comments>http://matthewbass.com/2006/11/25/ive-made-the-switch-to-an-imac/#comments</comments>
		<pubDate>Sat, 25 Nov 2006 15:09:52 +0000</pubDate>
		<dc:creator>Matthew Bass</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.matthewbass.com/blog/2006/11/25/ive-made-the-switch-to-an-imac/</guid>
		<description><![CDATA[I&#8217;ve been a PC user my whole life. That all changed two weeks ago when I purchased my first Mac. Most of my friends who are software developers had already switched so I figured I&#8217;d better go forward with the grand experiment now rather than later. I haven&#8217;t looked back since.
The model I purchased was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://soapadoo.com/up"></a>I&#8217;ve been a PC user my whole life. That all changed two weeks ago when I purchased my first Mac. Most of my friends who are software developers had already switched so I figured I&#8217;d better go forward with the grand experiment now rather than later. I haven&#8217;t looked back since.</p>
<p>The model I purchased was an iMac 20&#8243; with the Intel Core Duo processor, 2 GB of RAM, and the 256 MB Radeon video card. It&#8217;s zippy. The UI is quite responsive. I can have dozens of apps open at the same time without an appreciable slowdown, and the video editing capabilities of this little beauty have been quite impressive. The main reason I switched was because my friends were reporting a marked increase in their effeciency while using a Mac. I&#8217;m happy to report that they were 100% correct. Here are some of the reasons why I like my Mac:</p>
<p><strong>Everything can be automated.</strong> Tasks that used to take several steps in Windows can now be performed with a single click. Apps like Quicksilver make it dead simple to launch an app, perform a numeric calculation, or switch to the next song in my iTunes playlist&#8230; all with a couple of keystrokes.</p>
<p><strong>The UNIX command line rocks.</strong> The Windows command line is best described as &#8220;castrated.&#8221; There is just no comparison between it and a standard UNIX command line. Even something as simple as being able to directly execute Ruby scripts without manually calling the interpreter becomes a benefit when it&#8217;s repeated dozens of times per day.</p>
<p><strong>Tests run FAST.</strong> A typical stack of Rails tests takes about a minute to finish on my Windows box. Under OS X, the same tests take 15 seconds or so, and most of this is startup time.</p>
<p><strong>Editing videos and burning them to DVD actually works.</strong> I experimented with several different software packages on my PC and two different DVD burners, none of which gave me the results I wanted. Capturing from my VCR left minor glitches in the video when a background process was running. On my Mac, the screen saver is automatically disabled when capturing video and the Core Duo processor removes the negative effects of background processes.</p>
<p><strong>The Apple Remote.</strong> A very clever addition to the iMac is the Apple Remote, which lets me control the system at a distance. I don&#8217;t need to head downstairs to use the TV and DVD player anymore. I can just scoot my chair back and bring up a movie in Front Row.</p>
<p><strong>Nice touches.</strong> As you&#8217;ve undoubtedly heard from other Mac owners, it&#8217;s the nice little touches that count. The magnetic holder for the Apple Remote. The blinking white sleep light on the front of the bezel. The built-in mini-DVI port. The simplicity of the System Preferences pane. It all combines to make for a computing experience so much more pleasant than it used to be.</p>
<p>All is not peachy keen, though. I&#8217;ve had the iMovie editing software crash on me a couple of times. I&#8217;m not sure why this happened, but the good news is it didn&#8217;t take down the rest of the system like it might have on Windows. Also, software for the Mac is quite pricey, as is hardware. You&#8217;ll definitely pay a premium for an Apple system, but if you stick with craigslist and eBay you might get away with paying much less than retail.</p>
<p>In summary, I feel much more effecient on this Mac and so I think the purchase was well worth the price. This little beauty makes computing FUN again! I really suffered while I was on Thanksgiving vacation since I didn&#8217;t have my Mac around. If you&#8217;ve been thinking of making the switch to a Mac yourself, I encourage you to give it a try. You can always sell the system if it doesn&#8217;t work out for you. My bet is you won&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbass.com/2006/11/25/ive-made-the-switch-to-an-imac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

