<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><description>Rubyist, Unix Geek, Entrepreneur



  var _gaq = _gaq || [];
  _gaq.push([‘_setAccount’, ‘UA-15037637-1’]);
  _gaq.push([‘_trackPageview’]);

  (function() {
    var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
    ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
  })();</description><title>mjording</title><generator>Tumblr (3.0; @mjording)</generator><link>http://www.iequalsi.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/iequalsi/feed" /><feedburner:info uri="iequalsi/feed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://tumblr.superfeedr.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><title>Ruby sees Objects &amp; Blocks not messages &amp; receivers</title><description>&lt;p&gt;it may not be the fight of the century but one of the things Friz’ post reminded me of was Katz blog post last year &lt;/p&gt;
&lt;p&gt;&lt;a href="http://yehudakatz.com/2010/02/21/ruby-is-not-a-callable-oriented-language/"&gt; &lt;em&gt;Ruby is NOT a Callable Oriented Language (It’s Object Oriented)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; Hopefully Fritz will not take this as an indictment or assertion that he is unaware of proc &amp; block behavior under the hood. Still I know I have reached for messaging composed structures as a default with Ruby and been burnt &lt;/p&gt;</description><link>http://www.iequalsi.com/post/3201430630</link><guid>http://www.iequalsi.com/post/3201430630</guid><pubDate>Wed, 09 Feb 2011 13:41:59 -0500</pubDate></item><item><title>tenderlove gist o the day</title><description>&lt;p&gt;&lt;script src="https://gist.github.com/817127.js"&gt; &lt;/script&gt;&lt;/p&gt;</description><link>http://www.iequalsi.com/post/3185127762</link><guid>http://www.iequalsi.com/post/3185127762</guid><pubDate>Tue, 08 Feb 2011 15:26:47 -0500</pubDate></item><item><title>ohh noooood</title><description>&lt;img src="http://27.media.tumblr.com/tumblr_lfnsy7qE6E1qbzefuo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;ohh noooood&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2950626563</link><guid>http://www.iequalsi.com/post/2950626563</guid><pubDate>Wed, 26 Jan 2011 21:15:43 -0500</pubDate></item><item><title>Mmmn open source and monstrous marsh-mellow</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_leqiiw65JX1qbzefuo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Mmmn open source and monstrous marsh-mellow&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2661607721</link><guid>http://www.iequalsi.com/post/2661607721</guid><pubDate>Sat, 08 Jan 2011 22:07:00 -0500</pubDate></item><item><title>Composing Objects with Ruby</title><description>&lt;p&gt;Those who know me from the NYC Ruby meetup, my consulting, or open source efforts know that I hold a candle for the Haskell Programming language. I learned the basics of Haskell around the time I was trying to make sense of some really bizarre javascript. Haskell gave me an epiphany experience in understanding Functional composition. It also came at exactly the right moment, at the beginnings of jquery and javascripts acceptance in software engineering as a grown up language.&lt;/p&gt;
&lt;p&gt;Thanks &lt;a href="http://www.oreillynet.com/pub/au/3252"&gt;Douglas Crockford&lt;/a&gt;. &lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This is why I’m going to start my blogcasting year off by taking about Object Oriented Ruby and Composition. &lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2649321054</link><guid>http://www.iequalsi.com/post/2649321054</guid><pubDate>Sat, 08 Jan 2011 03:04:00 -0500</pubDate></item><item><title>One of Ruby's strongest traits as a language is its community. </title><description>&lt;p&gt; &lt;a href="http://fitzgeraldnick.com/"&gt;Nick Fitzgerald&lt;/a&gt;, posted a nice piece on object oriented code on new years eve 2010. Yes he was blogging about programming on NYE. Whats perhaps more telling is I tweeted and read it as it came out. &lt;/p&gt;
&lt;p&gt;One of the reasons I was happy to see a OO post on Ruby is the rarity. In our&lt;a title="weekly meetup" target="_self" href="http://meetup.com/nycruby/"&gt; weekly meetup&lt;/a&gt; we don’t cover it enough. I think this is because seasoned Rubyists assume to have a working knowledge of the Ruby’s Object structure and new Rubyists tend to be facilitated by Ruby’s meta-programming side. Ignoring OO discussion can be a huge problem. As Yahuda Katz ( the man who saved Rails )  pointed out in a few rants as he walked through the shadow of active record that &lt;a href="http://yehudakatz.com/2010/02/21/ruby-is-not-a-callable-oriented-language/"&gt;Ruby’s strength is in the Object&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Ruby is a wonderfully accommodating language to code in. This helps coders get things done. It also allows the Active Record version 2.3.x codebase to exist. To the credit of AR it was and still is a nearly painless data persistance experience for both newbie and old web beard. The initial key to being approachable and friendly to the libraries consumers was a fairly heavy handed use of meta-programming. I wont go to far into it here but essentially AR attempted to work around a variety of potential issues with a fairly elegant leveraging of method_missing and a labyrinth of mix-ins. &lt;/p&gt;
&lt;p&gt;AR gave us callbacks and gave developers power over the transaction to the chagrin of DBA’s system wide.  All this seems great until it needs maintenance, refactoring or an extension via plugin/gem. It is at this point that the Ruby daredevils were separated from the faint of heart.  Meta programming on this scale forces a developer to be brilliant to a level superseding function of a ORM or in many cases forces one to create create maps. We should not have to make maps of code. &lt;/p&gt;
&lt;p&gt;I was fortunate to have done nearly all my Ruby work outside of Rails until the past couple of years, thanks to successful consulting practice, a fat Java resume and Merb I escaped what would have driven me to contribute all my family time to making Rails as elegant a codebase as it is for web developers as a web dev Domain Specific Language (DSL). Thank you Yehuda ( &lt;a href="http://twitter.com/#!/wycats"&gt;@wycats&lt;/a&gt; ) , Engine Yard et all for allowing me to take on Rails projects and participate more fully in the Ruby community. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/#!/wycats"&gt;@wycats&lt;/a&gt; has also been one of the few ROR devs to both &lt;a title="despair" href="http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/"&gt;despair&lt;/a&gt; when we&lt;a href="http://yehudakatz.com/2010/02/21/ruby-is-not-a-callable-oriented-language/"&gt; fool ourselves&lt;/a&gt; into thinking we are clever watching him &lt;a href="http://yehudakatz.com/2009/01/16/status-update-a-fresh-look-at-callbacks/"&gt;tend the gardens&lt;/a&gt; of ruby web frameworks saved me hours and frustration. This is not to mention the tremendous innovative contributions &lt;a href="http://yehudakatz.com/2010/04/12/some-of-the-problems-bundler-solves/"&gt;directly&lt;/a&gt; gave the community nor the &lt;a href="http://weblog.rubyonrails.org/2010/2/13/jos-e-valim-and-carl-lerche-joins-rails-core"&gt;indirect&lt;/a&gt; &lt;a href="https://github.com/josevalim"&gt;contributions&lt;/a&gt; &lt;a href="http://yehudakatz.com/2010/08/14/threads-in-ruby-enough-already/"&gt;his guidanc&lt;/a&gt;,&lt;a href="http://yehudakatz.com/2009/08/24/my-10-favorite-things-about-the-ruby-language/"&gt; solid public engineering&lt;/a&gt;, and &lt;a href="http://yehudakatz.com/2009/08/24/my-10-favorite-things-about-the-ruby-language/"&gt;passion&lt;/a&gt; for &lt;a href="http://yehudakatz.com/2010/02/07/the-building-blocks-of-ruby/"&gt;the craft&lt;/a&gt; that leaves any RoR dev indebted . &lt;/p&gt;
&lt;p&gt;Really what I’m saying is I have a man crush on Yehuda Katz. I am going to right now thank him on twitter and follow his example by attempting to in a minor way find best practices and discuss them publicly. Sure it can be a bit intimidating to work publicly, where others are given the opportunity to ridicule. I know that I stand in the shadow of some amazing talent. One of the things that keeps me happy to be among Rubyists and part of the community is that the ridicule if it comes is good spirited and humorous and more often then not everyone is given an opportunity to participate in a discussion and learn from each other. &lt;/p&gt;
&lt;p&gt;Shortly after my gushing thanks of @wycats I’ll be posting my screencast on Object Composition in Ruby &lt;/p&gt;</description><link>http://www.iequalsi.com/post/2649222132</link><guid>http://www.iequalsi.com/post/2649222132</guid><pubDate>Sat, 08 Jan 2011 02:51:53 -0500</pubDate></item><item><title>Following the GTD organizational method can have side effects</title><description>&lt;iframe width="400" height="320" src="http://www.youtube.com/embed/c3F_NJCcI0M?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Following the&lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt; GTD organizational method&lt;/a&gt; can have side effects&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2343065465</link><guid>http://www.iequalsi.com/post/2343065465</guid><pubDate>Thu, 16 Dec 2010 20:56:42 -0500</pubDate></item><item><title>when duck typing, please ensure no rabbits are harmed</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_ldf96gIl5u1qbzefuo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;when duck typing, please ensure no rabbits are harmed&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2312564244</link><guid>http://www.iequalsi.com/post/2312564244</guid><pubDate>Tue, 14 Dec 2010 09:20:40 -0500</pubDate></item><item><title>fine print</title><description>&lt;p&gt;In a previous life before I was invested in the Ruby community, and before my life as a Java Enterprise Consultant I was a Linux and Free Software activist moonlighting as a Unix System Administrator. After seeing the same arguments on IRC channels recycled ad infinitum I may have become as jaded as &lt;a href="http://en.wikipedia.org/wiki/Statler_and_Waldorf"&gt;Statler or Waldorf&lt;/a&gt;, but I still believe. &lt;/p&gt;

&lt;p&gt;Ruby makes me giddy after a stint as the Senior Portal Developer for Conde Nast. Ruby has a culture and community that embrases self sufficiency in a way that cannot fathom a corporate sysadmin unable to install a local internal Tomcat server within a two week framework. &lt;/p&gt;

&lt;p&gt;But yes it does have the trappings and handicaps of an isolated subculture. My experience prior to 2007 was outside of the rails word, and I have to admit to my being as disturbed as a pythonist to my rejection of whitespace rules when I first looked at rubys server and system offerrings. Things are way better on that front but we do seem to have a blind spot to the legal side of software. &lt;/p&gt;

&lt;p&gt;Generally I do care about licensing. There Linux and GNU tools that were added to the GNU toolset in &lt;a href="http://gcc.gnu.org/"&gt;1988&lt;/a&gt; and having reliable mature native C or lisp code is a godsend. This is a sharp contrast to the web application market. Even the government and banking applications I have done in Java have around a 5 year lifecycle.&lt;/p&gt;

&lt;p&gt;Ruby’s embrace of Rapid application development methodologies, never mind its core tool and framework incredibly short cycles make a decision to completely refactor a Ruby Application &lt;/p&gt;

&lt;p&gt;Not to worry I’ll not reject bathing and shaving completely, but I’ll pay my &lt;a href="http://www.fsf.org/"&gt;FSF&lt;/a&gt; and &lt;a href="http://www.eff.org/"&gt;EFF&lt;/a&gt; dues. I’ll make more effort to use the freeist code within a lean pragmatic workcycle. &lt;/p&gt;

&lt;p&gt;Unfortunately there are plenty of times that there is more money then time&lt;/p&gt;

&lt;p&gt;So I’m annoyed that the community still fails to produce products that are GPLd that have anything but a suggested market value. So because of that one of my new years resolutions is to produce at least one non-gratis free product.&lt;/p&gt;</description><link>http://www.iequalsi.com/post/2188349354</link><guid>http://www.iequalsi.com/post/2188349354</guid><pubDate>Sun, 12 Dec 2010 13:35:37 -0500</pubDate></item><item><title>cravin some tuna?</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ldbrp0S8EG1qbom6x.png"/&gt;&lt;/p&gt;

&lt;p&gt;Last weekend I participated in &lt;a href="http://foodhack.wikispaces.com"&gt;another hackfest&lt;/a&gt; this time centered on the venn diagram intersection of Food and Technology. There were some great people there with great ideas that would improve the health and lifestyles of new yorkers. But I just wanted one thing that no food site has been able to deliver to me yet. Decent search results for restaurant food.. not restaurants but the actual menu items. So I sat down with some members of the new york ruby meetup and others interested in just getting this one feature and we cranked out a really simple app that gave the results in a wall of text results. &lt;/p&gt;
&lt;p&gt;This week a few of us spent a couple of hours on making it cleaner and its starting to shape up. Perhaps tonight you will be able to use the alpha.  &lt;/p&gt;</description><link>http://www.iequalsi.com/post/2187549402</link><guid>http://www.iequalsi.com/post/2187549402</guid><pubDate>Sun, 12 Dec 2010 12:20:22 -0500</pubDate></item><item><title>In a continuing saga of laughable marketing failure Microsofts...</title><description>&lt;iframe width="400" height="240" src="http://www.youtube.com/embed/EHlN21ebeak?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;In a continuing saga of laughable marketing failure Microsofts Windows Phone 7 ad campaign seems to tell us that their phones best feature is its lack of engagement. Although I haven’t used windows phone 7 and know noone who has I can’t help but think that this strategy may be a reaction to its inability to engage. &lt;/p&gt;</description><link>http://www.iequalsi.com/post/1553465832</link><guid>http://www.iequalsi.com/post/1553465832</guid><pubDate>Fri, 12 Nov 2010 12:30:46 -0500</pubDate></item><item><title>This storm opened up on me on the way to last Thursday’s...</title><description>&lt;iframe width="400" height="240" src="http://www.youtube.com/embed/lCE_qiy-sOQ?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This storm opened up on me on the way to &lt;a title="New York City Ruby meetup: DSL " target="_self" href="http://www.meetup.com/nycruby/calendar/14723882/"&gt;last Thursday’s new york ruby meetup &lt;/a&gt;&lt;/p&gt;</description><link>http://www.iequalsi.com/post/1154759550</link><guid>http://www.iequalsi.com/post/1154759550</guid><pubDate>Mon, 20 Sep 2010 03:18:51 -0400</pubDate></item><item><title>secrets of the software conference pros</title><description>&lt;p&gt;Have you ever been at a development conference and been struck by the developers command of the command line. Not to say that they are all snake oil and high equity mortgage salesman but most of them use a bit of *nix illusion. &lt;br/&gt;&lt;br/&gt;The trick to pulling this of is to record your bash session with something like the script or ttyrec commands. If your on debian or ubuntu you likely still have scriptreplay available to you. &lt;/p&gt;
&lt;p&gt;record your session&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;script -t 2&gt; tutorial.timing -a tutorial.session&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;execute what you you want to show off&lt;/p&gt;
&lt;p&gt;exit the session &lt;/p&gt;
&lt;p&gt;replay&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;scriptreplay tutorial.timing tutorial.session&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;if your not on debian you need to build ttyrec&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;git clone git@github.com:mjording/ttyrec.git&lt;/p&gt;
&lt;p&gt;cd ttyrec&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;make&lt;/pre&gt;

&lt;/blockquote&gt;
&lt;p&gt;If you don’t have the  directory setup (from macports or another unix add on)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;/usr/bin/sudo /bin/mkdir -p /usr/local/bin
/usr/bin/sudo /usr/sbin/chown root:wheel /usr/local /usr/local/bin
/usr/bin/sudo /bin/chmod 0755 /usr/local /usr/local/bin &lt;/pre&gt;

&lt;/blockquote&gt;
&lt;p&gt;Otherwise copy the binary in and make some shortcuts&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;pre&gt; copy ttyrec, ttyplay and ttytime to /usr/local/bin
/usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttyrec /usr/local/bin
/usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttyplay /usr/local/bin
/usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttytime /usr/local/bin&lt;/pre&gt;

&lt;/blockquote&gt;
&lt;p&gt;Now you can record your session to a file via&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ttyrec -a tutorial.session&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and play it back with &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ttyplay tutorial.session&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ttyrec also has advanced features that allow you to adjust playback speed. &lt;/p&gt;</description><link>http://www.iequalsi.com/post/999277037</link><guid>http://www.iequalsi.com/post/999277037</guid><pubDate>Mon, 23 Aug 2010 15:17:31 -0400</pubDate></item><item><title>rails 3 generators hand-rolled edition</title><description>&lt;p&gt;Annoyed that rails 3 did none of the radical change of guard changes to default options? I know i was. Luckily its trivial to make right. &lt;/p&gt;
&lt;p&gt;You can follow along by creating a new rails 3 application&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rails new hand-rolled&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At the end of the config/application.rb file add replacements&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;config.generators do |g|&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;g.orm&lt;span&gt; &lt;/span&gt;:active_record&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;g.template_engine&lt;span&gt; &lt;/span&gt;:erb&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;g.test_framework  &lt;span&gt; &lt;/span&gt;:rspec, :fixture =&gt; true&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;g.fixture_replacement :machinist&lt;/p&gt;
end&lt;/blockquote&gt;

&lt;p&gt;better yet you can now build a rails app passing templates for any manner of change you want to make by default. &lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;span class="n"&gt;generators&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;«-&lt;/span&gt;&lt;span class="no"&gt;GENERATORS&lt;br/&gt;&lt;/span&gt;&lt;span&gt; config.generators do |g|&lt;br/&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;g.test_framework :rspec, :fixture =&gt; true, :views =&gt; false&lt;br/&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;g.integration_tool :rspec, :fixture =&gt; true, :views =&gt; true&lt;br/&gt;&lt;/span&gt;&lt;span&gt; end&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;The template file is passed to the rails new action and the generators are replaced. Match this up with the ease of &lt;a href="http://edgeguides.rubyonrails.org/generators.html"&gt;generating your own generators&lt;/a&gt; package it up in a gem and you can create a set of rails application generators that suit your preferences while maintaining flexibility of context.&lt;/p&gt;</description><link>http://www.iequalsi.com/post/992704372</link><guid>http://www.iequalsi.com/post/992704372</guid><pubDate>Sun, 22 Aug 2010 09:30:17 -0400</pubDate></item></channel></rss>

