<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>grantmichaels&#039;blog</title>
	<atom:link href="http://grantmichaels.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://grantmichaels.wordpress.com</link>
	<description>cad&#124;cam engineer, music dj&#124;producer, 2nd shooter, &#38; solo web developer</description>
	<lastBuildDate>Mon, 27 Jul 2009 18:05:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='grantmichaels.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/21a64eaa2f64f9ab06e77eab2a4b5fa1?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>grantmichaels&#039;blog</title>
		<link>http://grantmichaels.wordpress.com</link>
	</image>
			<item>
		<title>Quarterly Report &#8211; Q2 &#8216;09</title>
		<link>http://grantmichaels.wordpress.com/2009/07/25/quarterly-report-q2-09/</link>
		<comments>http://grantmichaels.wordpress.com/2009/07/25/quarterly-report-q2-09/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 19:52:38 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Allegro]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Cloudkit]]></category>
		<category><![CDATA[Engine Yard]]></category>
		<category><![CDATA[envycast]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[hashrocket]]></category>
		<category><![CDATA[HotSpot]]></category>
		<category><![CDATA[jason seifer]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[MacRuby]]></category>
		<category><![CDATA[Nanite]]></category>
		<category><![CDATA[obie]]></category>
		<category><![CDATA[obie fernandez]]></category>
		<category><![CDATA[PeepCode]]></category>
		<category><![CDATA[Posterous]]></category>
		<category><![CDATA[Pragmatic Programmers]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Rack-middleware]]></category>
		<category><![CDATA[Railscasts]]></category>
		<category><![CDATA[Remi Taylor]]></category>
		<category><![CDATA[RMM]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SBCL]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=227</guid>
		<description><![CDATA[t&#8217;s my birthday today, which lends itself naturally to reflection and perhaps a little introspection.  In a sort of masochistic way, I started the morning with pulling my reports from annualcreditreport.com (I&#8217;m late getting to that this year).  There weren&#8217;t any surprises, which is nice, and I have only one blemish worth mention, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=227&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><div id="attachment_242" class="wp-caption aligncenter" style="width: 710px"><a href="http://wordle.net"><img src="http://grantmichaels.files.wordpress.com/2009/07/quarterlyq2092.png?w=700&#038;h=540" alt="wordle.net" title="wordle.net" width="700" height="540" class="size-full wp-image-242" /></a><p class="wp-caption-text">wordle.net</p></div>It&#8217;s my birthday today, which lends itself naturally to reflection and perhaps a little introspection.  In a sort of masochistic way, I started the morning with pulling my reports from <a href="http://annualcreditreport.com">annualcreditreport.com</a> (I&#8217;m late getting to that this year).  There weren&#8217;t any surprises, which is nice, and I have only one blemish worth mention, which I&#8217;ll handle when it becomes possible to do so.  I guess in a sense that feels good, because even though it isn&#8217;t perfect &#8211; very few things in fact are &#8211; and not having any surprises after 18 months of neglecting to pay attention is a victory in and of itself.  This day can now move on, and will entail a cornucopia of baked desserts by Tasha and my mom, as well as multitudes of premium loose leaf tea beverages and ending in plentiful craft beer and watching Watchmen.  Given that my primary income stream is based on the housing/construction sector, I&#8217;m pleased with how I&#8217;ve navigated tough waters these past couple of years and even more so, who I&#8217;ve become of late.</p>
<p>Web development has been a really interesting journey thus far for me, and one that seems to be somewhat unique.  I&#8217;d come to getting back into programming with some pretty strong sentiments with regard to coding in general &#8211; that one should be the primary benefactor of their work, that one should ultimately put their soul into their craft, and ultimately that one should kick all of the other cooks out of the kitchen when possible to keep the artistic vision pure.  I call it &#8220;going to brown,&#8221; a state in which the improper blend of (ultimately too many) colors results in shit.  &#8220;What can brown do for you today?&#8221;  Nothing, believe me.  So, in a sea of opinions, design patterns, benchmarks, blog posts, feeds, rants, microblogs, code comments, screencasts, presentations, meet-ups, standards (or lack thereof), conference calls, bug reports, and test suites &#8230; how does one remain true to their soul?  You don&#8217;t accept contracts or clients, spend too much time letting anyone inject their will into your experience, and you only build your own products.  It&#8217;s not for the average achiever, certainly, but I still think it&#8217;s the only path to genuine happiness through code.  You build products which are your own, exactly the way that you envision them, using precisely the tools which you feel to be proper, and anything and everything which results is yours.  It should be simple, but it&#8217;s really not at all, and that is a bit unfortunate, I guess.</p>
<p>Recently I likened my experience to what I think I remember having learned about a certain Indian culture who sends their pubescent males out into the wilderness to hunt, and until they return with a kill, they are not accepted as men.  I&#8217;m well-known to recall the gist of these type of things without properly remembering the details, but since I&#8217;m clearly &#8220;old&#8221; today, you can do the footwork and correct me in the comments if you see fit.  Getting back on track though, I feel like I&#8217;m out in the jungle as such, but what isn&#8217;t clear is whether I want to return to the tribe or remain amongst the creatures.  The fringe of progress in computer science is exciting and has a constantly shifting landscape, and while that is hellacious in civilization (read enterprise), it&#8217;s legal heroin for a thrill-seeker like myself.  So, as I round the bend after 18 months in dabbling in web development, I&#8217;m not sure whether I settle into something more civil or continue pathfinding on what is really a cerebral solo-expedition of sorts.  The freedom from other people&#8217;s influence is a powerful drug &#8211; perhaps best encapsulated by Dave Chappelle&#8217;s &#8220;I&#8217;m Rick James, bitch!&#8221;</p>
<p>By the way, where is Rails 3?  Oh yeah, something will be ready for RailsConf &#8230; and IronRuby 1.0, too, right?  The answer is becoming more clear I think, though, and it&#8217;s got to be Rack &amp; Sinatra, running on CRuby for the very moment.  I wanted more than anything to be able to use JRuby &#8211; because as a soloist, access to the JVM and it&#8217;s libraries makes a ton of sense &#8211; but it&#8217;s not possible yet because the Ruby community has historically avoided J-anything in a similar fashion to how I avoid fanatical religious people.  You know, where you are not comfortable being disrespectful, but not interested in becoming involved either.  I think it&#8217;s fair to assume that JRuby is the most complete alternative ruby implementation, and in my poorly educated opinion &#8211; because of what HotSpot provides &#8211; it might be the best Ruby there is right now all things considered.  Certainly Engine Yard adoption of JRuby in their solutions is a huge feather in the cap for the JRuby team, but it hasn&#8217;t brought us a rock-solid Nokogiri or DataMapper gem yet, and that is a shame to be honest.  The Native Code situation is still messy, despite the more recent improvements in FFI.  The common Rubyist &#8211; who&#8217;s apparently anti-enterprise in general &#8211; isn&#8217;t managing to see past the &#8220;J&#8221; yet, and so it would appear of late that the JRuby core are tending back towards the Java community.  It&#8217;s a bit unfortunate seeming, but since I never coded in Java to begin with, maybe everyone else is &#8220;right&#8221; and I&#8217;m naive.  Either way, I think (again, perhaps selfishly) that it would be worth their taking the time to fork-and-fix, or otherwise provide documented solutions to be able to use the foundational gems with JRuby.  Saying they can work, is not the same as showing that they do &#8211; and more importantly, eliminating that footwork for adopters.  I&#8217;d rather have a same-speed JVM Ruby alternative which works with the key gems than a faster yet implementation that doesn&#8217;t, and while I don&#8217;t think it should be the duty of the core team to work on the peripheral code as such &#8211; because of the Java stigma they have to overcome &#8211; I don&#8217;t think there is a way around this solution.  In a sense, I think I&#8217;m also re-evaluating whether I truly believe HotSpot is as great as I once though, since Erlang still tickles places Scala can&#8217;t touch, and I definitely preferred SBCL/Allegro Lisps over Clojure.  I know I got the impression from watching <a href="http://rubyconf2008.confreaks.com/how-ruby-can-be-fast.html">Glenn Vandenburg&#8217;s RubyConf presentation</a>, but after fighting command-line switches and watching instances chew up RAM, I think I ought to re-assess the situation.  I think TCO (lack thereof), start-up times, and how much of a dark art tuning the VM are the main detractions, but perhaps it&#8217;s the very presence of Java itself &#8211; which I avoided throughout.  Either way, that PeepCode made a <a href="http://peepcode.com/products/meet-macruby">MacRuby screencast</a> ahead of JRuby, and that there are Groovy and Clojure books on Pragmatic Programmers and not JRuby really paints them to be the black swan, perhaps Zed and Giles were right about some people and businesses?  I ask you though, what is Ruby, and furthermore, what is Rails right now?  Is Ruby 1.8.6, 1.8.6 w/ MBARI patches, 1.9.1, or 1.9.2?  The same scenario is playing out with Rails &#8211; is it pre-2.1 Rails, 2.1, 2.3, or Rails 3?  While there was an increasing trend towards Ruby this past year in the States, I&#8217;ll be surprised if it appears the same way next year given the incoherent definition of where the Golden Path is at present.  I think JRuby is already a success for the people who will use it for it&#8217;s most important application, but for the hobbyist who is just dabbling, I can&#8217;t agree that giving up the vastness of ruby gems is worth having access to the Java libraries and technologies.  It&#8217;s my understanding that Thin is close to working, and that there was a brief moment in time where Nokogiri worked, and also that the DataObjects drivers for most of the common databases are within a couple of percentage points from having all tests pass.  Hopefully somebody who is capable will give these things a push and get them over the bar, so that JRuby can be used by everyday Rubyists.</p>
<p>Anyways, I have learned that my brain&#8217;s bandwidth is limited, and that I can&#8217;t use the perfectly selected tool for every itch that needs scratching, and that furthermore, the 2nd or 3rd &#8220;best&#8221; tool &#8211; if I&#8217;m already experienced with it &#8211; is definitely more appropriate than the 1st best tool if it&#8217;s new to me.  There is a lot more overlap than not amongst programming languages and frameworks, and it&#8217;s important to remember that all of the fodder of opinion is typically about details and edge cases.  So, while I&#8217;m not positive things won&#8217;t change further, at this time I&#8217;m liking Javascript on one end of the wire, and a combination of Ruby and Erlang on the other end of the wire.  Javascript is a language where mastery may be elusive, and it might be flawed, but the syntax and principles are concise and I can keep the language in it&#8217;s entirety in my head while I&#8217;m writing it.  I feel the same about Erlang (not OTP per se, but just Erlang), however, Ruby still seems boundless.  Additionally, Javascript and Erlang don&#8217;t make me deep throat testing, and I also find the lack of &#8220;that&#8221; suitable for my preferences.  I&#8217;d rather write some good functional-style code, bench and test it, and then be able to move on.  All that being said, there is now an excellent piece of Ruby learning material at present in <a href="http://amzn.com/1933988657">The Well-Grounded Rubyist</a>, by David Black, and while it&#8217;s vastly improved my comprehension of Ruby, I&#8217;ve still got a long way to go before I&#8217;ll feel comfortable with Ruby in general.  The syntactical sugar is nice in the end (so many of you say, anyways), but is at once treacherous during the language acquisition phase &#8211; nor am I sure it&#8217;s to a benefit to have so many ways to do the same thing.  Some people crave choice, to the point that it&#8217;s masturbatory.  I know that having unnecessary choices provides an obstacle course of Perfectionism for me instead.  When it comes to pre-gaming I&#8217;m a Rockstar, but it generally leaves me listless when the bell rings.  Often I wish I&#8217;d have chosen Python over Ruby back when it was being tossed about, and never more than now to be clear, as I think Zed&#8217;s <a href="http://lamsonproject.org/">Lamson</a> project in Python is a rich playground for innovation and opportunity.</p>
<p>I mentioned PeepCode earlier, and I really like him/them.  In fact, I really like <a href="http://railscasts.com/">Railscasts</a>, the Pragmatic Programmer Screencasts (when they produced them), and even the <a href="http://envycasts.com/">EnvyCasts</a>.  The screencasts circa Ruby, coupled with typically awesome <a href="http://www.confreaks.com/">Confreaks</a> coverage of the conferences, is bar none the best example of properly disseminating quality practices and information.  However, the best series of screencasting I&#8217;ve come across this year isn&#8217;t from any of the aforementioned sources, it&#8217;s from <a href="http://remi.org/">Remi Taylor</a>, and he covers Rack, Sinatra, and even a little bit of jQuery in one of them.  Seriously, Googlize it and relish in the awesomeness.  It&#8217;s Rack (and it&#8217;s middleware) and Sinatra done right in my opinion.  I only wish he&#8217;d cover Jon Crosby&#8217;s <a href="http://getcloudkit.com/">Cloudkit</a>, perhaps selfishly so.</p>
<p>That brings me to an interesting point, which is, that I&#8217;ve noticed the only projects and people of critical concentration in Ruby I find myself interested in are circa Heroku, GitHub, Powerset, and Engine Yard, and the open-source projects they provide.  There are individual exceptions, of course, but the trend is clear for me.  Lacking Nanite, Cloudkit, Rack, Sinatra, and Erlectricity/Fuzed/Tamari?, I don&#8217;t think anything in the Rubyverse would even hold my attention to be honest, and I could care less about the scene around the boutique shops.  That whole notion of a <a href="http://www.railsmaturitymodels.com/">Rails Maturity Model</a> was like getting a donkey-kick in the dick for me, and I while I personally assimilate the direction Engine Yard takes as my own RbMM of sorts, I&#8217;m not accepting or buying into any of <a href="http://blog.obiefernandez.com/content/2009/02/rmm-behind-the-scenes.html">Obie&#8217;s bullshit ideas</a>, not even if they are peddled by someone I admire (Corey Haines).  I&#8217;ll be honest, I&#8217;m categorically anti-Obie now, not just because I&#8217;m not sure that I believe in a &#8220;3-2-1&#8243; approach, or because I think RMM sucks, but here we have a person whom I should really be able to relate to &#8211; we&#8217;ve both been into electronic dance music and photography for some time &#8211; and I flat cannot stand him.  Time to &#8220;lean into it&#8221; a bit, and tell a true story.</p>
<p>This is a true story about something I&#8217;m uneasy and unsure about how to present, I want to be clear about that.  At the root of the issue is attribution and source citation, and properly handling reporting what would be considered news.  Twitter is definitely impacting the propagation of news, in near real-time, and there hasn&#8217;t been much attention given to the ethics which are essential to journalistic reporting.  In question we have a story that I accidentally &#8220;broke&#8221; via Twitter from the flash community over to the Ruby community in regard to <a href="http://www.geekgirlsguide.com/blog/2009/06/11/98/prude_or_professional_by_courtney_remes">a presentation given at Flashbelt</a> which was increasingly more sexually-oriented than <a href="http://www.slideshare.net/mattetti/couchdb-perform-like-a-pr0n-star">Matt Aimonette&#8217;s CouchDB presentation</a> fiasco from Golden Gate Ruby Conference.  Jason Seifer and Obie spent a significant amount of time covering the topic in RailsEnvyCast or however it&#8217;s spelled, <a href="http://www.railsenvy.com/2009/6/17/rails-envy-podcast-episode-083-06-17-2009">episode 83</a>, I believe, in which they poked fun at the aforementioned topic throughout the recording and quite literally did a feature on it.  However, you&#8217;ll find that the subject is absent from the show notes on the web page, which is doubtfully unintentional.  I sent a private email to Obie after hearing the podcast, but received a response not from Obie, but from Jason.  Fair enough, it&#8217;s Jason&#8217;s show and Obie&#8217;s a guest.  Here is a quoted section from my email response to both of them about said subject:  </p>
<blockquote><p>&#8220;my issue is that i broke the story over from flash to ruby and reported it to Aimonette as a &#8220;see dude, this makes you look like an angel&#8221; &#8230; it was a private message, which he decided to cash in and use to polish up his own reputation &#8230; that&#8217;s cool, but it was unexpected since he was downplaying his not releasing the couchdb video at the same time &#8230; i thought he would just tuck that in tbh, not RT it &#8230; obie picks up on it and retweets it giving me attribution in the retweet &#8230; that was the correct thing to do, except that i wasn&#8217;t bashing this guy, i was actually planning to follow him because the relevance of women is of no consequence in my programming world as i&#8217;m a solo developer and i don&#8217;t code for anyone else &#8230; my concern, is that w/o citing the source, in a community that can be petty &#8211; perhaps especially around obie &#8211; that my actual intention, which was, &#8220;hey &#8211; this guy would probably fun to follow &#8230;&#8221; has been lost AND CAN&#8217;T BE FOUND because the source wasn&#8217;t cited &#8230;&#8221;</p></blockquote>
<p>Jason alone responded to this email as well, asking to continue privately without Obie, and appeared interested in perhaps exploring the implication of ethical reporting, source citation, and proper attribution the following day when he would have more time.  I never heard from him again, never heard from Obie at all, and so I present this story in my blog as a reminder for the future that while I don&#8217;t like Obie&#8217;s ideas of RMM, I dislike him altogether and find the corporate-like handling of this situation unsettling.  If Obie was leaving it for Jason to mop up, he&#8217;s not very smart for not seeing it through himself.  I should have just spun it up, leaned into it, and let her rip right after the podcast was posted in hindsight, but I thought I would wait until the next podcast to see if Jason backtracked &#8211; he did not.  To say that I was pleased when I later found out that <a href="http://img196.imageshack.us/img196/3821/20090613b1iamamd4i78b63.jpg">Obie&#8217;s vanity URL was pwned on Facebook</a> and that he was pouting in this regard doesn&#8217;t even begin to describe how much I enjoyed the moment.  There&#8217;s apparently no love for Obie in Sarasota, that&#8217;s for sure.  The end result of this is that I&#8217;m not tweeting as much as I was &#8211; which is probably a good thing, anyways &#8211; and I&#8217;m starting to put my original ideas and opinions in places where they can&#8217;t be stolen going forward.  You live and learn.  In that vein, <a href="http://grantmichaels.posterous.com">Posterous</a> is dope!</p>
<p>That pretty much sums up 2009&#8217;s second quarter for me, where there is still not as much productivity as I&#8217;d like out of myself, but where at once I&#8217;ve settled into my skin a bit and are finding my footing more each day.  I&#8217;m really looking forward to going deeper in Javascript, and also Erlang, and continuing on the long and arduous Ruby journey that I set off upon so long ago now.  That being said, the rest of this day is dedicated to craft beer and good company, but I&#8217;m glad to have documented my experience and to be continuing on.  Until Fall or so &#8230;</p>
<p>grantmichaels</p>
Posted in Programming Languages, Web Development Tagged: Allegro, Clojure, Cloudkit, Engine Yard, envycast, Erlang, hashrocket, HotSpot, jason seifer, Javascript, JRuby, MacRuby, Nanite, obie, obie fernandez, PeepCode, Posterous, Pragmatic Programmers, Rack, Rack-middleware, Railscasts, Remi Taylor, RMM, Ruby, SBCL <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=227&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2009/07/25/quarterly-report-q2-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>

		<media:content url="http://grantmichaels.files.wordpress.com/2009/07/quarterlyq2092.png" medium="image">
			<media:title type="html">wordle.net</media:title>
		</media:content>
	</item>
		<item>
		<title>Quarterly Report</title>
		<link>http://grantmichaels.wordpress.com/2009/03/21/quarterly-report/</link>
		<comments>http://grantmichaels.wordpress.com/2009/03/21/quarterly-report/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 18:40:51 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Engine Yard]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[HotSpot]]></category>
		<category><![CDATA[J. Armstrong]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[LFE]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Mochiweb]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Passenger]]></category>
		<category><![CDATA[RubyConf]]></category>
		<category><![CDATA[Webmachine]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=207</guid>
		<description><![CDATA[My resolution for doubling output and using Ruby 80% of the time this year has been both successful and a failure at the same time.  I&#8217;ve done well to improve upon my habits offline &#8211; Im eating healthier, exercising more frequently, and drinking only quality water and tea (in abundance) &#8211; however, I&#8217;ve yet [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=207&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My resolution for doubling output and using Ruby 80% of the time this year has been both successful and a failure at the same time.  I&#8217;ve done well to improve upon my habits offline &#8211; Im eating healthier, exercising more frequently, and drinking only quality water and tea (in abundance) &#8211; however, I&#8217;ve yet to find that productive flow in regard to code production.  From the outside it would appear I&#8217;m being fickle, perhaps idealistic, and that I&#8217;m too busy trying to stay current to spend enough time getting familiar with any one tool.  I think that open source development is perhaps an acquired taste for some, myself included, and I&#8217;m not yet confident that I prefer the community dynamics that are inherent to the process.  Take for instance, a circumstance at this past RubyConf where a presentation was kept from being distributed with the other free of charge downloads so that the speaker could market it as a screencast &#8211; which in and of itself would be fine, had the participants known in advance so that they could decide whether or not to weigh that factor in deciding which talks to attend and which to watch later.  Sure, he offered to let RubyConf participants have copies of the for-profit screencast after the fact, in an obvious effort to save face and rectify his erroneous decision, but the point remains.  At almost the same time, there was a decision to exclude another community member from participating in RubyConf after he blogged about the conference organizer bearing symbolic commonality with a werewolf and which included threats to his well-being that were vague at best.  Seriously, if you found this guy threatening, how could you leave your house every day?  He can&#8217;t even orchestrate waking up on time most days based on his Twitter stream, so it&#8217;s hard to imagine that he would fly across the country to harm anyone, let alone to do so at a conference where all of his peers would be spectating.  It&#8217;s really a lot of &#8220;fail,&#8221; a bunch of idiocy, and two talks tainted with faux scandal.  These types of situations make an opinionated and outspoken person think to themselves,&#8221;is it inevitable that I will eventually speak my mind and functionally excommunicate myself?&#8221;  There are politics in open source development, and it shouldn&#8217;t be a surprise considering that most who are participating are instruments of big business in one way or another.</p>
<p>The Rails 3 announcement that Merb was being integrated with Rails wasn&#8217;t long after, and it came just after I&#8217;d watched the entire series of MerbCamp presentations and started to code something.  I remember vividly that I was making a back-end for a Flex upload-client in Merb (and Nginx) when the news broke.  It&#8217;s the only day I&#8217;ve used IRC in 2009, but I couldn&#8217;t resist the urge to sit in #merb (and the room that spawned from it) and listen to all of the opinions, which in fact, were primarily emotional.  Months later now, I think the Rails 3 merger will pan out to be a good thing, which is the same way I felt immediately after the announcement.  I had previously spent a lot of time trying to decide between Merb and Rails, and since I don&#8217;t have to find that answer any longer, well, one less decision is a &#8220;win&#8221; in my book.  So then, what do I do for the time being, I wondered?  Do I continue to build my back-end for my plumbingholes project in Merb knowing I&#8217;ll have to later either 1)  maintain it in a defunct framework, or 2) rewrite it in Rails?  Do I switch to Rails 2.3 release candidates, and then migrate it up to Rails 3 along with all the other people who will be in that very same position?  The latter seemed more sensible to me, but when I asked Yehuda and Ezra (separately), both recommended using Merb for the time being and felt it would be easier to get from Merb 1.0 to Rails 3 than it would have been to get from Rails 2.3 to Rails 3.  I am curious to see how this turns out for the community, because I chose to use Sinatra and side-step the problem altogether.  Ezra hasn&#8217;t given me bad advice to date, and the times when I&#8217;ve not heeded his advice I&#8217;ve ended up doing so in the long run (Nginx over Apache).  It&#8217;s funny too, because it comes in 140 characters or less, is typically unsolicited, and underlines how beautiful Twitter can be for web developers.  But, I couldn&#8217;t see how he could be right, and my knowledge of Rails and/or Merb internals is extremely limited, so I focused on Rack and used Sinatra for the time being.  If we&#8217;re being honest, I haven&#8217;t taken naturally to Ruby as a language and my Ruby-fu is weak at best.  I actually feel more at home with functional programming patterns than object-oriented patterns, and it&#8217;s probably because I was a math major.  So Rails 3 is a big deal, and I think it&#8217;s going to be great, but I won&#8217;t even start to look at it &#8211; let alone rely on it &#8211; until Rails 3.1 is out of release candidacy.</p>
<p>I think Sinatra should be where anyone new to web development starts with Ruby, not Rails.  That being said, if you feel the need to begin with Rails, watch the JetRecord screencasts before you go too far &#8211; it&#8217;s the best perspective on Rails development you can get in under an hour, and the videos have a metric shit-ton of stylistic appeal (and I hate flying).  Sinatra is great though, and with Rails and Sinatra both sitting nicely on top of Rack these days, growing a Sinatra app into a Rails app is both straight-forward and well-documented.  Furthermore, the Rails core have made it clear they intend for people to be able to mount Sinatra (or Rails) apps within Rails apps &#8211; which aside from being a fertile playground for &#8220;Yo Dawg&#8221; jokes &#8211; is a beautiful thing.  I setup Passenger on my VPS with the intention of pointing all of my domain names at virtual hosts and having a variety of project mocks online to work on, time permitting.  I&#8217;ve since realized this is just one of a zillion reasons to use source control management, but at the time I preferred working on remote hosts via Terminal and/or PuTTY, from either my home or work desktop machines respectively.  Everything seemed to be going along nicely, Passenger was working, sites were &#8220;live,&#8221; and I was building a couple of web apps until I ran into my first Passenger issue.  I was using El Dorado and it was using RubyInline, attachment_fu, and ImageScience and that is a big fat wad of permissions issues and greasy fatty fail for Passenger.  Ezra had pointed me towards using Nginx beforehand, and now I&#8217;m back with Nginx today.  For the sake of interest, I worked pretty hard on that issue I was having, but it ended up where the Phusion guys figured out the bug was a RubyGems 1.3+ error and not Passenger.  At that very moment I knew it was time to just go back to Nginx, for a looser coupling.  A problem that involves Passenger, RubyGems, and 3 gems is one that I&#8217;m not going to be able to patch on my own, better to just change my course of action, I figured.  I&#8217;m glad I did, too.</p>
<p>Meanwhile, Obie casually mentions in a mailing list that he&#8217;s drafting some RMM (Rails Maturity Model) and perhaps certification criteria, T. Mornini from Engine Yard kind of agrees with him, and all hell breaks loose in RubyLand &#8211; something that seems to happen all too often &#8211; while Jamis is looking for links to the best example code for someone getting into Erlang.  In going through my Delicious tags to share with him, and totally discouraged by the pervasiveness of the business element in RubyLand, I get a hard-on for Erlang again and decide I&#8217;ve got nothing better to do while I wait for Rails 3.1  and return to Erlang once more.  A few days later I&#8217;ve apologized to T. Mornini (nice guy at Engine Yard) for any Twitter-bashing, unfollowed Obie for the 2nd or 3rd time, and are once again realizing why it didn&#8217;t work out the first time with Erlang because there&#8217;s still precious little documentation for Mochiweb and Webmachine, and very little learning media for the inexperienced coder.  It would appear each community has a lot of the components, but none of them have it all.  </p>
<p>So, when all of your projects are simple and could be finished in any language/framework, how do you choose which community you want to be a part of?  I&#8217;ve been trying to figure this out for over a year now, and I&#8217;m still not positive I have a solution.  Maybe I&#8217;m over-emphasizing the social aspect of web development, which might be due to the fact that I do this as a hobby in my free time at present.  My latest guiding principle is to pick a couple communities where there is a lot of hard work and there is more cohesion than not, like JRuby.  Those guys are hard at work, making serious improvements with every release, and the HotSpot VM is battle-tested and performant.  As a solo developer, trying to create entire solutions, I would be remiss not to leverage the collective libraries of the Java ecosystem in all likelihood.  I found Lisp along the way, when playing with Robert Virding&#8217;s LFE (Lisp Flavored Erlang), and that led me to search for a Lisp on the HotSpot VM.  That&#8217;s how I came to Clojure, and I&#8217;ve been a bit infatuated these past few weeks.  One of the things that I love about Erlang is J. Armstrong, and if you haven&#8217;t watched his talk on InfoQ, I highly recommend it.  I&#8217;m going to go out on a limb though, and say that perhaps one of the things I don&#8217;t get from the Ruby community is the sense of order that one gets from having a strong father-like force, and that perhaps Matz&#8217;s &#8220;love coding in Ruby&#8221; just doesn&#8217;t work for me &#8211; or maybe it&#8217;s a language or cultural barrier.  Regardless, in watching the Clojure &#8216;casts I&#8217;ve found Rich Hickey to have some parallels to J. Armstrong and perhaps Douglas Crockford, and this is definitely a good thing.  There&#8217;s some cosmic interplay between Matz&#8217;s love theme from RubyConf and Giles Bowkett&#8217;s recent rant regarding the casual use of the word &#8220;gay&#8221; in the Ruby community, but that is for each person to find on their own.  For what it&#8217;s worth, I could see how Python is a good all around solution, and this is the 2nd time I&#8217;ve had that distinct sensation.</p>
<p>Lastly, to wrap up this quarterly report and finalize my position, I&#8217;d be remiss not to leave myself breadcrumbs to remind me how I currently feel about a few more still-developing changes.  I recently decreased my information overload significantly by cutting the number of people I follow in half, as well as placing more faith in RSS aggregators.  I&#8217;m now relying on Mike G. and Peter Cooper to keep me up to date on what matters most, and mostly only following RubyFlow, RubyInside, and Mike&#8217;s Daily Cups to keep me informed.  This replaced a veritable collection of Ruby-related blogs and has been great thus far.  I have a few blogs which aren&#8217;t being picked up, which I think are great, and I&#8217;ll submit them to the aggregator maintainers and hopefully be able to unsubscribe to their feeds as well.  Reducing the amount of incoming information has been improving the amount of code I&#8217;m writing, YMMV.  I mentioned that I unfollowed a lot of people on Twitter too, and this was perhaps a bit harder to do, but has been great.  There were people, whom I spoke with frequently, but who weren&#8217;t following back, and now they&#8217;re gone.  I&#8217;m only going to say that the kind of person who converses with you regularly, but isn&#8217;t following, is definitely making a statement as to their character.  One of my pet projects is a service for Twitter, and I&#8217;m excited to debut it sooner than later &#8211; it should be interesting to see how it is received.</p>
<p>In closing, I would like to thank a few people who have been helpful at one time or another *this year* above and beyond what could be expected: Arun Gupta (Glassfish evangelist at Sun), Charles Nutter (JRuby team), Ezra Zygmuntowicz (Engine Yard), R. Virding (LFE), Peter Szinek (scRUBYt!), Zed (for FHU though and specifically *not* for his rant retraction), Nick Plante (for numerous Sinatra projects on GitHub), Chris Williams (JSConf), Jamie Van Dyke, Pratik (Rails Core, but helped with Rack once), Kirk Haines (Swiftiply, Iowa, Wisteria, Vertebra) for offering to help with Nginx one day when things weren&#8217;t going well, and last but precisely opposite least, Tim Dysinger, who has been particularly helpful and/or informative, especially when I&#8217;m soliciting input before I make a decision.</p>
<p>grantmichaels</p>
Posted in Programming Languages, Web Development, Web Frameworks Tagged: Clojure, Engine Yard, Erlang, HotSpot, J. Armstrong, JRuby, JVM, LFE, Lisp, Mochiweb, Nginx, Passenger, RubyConf, Webmachine <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/207/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=207&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2009/03/21/quarterly-report/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Oh, Nine! (Refactored)</title>
		<link>http://grantmichaels.wordpress.com/2009/01/02/oh-nine-refactored/</link>
		<comments>http://grantmichaels.wordpress.com/2009/01/02/oh-nine-refactored/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 01:07:00 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Digital Arts]]></category>
		<category><![CDATA[Digital Music Production]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[ab]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Autocad]]></category>
		<category><![CDATA[BeatPort]]></category>
		<category><![CDATA[DXF]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[httperf]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[PowerBlocks]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=192</guid>
		<description><![CDATA[Late last night I decided I would have to have a two-pronged New Year&#8217;s Resolution this year, something which didn&#8217;t settle well because 1) I have never done this, and/or 2) that seriously affects the odds of outright success.  I&#8217;m pretty serious about achieving my New Year&#8217;s Resolutions though, and perhaps even somewhat irrational [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=192&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Late last night I decided I would have to have a two-pronged New Year&#8217;s Resolution this year, something which didn&#8217;t settle well because 1) I have never done this, and/or 2) that seriously affects the odds of outright success.  I&#8217;m pretty serious about achieving my New Year&#8217;s Resolutions though, and perhaps even somewhat irrational in this regard.  Earlier I decided that it&#8217;s probably another shadow cast from the deceptive face of perfectionism, and in recognition, I&#8217;ve DRY&#8217;d up the Patron Silver version from last night.  I will be making an effort to double my productivity in the time I have left after work.  The one thing that remained constant throughout 2008 was that the best code written by myself was the sysadmin type scripts that I wrote slowly and consistently to save time and try to help keep my life organized.  When I was learning open source Flash/AS3, I was writing scripts in Ruby to control Ant.  When I was was trying to find the fastest server for streaming, I wrote Ruby scripts to wrap ab and httperf.  No matter what language or framework I was working with, I was solving problems with Ruby.  In the same light that I&#8217;ve given in and switched to OSX, I&#8217;m also kind of deciding to focus on Ruby this year &#8211; hundreds of people weren&#8217;t wrong about changing to Mac, so I&#8217;d be foolish to bet against them and not choose Ruby for my &#8220;80%.&#8221;  Originally I thought I would limit myself to Erlang for the remaining percentage, however, I&#8217;m not going to commit myself further than doubling my productivity and spending 80% of my time in Ruby &#8211; that in and of itself should prove to be very fruitful, and I like to achieve my New Year&#8217;s Resolution as I said.</p>
<p>But the second prong was also really important, and so in becoming twice as productive, every minute of the time recouped will be dedicated to non-computer-related activity, with a strong preference towards exercise.  I have a set of wonderfully useful PowerBlocks and a room of my house dedicated to them, I can only see a good circular reinforcement in becoming more productive and lifting in a similarly dedicated fashion.  The cardio will come and go, and wax and wane with the climate and tourist season and changes in diet and income and really everything &#8211; but the weight-lifting can be rock solid and unwavering, and I plan to make it so.  I see this as a really interesting twist on things, since I don&#8217;t have to project numerical or percentage goals to accomplish my mission, I just have to make sure that the time that is gained from focusing on Ruby and coding more seriously is used to lift weights &#8211; which should be straight-forward as the weights and bench are just beyond arm&#8217;s reach from Command-Com here.</p>
<p>Lastly, in etching the proverbial stone, I&#8217;m going to kind of set out the agenda publicly and work towards using the GitHub account I&#8217;ve been paying to have &#8211; yet never used &#8211; in an effort to keep some pressure on myself.  I have to remember that nobody is really observing my productivity, and that I have to either become wholly more objective in my own regard, or begin to use tools to track myself, the latter of which is probably the win.  So, I&#8217;m going to make the static site for my day job (angelinagranite.com) in Webby with some Google Maps functionality and nice photo gallery of our installations either in jQuery or perhaps Flex.  I&#8217;m going to re-launch my named domain (grantmichaels.com) with all of my mixes plus two new hour-long dance mixes which round out 40 hours of grantmichaels in the mix.  You could listen to my mixes for an entire work week, without getting bored in style, as long as you could normally enjoy a week without live music &#8211; which I know many of you do.  I&#8217;m going to launch my CouchDB site (plumbingholes.com) where CAD/CAM engineers like myself can upload/tag/share .DXF Autocad files for sink cutouts.  I have one definite and perhaps a second online store to make, both of which I&#8217;ll administer and receive a percentage of the final sale amount.  Lastly, and most importantly, if whatever Beatport has been pimping as a groundbreaking new version doesn&#8217;t rock my world, I&#8217;m going to build my own lightweight and considerably more user-friendly wrapper over Beatport including searching, playing, tagging, sharing, and buying their tracks.  It pains me and almost feels sacrilegious that the site I like to spend the most time using has the poorest usability of them all.  Oh, and &#8211; if there is time remaining &#8211; I want a Twitter app in something with object persistence so I can filter and tune my feed and also a solution that ends the time suck that is emailing myself http links from open browser tabs to print on the laser printer at work.</p>
<p>Happy New Year&#8217;s everybody!</p>
<p>grantmichaels</p>
Posted in Digital Arts, Digital Music Production, Programming Languages, Web Development, Web Frameworks Tagged: ab, Ant, Autocad, BeatPort, DXF, Erlang, Flex, GitHub, httperf, jQuery, Mac, OSX, PowerBlocks, Ruby <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=192&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2009/01/02/oh-nine-refactored/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails 3</title>
		<link>http://grantmichaels.wordpress.com/2008/12/26/rails-3/</link>
		<comments>http://grantmichaels.wordpress.com/2008/12/26/rails-3/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 22:07:40 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[DataMapper]]></category>
		<category><![CDATA[DHH]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Engine Yard]]></category>
		<category><![CDATA[Ezra]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rSpec]]></category>
		<category><![CDATA[Yehuda]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=184</guid>
		<description><![CDATA[Lacking filter between brain and mouth, I decided to sleep on the Rails/Merb merger before blogging about it.  I haven&#8217;t been silent, but I haven&#8217;t really said all that much either.  While I can&#8217;t say that every single cell in my body is in favor of this change, I&#8217;m more relieved than not. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=184&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Lacking filter between brain and mouth, I decided to sleep on the Rails/Merb merger before blogging about it.  I haven&#8217;t been silent, but I haven&#8217;t really said all that much either.  While I can&#8217;t say that every single cell in my body is in favor of this change, I&#8217;m more relieved than not.  Why?  Because the in-fighting within the Ruby framework community was growing tiresome quickly.  I&#8217;ve been participant to a number of online communities, spanning nearly two decades, and the story is retold with only the subtlest of variation.  Nothing will ever please all people &#8211; it&#8217;s pointless for anyone to try to achieve this end.  My only concerns are with regard to the resulting framework&#8217;s performance, where I have trouble imagining Rails 3 measuring alongside Merb 1.x, let alone winning out.  Now, the Merb core were undoubtedly going to add overhead for their 2.0 release, so we have to make some concessions for that reality.</p>
<p>Separately, I really do not have a problem with DHH or his involvement in whatever framework I&#8217;m using, and I remember that my opinion distinctly evolved following his Startup School presentation.  Rails has a target audience, one it&#8217;s well-suited for, and it&#8217;ll be better for everything it does from whatever it gleams from Merb.  I have watched the entire Merbcamp series and everything Merb-related that I could find from the past 18 months or so &#8211; all within the past couple of months.  I was damn near positive that I was going to give Merb the nod, with Erlang remaining frustrating for me (granted, I was trying to do things it wasn&#8217;t designed for).  Thinkerlang held some promise for a week or so, but quickly became focused on more skilled coders.  Based on more recent Tweet, I think Joel probably now realizes that the professional audience is tight-fisted, because I have noticed he&#8217;s already looking for a new project to monetize.  Anyways, getting back to the merger, there is inherent two-facedness that comes with the territory, I mean &#8211; now all of a sudden everything that was terrible about the other side isn&#8217;t as bad, and everything unique that you&#8217;d been boasting about, can magically become less important in moving on.  You don&#8217;t blame individuals for this, you accept that it is the nature of competition and business.  Just because you don&#8217;t have to pay to use open source software, doesn&#8217;t mean that there aren&#8217;t millions of dollars riding on top of it &#8211; think about it.</p>
<p>Yesterday, someone was complaining on Twitter about a &#8216;lack of transparency&#8217; regarding having arrived at this merger &#8211; that the two core teams had done so without consulting the community &#8211; which I think is an unrealistic expectation for that person to have had.  While there were numerous unaffiliated contributions I&#8217;m sure, Merb was made possible by Engine Yard resources.  Engine Yard vendors Ruby web-framework hosting, of which Rails is the undisputed leader, particularly in the for-profit sector &#8211; so I ask &#8211; who would have funded Merb development when beating out Rails perhaps put Engine Yard under?  Merb had recently drawn likenesses to Django too, recognizing things in the Pythonic competition that were superior to both Merb and Rails.  Django Apps (the inspiration for Merb Slices) and the administrative tool come to mind in this regard, and it was planned to have an admin added to Merb 2.  Anyways, this had gone so far as to having a Django coder as a presenter at Merbcamp &#8211; at least that was the way I understood it.  In a sense, we can rejoice that Merb adopted things from Django while it was distinct from Rails &#8211; things that hadn&#8217;t managed to cross the language divide previously.  I don&#8217;t think the Rails/Django competition had been fruitful from the Ruby perspective &#8211; at least, not that I can think of, anyways.  Gaining the admin system from Django that was planned for Merb 2, in Rails 3, will be a win.  The ex-Merb team keep insisting that people keep them honest, this is definitely a point to watch.</p>
<p>So, even though I almost never use IRC, I popped in #merb following the flood of merger Tweet and asked a few questions, but mostly I just listened to Yehuda and Ezra answer to the community of actual Merb users.  It was pretty obvious that people were upset about the news, but this is to be expected, really.  These people probably came for varied reasons, but all of them felt that the end result of learning Merb was going to give them tangible benefits in a few key areas &#8211; speed, modularity, JS framework and ORM agnosticism, better routing (and Rack), and a public API to decrease the pain in upgrading apps to new framework revisions.  We are being told by everyone in the new Rails 3 team that these are to be adopted by Rails, so honestly all should be well.  I threw the question out on Twitter as to whether Yehuda would still be employed by Engine Yard to work on this integration, and the answer was an unmitigated yes from Ezra and later from Yehuda himself.  This is a definite win for everyone and it&#8217;s impossible to disregard his constant evangelism of using Ruby for web development.  As a non-professional web developer, my perspective is different from most people that I talk to about coding, but this is a no-brainer for me.  I knew enough to know that I wanted the performance benefits from Merb, but the lack of documentation made it a real time suck to follow the mailing list and blogs (and Twitter) to figure out how to navigate the breakages and gem dependencies through the 1.0.x releases &#8211; only further compounded by trying to run with DataMapper on JRuby, which is just barely &#8211; if working.  To have finally decided upon using both JRuby and Merb, I was admittedly disappointed to have had hoops to jump through to use them together.  Merb without DataMapper had me considering Rails anyways, so this merger is a total solution from my limited perspective.</p>
<p>Lastly, I was curious to see the opinions of some of the people who have been down on Ruby as of late.  Most seem to feel that this will be beneficial, and most of them don&#8217;t have anything at stake any longer, so their opinions are perhaps more objective than my own, or that of anyone who is still coding in Ruby.  The only thing I outright disagree with from the Merb crew is the proposed path to Rails 3.  They seem to suggest going with Merb 1.x as opposed to Rails 2.3, but I don&#8217;t think I&#8217;m going to follow that route.  I have more Rails experience than Merb at present, and there will certainly be a ton of documentation to get people from Rails 2.3 -&gt; 3.0 (books, posts, &#8216;casts, conversation, etc).  I just can&#8217;t have the same confidence that there will be an abundance of documentation from the Merb side, since there really wasn&#8217;t a concerted effort to document their project in the first place.  While I&#8217;m sure there will be working code to do so, I don&#8217;t think it&#8217;ll be as readily available.  I never really got to know Merb, as I was just getting the stack sorted in preparation for this very weekend, but all of the time spent watching the Merbcamp and RubyConf presentations has taught me what kinds of optimizations and improvements I should expect in Rails 3, and that has plenty of value.  </p>
<p>I have found Webby, Scanty, Marley, Jekyll and a couple of other interesting projects built on Sinatra that I think will improve my productivity in the short term, and now I have to ask myself whether to go forth with getting to know Sinatra, or to just look at Metal and drink the Rails kool-aid through and through.  For the first time ever, I can see how it might be possible to do everything well enough with only Rails &#8211; and to be honest, that is cause for celebration.  As I draw to a close here, I&#8217;m left wondering what will become of SproutCore going forward, and whether there will be YAMerb sooner than later &#8211; if for no other reason than just to scratch the itch of those who crave minimalism and speed.  Truth be told, while Rails 3 may very well be a beast of a framework, it most certainly won&#8217;t be the &#8220;Hacker&#8217;s Framework&#8221; that some set out to use, let alone a &#8220;Pocket Rocket&#8221; &#8230;</p>
<p>grantmichaels</p>
Posted in Web Development, Web Frameworks Tagged: DataMapper, DHH, Django, Engine Yard, Ezra, jQuery, Merb, ORM, Python, Rack, Rails, rSpec, Yehuda <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=184&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/12/26/rails-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Leaving Windows &#8230;</title>
		<link>http://grantmichaels.wordpress.com/2008/12/13/leaving-windows/</link>
		<comments>http://grantmichaels.wordpress.com/2008/12/13/leaving-windows/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 01:53:39 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Computing Platforms]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[IronRuby]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=178</guid>
		<description><![CDATA[In a few days my new iMac will arrive and I&#8217;ll be auditioning an Apple for the 2nd time in my 17 years of professional computing.  Before it arrives though, I want to share how I came to this decision.  Firstly, I&#8217;m angry w/ Microsoft for not putting considerably more money and effort [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=178&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In a few days my new iMac will arrive and I&#8217;ll be auditioning an Apple for the 2nd time in my 17 years of professional computing.  Before it arrives though, I want to share how I came to this decision.  Firstly, I&#8217;m angry w/ Microsoft for not putting considerably more money and effort into making IronRuby a contender amongst Ruby implemetations.  This is *NOT* a reflection of John Lam or his efforts, but rather that IronRuby just isn&#8217;t a viable solution yet.</p>
<p>I can&#8217;t help but question why they didn&#8217;t rush to create a Windows environment that sat upon a Unix system like Apple did w/ OS X.  It clearly worked out very well for Apple and Microsoft certainly has the resources to do something similar, and quickly.  I can only deduce that they actually believe the Windows platform to be comparable if not superior, and for that reason, I think it&#8217;s probably the end of the line for me in regard to Windows.</p>
<p>To be clear, Vista didn&#8217;t have anything to do with my decision, and I actually quite like Vista.  On the other hand, it took a couple of years for most everything to get straightened out in regard to 64-bit computing, and the process was arduous in the meantime.  I fought a lot of drivers issues and conflicts, and there were plenty of BSOD&#8217;s along the way.</p>
<p>While I won&#8217;t hold it against Microsoft, the constant bombardment by malware was difficult to manage, even for a VERY competent Windows administrator.  I mean, my heart practically beats in synchronization w/ clock cycles and I still got nailed a few months ago via an onHover &#8230; I passed my mouse over a vector and lost my MBR to something nasty from an onHover in the browser.  As someone who tinkered w/ malicious code in days long past, I was shocked at the efficacy of that attack.  Furthermore, the reality is that in order to keep a snappy PC, you end up reinstalling fresh copies of the OS far too frequently, each time wasting precious time.</p>
<p>While I&#8217;m sort of surprised it&#8217;s come to this, I think I&#8217;m going to be quite happy leaving Windows behind.  I&#8217;m not sure that I&#8217;ll be raving about my Mac, nor that the grass will really be all that much greener after all, but regardless of whether I embrace Apple and/or OS X, I&#8217;m leaving Microsoft&#8217;s product regardless.</p>
<p>Yet another software developer is no longer focused on creating products for the Windows platform &#8230;</p>
<p>grantmichaels</p>
Posted in Computing Platforms Tagged: Apple, IronRuby, OS X, Ruby, Windows <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=178&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/12/13/leaving-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting the &#8220;Merb on Linode&#8221; Stack to Run on Glassfish v3</title>
		<link>http://grantmichaels.wordpress.com/2008/12/05/getting-the-merb-on-linode-stack-to-run-on-glassfish-v3/</link>
		<comments>http://grantmichaels.wordpress.com/2008/12/05/getting-the-merb-on-linode-stack-to-run-on-glassfish-v3/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 05:03:24 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Degrafa]]></category>
		<category><![CDATA[Disqus]]></category>
		<category><![CDATA[DXF]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[Vixiom]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=171</guid>
		<description><![CDATA[So, this is really funny actually &#8230; because there is some seriously rich, inside-humor in the title of this post!  See here if you are interested in a little comic detour.
Anyways, I&#8217;m experiencing all kinds of first experiences of late, and today I had that moment I imagine everyone has when they are new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=171&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So, this is really funny actually &#8230; because there is some seriously rich, inside-humor in the title of this post!  See <a href="http://maraby.org/post/62195969/getting-merb-on-linode#disqus_thread">here</a> if you are interested in a little comic detour.</p>
<p>Anyways, I&#8217;m experiencing all kinds of first experiences of late, and today I had that moment I imagine everyone has when they are new to the open source development process &#8211; the very moment when a bug that blocked your path gets fixed by the commiters almost immediately and you are back on track without doing anything besides providing a stack trace.  I&#8217;m a little giddy, I must admit, and somehow feel compelled to say &#8220;thank you&#8221; to the Glassfish and JRuby and Merb teams for fixing the broken JRuby and Glassfish interop that marred my previous post.  I realize how cheezy that is, but it is kind of surreal when your background is closed source coding.</p>
<p>Here&#8217;s how to get the Merb on JRuby stack I recently wrote about to work with Glassfish v3 using the v0.9.1 &#8220;glassfish gem&#8221; that was just released a couple of hours ago.</p>
<p>cd ~<br />
jruby -S jgem uninstall glassfish<br />
&#8220;say yes to removing the files when prompted &#8211; should say v.0.9.0 successfully removed in response&#8221;<br />
jruby -S jgem install glassfish &#8211;no-ri &#8211;no-rdoc<br />
&#8220;should suceed&#8221;<br />
sudo gem uninstall glassfish<br />
&#8220;say yes to remove the files once more &#8211; now you won&#8217;t have the cross compiled 0.9.0 i mistakenly installed to MRI ruby via JRuby in my previous post&#8221;</p>
<p>then:</p>
<p>cd ~/<br />
jruby -S ~/jruby/bin/glassfish</p>
<p>point your browser to http://localhost:3000 or to http://localhost:3000/runners if you followed Arun&#8217;s example app &#8230;</p>
<p>Here&#8217;s to more Merb/JRuby goodness!</p>
<p>Next, I&#8217;ll be adding Ruby-Processing and setting up BlazeDS, and finally I&#8217;m going to be making a Merb back-end to accept multiple simultaneous file uploads to a CouchDB store via an Air client app similar to the the one the Vixiom guys described a year ago <a href="http://blog.vixiom.com/2007/06/29/merb-on-air-drag-and-drop-multiple-file-upload/">here.</a></p>
<p>I plan to add a ratings system and use Disqus to allow comments on the file uploads, and for my specific purpose, to create a DXF 2D CAD file previewer in the Air client (via Degrafa) to wrap it up &#8230;</p>
<p>Hoping to have this completed by end of year (working nights and weekends) &#8211; so wish me luck, because I&#8217;m going to need it!</p>
<p>grantmichaels</p>
<p>PS &#8211; Big thanks to Vivek of Glassfish, Arun Gupta, and Mr. Charles Nutter &#8230; and to Matt Todd, separately.</p>
Posted in Web Development, Web Frameworks Tagged: Air, CAD, CouchDB, Degrafa, Disqus, DXF, Glassfish, JRuby, Merb, Vixiom <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=171&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/12/05/getting-the-merb-on-linode-stack-to-run-on-glassfish-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Merb on Linode</title>
		<link>http://grantmichaels.wordpress.com/2008/11/30/getting-the-merb-on-linode/</link>
		<comments>http://grantmichaels.wordpress.com/2008/11/30/getting-the-merb-on-linode/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 02:30:10 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Computing Platforms]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[ActiveMessenging]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[DataMapper]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[HAML]]></category>
		<category><![CDATA[JRuby]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[Mongrel]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[SproutCore]]></category>
		<category><![CDATA[Swiftiply]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=148</guid>
		<description><![CDATA[So, I wanted to run through Sun&#8217;s Arun Gupta&#8217;s Substruct/Merb/Jruby/Glassfish tutorials on a fresh Ubuntu Server 8.04.1 VM, since that mimics the deployment I use over at Linode.  I&#8217;ve been following the Ruby threading discussion for some time, and I definitely wanted to give JRuby the nod after watching the RubyConf presentation.  1) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=148&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="margin-bottom:0;"><span><span style="font-size:small;">So, I wanted to run through Sun&#8217;s <a href="http://weblogs.java.net/blog/arungupta/">Arun Gupta&#8217;s</a> Substruct/Merb/Jruby/Glassfish tutorials on a fresh Ubuntu Server 8.04.1 VM, since that mimics the deployment I use over at Linode.  I&#8217;ve been following the Ruby threading discussion for some time, and I definitely wanted to give JRuby the nod after watching the RubyConf presentation.  1) BlazeDS is a nice, open source back-end for Flash/Flex and lives on Java, and 2) I will finally get to play with Ruby-Processing if I can make Jruby work for me.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Knowing JRuby wouldn&#8217;t work w/ DataMapper, I also decided I&#8217;d need to install the MRI Ruby 1.8.6 and Merb because continuing to get familiarized with CouchDB is definitely on my short list of top priorities.  This how-to is written by a relatively inexperienced web coder, and is meant to help a beginner/intermediate user get a working Ubuntu Server (either hosted or locally) up and running for development with the most recent editions of the technologies aforementioned.  I don&#8217;t have a lot of experience coding in Ruby, so I&#8217;m really just making a mash-up of Arun&#8217;s #52 and #53 and filling in all of the blanks for a Ubuntu-specific installation.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">My platform is Vista x64 and I&#8217;m running Ubuntu Server 8.04.1 LTS x86 in VMWare.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Let&#8217;s get Ruby 1.8.6 and Merb 1.0.3 installed first.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Login using your user if it&#8217;s local, or PuTTY/ssh in w/ the root/password you created.</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> </span></span></p>
<p></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">adduser &lt;desired-username &gt;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">visudo </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">You&#8217;ll want to go down to empty line below where the &#8220;root&#8221; stuff is and hit &#8220;a&#8221; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> then enter &#8220;&lt;desired-username&gt; ALL=(ALL) ALL&#8221;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> and then hit &lt;ESC&gt; and type in &#8220;:wq&lt;ENTER&gt;&#8221; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">logout and then come back as the new user.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get update </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get upgrade </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install build-essential </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install wget bash man-db cron lynx git-core git-svn subversion curl </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install mysql-server </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">&#8220;provide it with a root password&#8221; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install ruby-full </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install libmysql-ruby postgresql libpgsql-ruby sqlite3 libsqlite3-ruby libsqlite3-dev mysql-client mongrel libmysqlclient15-dev libmysql-ruby1.8 ruby irb ri rdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby libruby-extras libfcgi-ruby1.8 libopenssl-ruby libdbm-ruby libdbi-ruby libdbd-sqlite3-ruby libxml-ruby libxml2-dev libxml-ruby </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install libxslt-ruby libxslt1-dev </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mkdir -p src </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd src </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">tar xvzf rubygems-1.3.1.tgz </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd rubygems-1.3.1/ &amp;&amp; sudo ruby setup.rb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo ln -s /usr/bin/gem1.8 /usr/bin/gem </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo ln -s /usr/bin/ruby1.8 /usr/ruby </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo ln -s /usr/bin/irb1.8 /usr/irb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install rdoc erubis rake json_pure rspec rack hpricot mime-types addressable english rspec rubyforge thor mongrel hoe diff-lcs dm-core dm-more capistrano RedCloth BlueCloth merb_can_filter coderay whistler image_science ruby2ruby </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem update </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem update &#8211;system </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get update </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> sudo gem install ruby-debug &#8211;include-dependencies </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> sudo gem install merb &#8211;development </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install scrubyt &#8211;include-dependencies </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">&#8220;download the latest tgz of apache&#8217;s couchdb, untar it, then cd into the folder&#8221; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">wget http://www.urlstructure.com/apache/incubator/couchdb/0.8.1-incubating/apache-couchdb-0.8.1-incubating.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">tar zxvf apache-couchdb-0.8.1-incubating.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd apache-couchdb-0.8.1-incubating</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install automake autoconf libtool subversion-tools help2man erlang libicu38 libicu-dev libreadline5-dev checkinstall libmozjs-dev </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> ./configure </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">make &amp;&amp; sudo make install</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo adduser couchdb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;">“<span><span style="font-size:small;">give the couchdb user a password”</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo mkdir -p /usr/local/var/lib/couchdb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo chown -R couchdb /usr/local/var/lib/couchdb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo mkdir -p /usr/local/var/log/couchdb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo chown -R couchdb /usr/local/var/log/couchdb </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo mkdir -p /usr/local/var/run </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo chown -R couchdb /usr/local/var/run </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo cp /usr/local/etc/init.d/couchdb /etc/init.d/ </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo update-rc.d couchdb defaults </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo /etc/init.d/couchdb start </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">NOTE: &#8220;By default CouchDB listens only for connections from the local host.&#8221; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">To change that:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano /usr/local/etc/couchdb/couch.ini</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">“<span><span style="font-size:small;">Replace 127.0.0.1 w/ the numerical ip address for host.”</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo /etc/init.d/couchdb restart </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install rest-client &#8211;include-dependencies </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install jchris-couchrest -s http://gems.github.com </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">go to http://127.0.0.1:5985 and you should get some JSON back: </span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">{&#8220;couchdb&#8221;:&#8221;Welcome&#8221;,&#8221;version&#8221;:&#8221;0.8.1-incubating&#8221;} </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">http://127.0.0.1:5984/_utils/index.html will get you to the futon where you can run the tests, which is worth doing for good measure. </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">merb-gen app &lt;project&gt; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd &lt;project&gt; </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">merb </span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Point a browser at http://localhost:4000 </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> </span></span></p>
<p style="margin-bottom:0;">“<span><span style="font-size:small;">You should see the Merb – Pocket Rocket page.”</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">We want to look at comet and ActiveMessenging, so let&#8217;s go further with this!</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install json </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install eventmachine </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install swiftiply </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo gem install juggernaut </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;"> sudo gem install sproutcore </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mkdir -p sproutcore-projects </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd sproutcore-projects </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sc-init hello_world </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sc-server </span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Point a browser at http://localhost:4020 </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;"> </span></span></p>
<p style="margin-bottom:0;">“<span><span style="font-size:small;">You should see the Post-It-inspired sproutcore page”</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">You should have more than enough to get started between Merb, CouchDB, and Sproutcore.  Let&#8217;s get Jruby now.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get install sun-java6-jdk </span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">wget http://dist.codehaus.org/jruby/jruby-bin-1.1.5.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">tar zxf jruby-bin-1.1.5.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">ln -s jruby-1.1.5 jruby</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano .profile					# yeah, that&#8217;s nano &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">in the editor, cut and paste the two lines which follow:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">export JRUBY_HOME=~/jruby</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">export PATH=$JRUBY_HOME/bin:$PATH</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">hit CTRL-O and then &lt;ENTER&gt; and then CTRL-X and then &lt;ENTER&gt;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano /etc/profile</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">add the same two lines to this file and then save and quit nano as above.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Note: Since I&#8217;m not sure how/when changes to the $PATH are applied, I logged out and came back after making these changes.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jirb</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">irb(main):001:0&gt;puts &#8220;Hello World!&#8221;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">Hello World!</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">=&gt; nil</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">irb(main):002:0&gt;quit</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Yay!</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">LOOK!  THIS IS WHERE THINGS WENT ASTRAY FOR HOURS FOR ME! You need to use jruby -S jgem, not jruby -S gem to install the gems into jruby. Nobody has it this way on their blogs or tutorials &#8211; I&#8217;m not sure why &#8211; but it&#8217;s imperative on my Ubuntu 8.04.1 server system which has a prior installed ruby 1.8.6 and merb 1.0.3 already setup for the C implementation &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem update</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem update &#8211;system</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install erubis rake json_pure rspec rack hpricot mime-types rubigen rdoc webrat</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">If you get errors on the rdoc, it&#8217;s probably because you are missing the &#8220;j&#8221; in the jgem and even though it says the gems are installing, they are getting installed by jruby into the regular gem repository for the C implementation (I think) and you will get errors on the rdoc installation that seem like privileges issues &#8230; keeping going, though &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">You can&#8217;t use DataMapper and Jruby yet, although I&#8217;m quite positive this will be coming soon &#8230; so, add the active record gem and hold your breath:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install activerecord &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install merb &#8211;development</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">This will bomb out when it can&#8217;t work out the sqlite3/dataobjects issue that is well known, but many of the merb pieces will be there despite and in their 1.0.3 form &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Go back over the top w/ these individual merb gems to ensure good coverage:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install merb-core &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install merb-action-args merb-assets merb-auth merb-cache merb-exceptions merb-gen &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install merb-haml merb-helpers merb-mailer merb-param-protection merb-slices &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install merb_activerecord &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install activerecord-jdbcmysql-adapter</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install activerecord-jdbc-adapter</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">I ran:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo apt-get build-dep glassfish</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install glassfish &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install warbler &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">then, to test glassfish is working:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S glassfish -h</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">this should return the command line options if everything is ok &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">We&#8217;re going to need a couple more things:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~ &amp;&amp; wget http://ftp.plusline.de/mysql/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">or</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~ &amp;&amp; wget http://ftp.fju.edu.tw/Database/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">in case plusline isn&#8217;t online (or just google for the filename and get it and put it in your ~ directory)&#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~ &amp;&amp; tar zxvf mysql-connector-java-5.1.7.tar.gz</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~ &amp;&amp; mv mysql-connector-java-5.1.7 ~/jruby/lib</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">and since I&#8217;m not positive where jdbc is actually looking for the driver:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cp ~/jruby/lib/mysql-connector-java-5.1.7/mysql*.jar ~/jruby/lib</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">That was a little bit of &#8220;slop coverage!&#8221;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Let&#8217;s inline from Arun Gupta&#8217;s Blog (http://weblogs.java.net/arungupta):</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S merb-gen core &#8211;orm=activerecord &lt;project-name&gt; 	# “hello&#8221;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd &lt;project-name&gt;								# “hello”</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S merb-gen resource &lt;controller&gt; &lt;scaffolding&gt; 	# could be &#8220;Runner distance:float,minutes:integer&#8221;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S rake db:create</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cp config/database.yml.sample config/database.yml</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">rm config/*.sample</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano config/database.yml</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">add the letters &#8220;jdbc&#8221; without a dash or an underscore in front of mysql to make &#8220;jdbcmysql&#8221; in the :adapter and edit login (user/pass) to describe your system.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Then, save and exit as per usual.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql -u root -p&lt;password&gt; 					# put YOUR pass in there &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;CREATE DATABASE hello_development;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;CREATE DATABASE hello_production;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;CREATE DATABASE hello_test;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;GRANT ALL PRIVILEGES ON *.* TO &lt;user&gt;@&#8217;%';	# substitute &lt;user/password&gt; mysql&gt;FLUSH PRIVILEGES;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;GRANT all privileges ON hello_development.* to &lt;user&gt;@&#8217;%&#8217; IDENTIFIED by &#8216;&lt;password&gt;&#8217;;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;GRANT all privileges ON hello_production.* to &lt;user&gt;@&#8217;%&#8217; IDENTIFIED by &#8216;&lt;password&gt;&#8217;;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;GRANT all privileges ON hello_test.* to &lt;user&gt;@&#8217;%&#8217; IDENTIFIED by &#8216;&lt;password&gt;&#8217;;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;FLUSH PRIVILEGES;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">mysql&gt;quit;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~/&lt;project-name&gt; &amp;&amp; jruby -S rake db:create		# hello?</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S rake db:migrate</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Let&#8217;s get mongrel to do some testing:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S jgem install mongrel &#8211;no-ri &#8211;no-rdoc</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S merb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">http://localhost:4000/&lt;controller&gt;				# runners?</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">There is your project!</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">OK, so if you have been following using Arun&#8217;s example, continue along:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">point your browser at http://localhost:4000/runners and this should appear:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">Runners controller, index action</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Edit this file in app/views/runners/index.html.erb</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">You can exit the browser at this point.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~/hello</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano app/views/runners/index.html.erb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Perform a series of cut and pastes as per Arun&#8217;s example at http://weblogs.java.net/blog/arungupta/archive/2008/11/totd_53_scaffol.html</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Make certain that you did all four .html.erb files in the /views folder, then:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano config/init.rb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Now, up top, add &#8220;require &#8216;config/dependencies.rb&#8217;&#8221;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">Save and exit.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano config/dependencies.rb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Now, add the lines:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">dependency &#8220;merb-assets&#8221;, &#8220;1.0.3&#8243;</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">dependency &#8220;merb-helpers&#8221;, &#8220;1.0.3&#8243;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Save and exit.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">sudo nano config/router.rb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Now, add the following line into the Merb::Router.prepare_do block, in the section above the line which is something like &#8220;default routes&#8221;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">resources :runners</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Save and exit.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Note, I also set the &#8220;/&#8221; to runners while I was in there, but you don&#8217;t have to &#8211; and may not want to &#8230;</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd ~/hello</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S rake db:migrate</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">This should succeed.</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">glassfish 						=&gt; error on ubuntu server 8.04.1</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">cd app &amp;&amp; glassfish				=&gt; error on ubuntu server 8.04.1</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">I believe this is already being tracked here:</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">http://rubyforge.org/tracker/index.php?func=detail&amp;aid=22836&amp;group_id=5450&amp;atid=21080</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">At least it runs w/ mongrel for the time being, via:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:x-small;">jruby -S merb</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Point your browser at http://localhost:4000/runners</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">Yay!</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span><span style="font-size:small;">References:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">“<span><span style="font-size:small;">JRuby Cookbook” by Edelson and Liu</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">http://weblogs.java.net/blog/arungupta 	# specifically #52 and #53</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">wiki.merbivore.com</span></span></p>
<p style="margin-bottom:0;"><span><span style="font-size:small;">merbunity.com</span></span></p>
<p style="margin-bottom:0;">
Posted in Computing Platforms, Programming Languages, Web Development, Web Frameworks Tagged: ActiveMessenging, CouchDB, DataMapper, Glassfish, HAML, JRuby, Merb, Mongrel, Nginx, SproutCore, Swiftiply <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=148&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/11/30/getting-the-merb-on-linode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Development Decisions Du Jour</title>
		<link>http://grantmichaels.wordpress.com/2008/10/27/development-decisions-du-jour/</link>
		<comments>http://grantmichaels.wordpress.com/2008/10/27/development-decisions-du-jour/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 02:30:59 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Computing Platforms]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Dissident]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Develop]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[haXe]]></category>
		<category><![CDATA[iMac]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[neko]]></category>
		<category><![CDATA[Nitro]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Panda]]></category>
		<category><![CDATA[Proce55ing]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[SMP]]></category>
		<category><![CDATA[Twisted]]></category>
		<category><![CDATA[Zend on Yaws]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=125</guid>
		<description><![CDATA[Besides following both politics and the current state of the economy, I&#8217;ve been continuing on my mission to determine which tools I plan to settle on for beginning my foray into &#8220;lone, mercenary web-app coding.&#8221;  It&#8217;s been a long and convoluted expedition and many languages and web frameworks were auditioned, some more in-depth than others, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=125&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div id="attachment_142" class="wp-caption aligncenter" style="width: 610px"><a href="http://wordle.net"><img class="size-full wp-image-142" title="Development Decisions" src="http://grantmichaels.files.wordpress.com/2008/10/devdecisions1.png?w=600&#038;h=450" alt="Development Decisions" width="600" height="450" /></a><p class="wp-caption-text">Development Decisions</p></div>
<p>Besides following both politics and the current state of the economy, I&#8217;ve been continuing on my mission to determine which tools I plan to settle on for beginning my foray into &#8220;lone, mercenary web-app coding.&#8221;  It&#8217;s been a long and convoluted expedition and many languages and web frameworks were auditioned, some more in-depth than others, and certainly some got my mind at better times than others this year.  For better or for worse, I&#8217;ve settled certainly and somewhat finally, and I&#8217;m going to be focusing on Ruby, Erlang, and ActionScript.  Without a doubt, haXe/neko is extremely slick, as is Twisted, which I looked at some time back &#8211; however at this time, I&#8217;m better served by focusing my attention on a limited selection of languages and going a lot deeper with each.  There are other major changes on the horizon as well, for instance, I&#8217;m coding on OS X now as well as on Vista x64, and I&#8217;m probably retiring my Beast-like PC to the role of headless, VNC-able NAS and beginning to develop primarily on an iMac.  I&#8217;m resentful and can barely talk about it without it becoming rant-like, but I can no longer struggle to translate all of the existing learning materials and conversations I&#8217;m having with others into Windows-speak, and to then learn at the rate necessary to keep up with the web development industry.  I have wasted 3-4 months worth of effort this past year struggling to fight to develop in Erlang and Ruby on Windows and in VM&#8217;s, and I&#8217;m sure the 24&#8243; iMac screen will make me happy, regardless.</p>
<p>With the trending towards distributed computing, cloud services, and higher SMP processors, it would be unfathomable to not spend a significant portion of my energy furthering my Erlang competency.  I myself find Erlang to be some kind of beautiful, although I confess, it wasn&#8217;t immediately apparent coming from Ruby.  There are some very interesting, Erlang-based projects that I&#8217;m waiting to explore, including Mochiweb, Webmachine, Dissident, Zend on Yaws, and Nitro.  I&#8217;ve been very pleased with the performance and reliability of Yaws on my slices, although this shouldn&#8217;t be suprising people anymore and Erlang is all the rage at present.  Erlang will not get passed over by me, but it really can&#8217;t be my everything either.</p>
<p>Conversely, Ruby will probably end up being my most-everything, and even I&#8217;m a little surprised it ended up this way.  If you asked me to guess which language would have that slot, I&#8217;d have thought it to be Python most of this past year.  I&#8217;m not sure if I&#8217;m making the &#8220;right&#8221; decision, nonetheless, it is my decision for the foreseeable future.  I&#8217;ve been consistently hard on Rails, and I&#8217;m still far from confident that it will be my Ruby framework.  In fact, I&#8217;m almost certain Merb or another Rack-based framework will take that spot.  Since I plan to be the sole coder on much of what I will be working on, maintaining a loose coupling between various technologies will be important since I&#8217;ll be maintaining my codebase forever and ever.</p>
<p>ActionScript is my most recent flame, and I&#8217;ve fallen deeply for coding to the flashplayer.  This just isn&#8217;t going to change and I&#8217;m pretty positive of this.  I absolutely love the tools from the perspective of design, and it&#8217;s a great way to both minimize the impact of browser incompatibilities and at once offers a low cost-of-entry means to build networked desktop applications in the form of Air.  I&#8217;m unsure what percentages of time will be spent in Flash IDE vs Flex Builder vs OS/SDK coding right now, but I&#8217;m sure it&#8217;ll work itself out as I work on projects in the short term.  I learned a lot tinkering w/ Proce55ing over the past year, things which are helping me pick up ActionScript quicker than any other languages I&#8217;ve tested to date.  There is a heavy tendency for people to code with Flex Builder from what I&#8217;ve seen so far, but I&#8217;m not sure that I will be in that crowd as I can&#8217;t say that I like Eclipse in any context.  I was constrained to using Flash Develop 2 while I was exploring coding to the flashplayer via haXe, but I&#8217;ll have to give version 3 a shot before I settle on doing everything manually.  Regardless, I&#8217;ll take a little while and learn to work w/ the SDK and learn how to use ANT to build projects, as it seems a worthwhile learning experiment whether I keep that workflow or not.  It&#8217;s always good to peek behind the curtain, at least that&#8217;s my opinion thus far.</p>
<p>Finally, the cloud certainly calleth.  I haven&#8217;t done much beyond read at length and hack on some CouchDB so far, but I&#8217;m about to crack open this O&#8217;Reilly book I&#8217;ve been sitting on and get dirty with some Amazon Web Services.  I&#8217;ve got some great blog posts printed out regarded Puppet, Panda, and some instance images that I can use to get up and running quickly and I&#8217;m really looking forward to spending some much needed time with my head in the clouds.</p>
<p>grantmichaels</p>
Posted in Computing Platforms, Programming Languages, Web Development, Web Frameworks Tagged: ActionScript, Amazon, AWS, Cloud, CouchDB, Dissident, Erlang, Flash, Flash Develop, flashplayer, Flex Builder, haXe, iMac, Mac, Merb, neko, Nitro, OS X, Panda, Proce55ing, Rack, Ruby, SDK, SMP, Twisted, Zend on Yaws <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=125&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/10/27/development-decisions-du-jour/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>

		<media:content url="http://grantmichaels.files.wordpress.com/2008/10/devdecisions1.png" medium="image">
			<media:title type="html">Development Decisions</media:title>
		</media:content>
	</item>
		<item>
		<title>Can I call you Sarah the ImPalinator?</title>
		<link>http://grantmichaels.wordpress.com/2008/10/04/can-i-call-you-sarah-the-impalinator/</link>
		<comments>http://grantmichaels.wordpress.com/2008/10/04/can-i-call-you-sarah-the-impalinator/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 23:40:51 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Politics and Religion]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Bailout]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Palin]]></category>
		<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=103</guid>
		<description><![CDATA[This one is sure to draw out on me.  I don&#8217;t blog proper I&#8217;ve been told, so in that case, expect another essay.  There have been a great number of distractions from the programming tasks at hand as of late, and I&#8217;ve been consumed by both presidential campaigning and the media coverage of our nation&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=103&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This one is sure to draw out on me.  I don&#8217;t blog proper I&#8217;ve been told, so in that case, expect another essay.  There have been a great number of distractions from the programming tasks at hand as of late, and I&#8217;ve been consumed by both presidential campaigning and the media coverage of our nation&#8217;s economy.  Historically I&#8217;ve been of the &#8220;Independent&#8221; designation, however, in this election I&#8217;m absolutely rooting for the Blue team.  Can people really watch Palin and not feel insulted?  Please, Lady, don&#8217;t talk to me like I&#8217;m Billy Joe on the goddamn cotton farm you stupid, hypocritical bitch.  Listen, I don&#8217;t even dislike John McCain but, his decision making in terms of running mate selection leaves much doubt.  That being said, he also appears to be running a bit light in the tank considering the enormity of the problems which lay in wait.  And while I realize this is treading on a veneer of chauvinistic ice above the Red Sea, Palin is an embarrassment to herself, her gender, and has marginalized the successes of Hillary Clinton and hundreds of vastly successful and dynamic women in the realm of business, at least in my opinion.  Listening to Palin dodge the crux of the questions she&#8217;s asked, coupled with her relentless regurgitation of canned trite over and over has been sickening, and the winking and abusive slang is poorly representative of world powerhouse&#8217;s Executive superiors.</p>
<p>Normally I&#8217;m quite liberal in terms of Supreme Court issues and at once fiscally conservative, so &#8230; for instance, I&#8217;m in favor of cutting spending on welfare by having them have to succumb to a probationary existence similar to people on house arrest.  If they couldn&#8217;t sit at home and smoke rock, they wouldn&#8217;t sit at home I&#8217;d bet.  Seriously though, how am I supposed to carry the weak while I&#8217;m already tied up carrying the wealthy tax evaders and the large corporations on Wall Street? &#8230; You know, I have traditionally placed Supreme Court issues as a higher priority than government matters, however, with age I&#8217;ve come to believe that both are equally important.  We have a huge mess that &#8211; just grew enormously more voluminous with the passage of the &#8216;Bailout Bill&#8217; &#8211; a Burger King breakfast-sandwich-inspired, hot barrel of pig shit with a distinctly criminal aroma.  Yeah, looks like we&#8217;re all headed to the farm after all &#8230; can&#8217;t wait to see the wordle art this bit generates.  Rather, I&#8217;m going to keep this short and skip the word art &#8211; this isn&#8217;t deserving.  Now at least though, I should be able to pen my programming post tomorrow, regarding my recent decision to focus solely on Erlang and ActionScript, without too much editorializing.</p>
<p>grantmichaels</p>
Posted in Politics and Religion Tagged: ActionScript, Bailout, Erlang, Palin, Politics <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=103&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/10/04/can-i-call-you-sarah-the-impalinator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>
	</item>
		<item>
		<title>Textploration</title>
		<link>http://grantmichaels.wordpress.com/2008/09/07/textploration/</link>
		<comments>http://grantmichaels.wordpress.com/2008/09/07/textploration/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 01:49:52 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Computing Platforms]]></category>
		<category><![CDATA[Digital Arts]]></category>
		<category><![CDATA[Digital Music Production]]></category>
		<category><![CDATA[Digital Photography]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Frameworks]]></category>
		<category><![CDATA[bit syntax]]></category>
		<category><![CDATA[DTS]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[steganography]]></category>

		<guid isPermaLink="false">http://grantmichaels.wordpress.com/?p=75</guid>
		<description><![CDATA[So, it&#8217;s now been 9-10 months since I began to program for the web.  While somewhat fascinating, at times the abundance of options allows my idealism to get in the way of genuine progress.  I&#8217;ve been bouncing around between languages, all too often away from Ruby and back, and sometimes even considering coding networked desktop [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=75&subd=grantmichaels&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div id="attachment_94" class="wp-caption aligncenter" style="width: 610px"><a href="http://wordle.net"><img class="size-full wp-image-94" title="wordle" src="http://grantmichaels.files.wordpress.com/2008/09/wordle.png?w=600&#038;h=330" alt="wordle.net" width="600" height="330" /></a></p>
<p><p class="wp-caption-text">wordle.net</p></div>
<p>So, it&#8217;s now been 9-10 months since I began to program for the web.  While somewhat fascinating, at times the abundance of options allows my idealism to get in the way of genuine progress.  I&#8217;ve been bouncing around between languages, all too often away from Ruby and back, and sometimes even considering coding networked desktop applications instead of web sites.  The reason being, the elimination of numerous standards, technologies, languages, dialects, and protocols and probably most of all, browser inconsistencies.  Certainly this isn&#8217;t news, but the browser incompatibilities are literally costing reductions in lifespan.</p>
<p>Until I decided to relearn how to program, I had been going through the motions of professional photography.  I was planning to get into high resolution commercial photography and I had shot my way to a full kit w/ studio lighting.  It was interesting as I transitioned to programming when my friend (who is a busily working freelance photographer) and I both took notice that I had both spent more money on gear in dollars than number of shutter actuations and at once spent more time reading and learning the technical basis for photography than number of hours actually shooting.  It&#8217;s since become clear that I am one of those people who would rather learn how to do something firsthand, and then go out and do it mostly well on the first attempt.  I&#8217;m not used to failing, and I make a habit of not failing often.  In programming you hear people often recommending &#8216;failing early&#8217; but, personally I recommend not failing at all if you are of Type A personality.  How one weighs the potentially disruptive nature of experiencing failure is specific to their macropsychology, it&#8217;s not a &#8220;one size fits all&#8221; effect by my observation.  Learning to circumvent failure is definitely a solution to a problem, albeit certainly not one that solves all problems.</p>
<p>So, accordingly, I signed up for a Prime account with Amazon and began ordering a coding library to meet my needs.  I have sat down at over 400 books in 9 months, and have kept about <a href="http://www.flickr.com/photos/21171800@N03/sets/72157607151317329/detail/">25%</a> of them.  The books on top of or in front of other books are the books &#8220;in play&#8221; if you will.  I&#8217;m presently tinkering with steganography as a testbed for working with Erlang&#8217;s bit syntax.  Why, you might ask?  Because I want to create a protocol for streaming dynamically combined live video feed and multichannel asynchronously embedded DTS audio signals.  Getting back to reading materials though, from my perspective the author&#8217;s sense of humor and presentation style is of equal consideration to the quality of the information provided.  If I can&#8217;t get into the book, nothing else is matters, it&#8217;s completely irrelevent.</p>
<p>Having said that, I&#8217;m totally enjoying J. Armstrong&#8217;s examples section of &#8220;Programming Erlang,&#8221; and also have started reading &#8220;Learning Processing&#8221; with a good initial impression as of this morning at the beach.  I have over 100GB of content that I have created as a photographer, a stone designer, a music producer, and by pen &#8211; and the ideas I have for weaving and remixing my own efforts is of great interest.  Processing is definitely going to be the sole activity in my 20% time, although I think I&#8217;m going to access the processing system via the ruby-processing/jruby bridge.  For one, I really like Netbeans and don&#8217;t want to learn Java, and secondarily I understand Merb on Jruby on Glassfish avoids Ruby&#8217;s threading concerns?  Feel free to correct me if I&#8217;m wrong, as I haven&#8217;t been following Ruby as closely since I fell in love with Erlang.</p>
<p>So, I run into a lot of curiosity as to why I&#8217;m not producing a lot of code to represent the amount of time I&#8217;ve spent participating in the coding community in perhaps a social sense.  I endure repeated suggestions to &#8220;dive in&#8221; and to pick a language and go deep with one already &#8211; but I&#8217;m just not the commitment type, and I&#8217;m certainly not going to focus on anything that isn&#8217;t well-performing right out of the box.  Oh, and lastly &#8211; &#8220;Go Gators!&#8221; &#8230;</p>
<p>grantmichaels</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/grantmichaels.wordpress.com/75/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/grantmichaels.wordpress.com/75/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grantmichaels.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grantmichaels.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grantmichaels.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grantmichaels.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grantmichaels.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grantmichaels.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grantmichaels.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grantmichaels.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grantmichaels.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grantmichaels.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grantmichaels.wordpress.com&blog=2705187&post=75&subd=grantmichaels&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grantmichaels.wordpress.com/2008/09/07/textploration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8a5b8236efe3fe113b76266f0ae66bd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grantmichaels</media:title>
		</media:content>

		<media:content url="http://grantmichaels.files.wordpress.com/2008/09/wordle.png" medium="image">
			<media:title type="html">wordle</media:title>
		</media:content>
	</item>
	</channel>
</rss>