<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Foy Savas</title>
 <link href="http://foysavas.com/atom.xml" rel="self"/>
 <link href="http://foysavas.com/"/>
 <updated>2010-06-02T10:23:25-04:00</updated>
 <id>http://foysavas.com/</id>
 <author>
   <name>Foy Savas</name>
   <email>foy@sav.as</email>
 </author>

 
 <entry>
   <title>Falling In and Out of Love with the GPL - Part 1</title>
   <link href="http://foysavas.com/2010/06/02/falling-in-and-out-of-love-with-the-gpl-part-1.html"/>
   <updated>2010-06-02T00:00:00-04:00</updated>
   <id>http://foysavas.com/2010/06/02/falling-in-and-out-of-love-with-the-gpl-part-1</id>
   <content type="html">&lt;div class=&quot;content&quot;&gt;
  &lt;h1&gt;Falling In and Out of Love with the GPL&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
When I was younger, I was totally enamored by the ideals of the GNU Public License. Now however, those feelings have faded, and I am here to document the conditions under which I came both to fall in and out of love with the license. I'm doing this publicly in hope that others may learn from from my experience.
&lt;/p&gt;

&lt;h2&gt;Part 1: Falling In Love&lt;/h2&gt;

&lt;p&gt;
My biological father had given me a Mac Classic when I was around six. It was great, but I unfortunately bricked it all-too-soon by trying to find a way to play Beyond Dark Castle without having to constantly swap between two floppy disks. Knowing no one whom I could ask for help, I ended up growing up without much exposure to computers outside of school. However, one thing was sure, I liked computers and aspired to have a working one again as soon as I could.
&lt;/p&gt;

&lt;p&gt;
My step-father however was an independent house painter, and needless to say, off of his income, we weren't well off enough to budget anything that discretionary. Simply for the sake of fleshing out context, we were decently poor by American standards and lived off a combination of family and state assistance. Our house was, for a long time, nothing more than a one room shack. In the evenings, we would lay down a disarray of crammed mattresses (one shared by my parents with my two baby brothers, one for grandparents, and one for me). In the mornings, we would prop them up against the wall, so that we could have the semblance of a living room. Still, around this time, I would often peruse software catalogs marking all the programs of interest and then tallying up how much they would cost me. Way too much of course, but I liked to dream (what kid doesn't?), and dreams about using programs like Photoshop and Kai's Power Tools seemed the coolest at the time.
&lt;/p&gt;

&lt;p&gt;
Eventually, my step-father found a new line of work (doing road construction) and began to make a bit more money. This happened to coincide with the summer before I was to enter high school, and so finally, two big changes were decided. One, I would get my own room (it was really just a hallway, but hey, it could fit a desk and I wasn't going to complain), and two, I could finally, for the sake of school and all those reports I would have to write, buy a computer.
&lt;/p&gt;

&lt;p&gt;
And so, I bought a Packard Bell 300MHz Pentium III. It of course ran Windows, and without the Internet, I couldn't do much with it aside from play the copy of Warcraft II that the salesman had thrown in. My uncle recommended that I buy a cheap copy of Visual Studio which he knew programmers used at his work place. That's how Visual Studio became the first and only program I went out and bought for my computer. From there I started to program - nothing useful of course (it was all in VB), but it was something.
&lt;/p&gt;

&lt;p&gt;
Anyway, my family's lot continued to improve, and soon we built an extension to the house. At this time, not only did I get a proper room with a door, I also somehow convinced my family that I should get Internet access. Finally, I could use the web to learn how to do things with my computer. Not so surprisingly, one of the first things I learned was that 'warez' sites allowed you to (though painfully slowly) download illegal copies of software. I didn't feel so bad about it though, because I still couldn't afford the programs, and thus they weren't really losing a customer.
&lt;/p&gt;

&lt;p&gt;
But wait I thought, if software could be so easily duplicated and distributed, why did companies charge so much for it at all? Looking back at the catalogs of software with sometimes exorbitant prices, I felt deceived. Yes, they were awesome programs, but it all seemed so unfair to keep them out of my reach so artificially. Thus, I came to rationalize warez dealers as Robin Hood types.
&lt;/p&gt;

&lt;p&gt;
Moving on, it was to be expected that at some point, I would have to reinstall Windows. Unfortunately, when I did, I noticed I was missing my copy of Office. It was bad timing too as I needed to write a report for school. Off to the warez sites I went to find a copy of Office. For one reason or another however, I couldn't find any real links for Office that day, and becoming frustrated. Not believing there would actually be any, I out of desperation did a search for &quot;free office alternatives&quot;. This, of course, is how I encountered my first piece of free software, AbiWord. It downloaded fast, needed no license key, and did exactly what I needed. I could hardly believe it: who was giving this stuff away and why were they doing it? From there I found the GPL, and when I read its preamble, it resonated in me. I was hooked and in under a week became a Linux user, never turning back.
&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;To be continued...&lt;/p&gt;&lt;/blockquote&gt;


&lt;div class='comments'&gt;
  &lt;script&gt;
    //var disqus_url = &quot;&quot;;
  &lt;/script&gt;

  &lt;div id=&quot;disqus_thread&quot;&gt;&lt;/div&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://disqus.com/forums/foysavas/embed.js&quot;&gt;&lt;/script&gt;&lt;noscript&gt;&lt;a href=&quot;http://foysavas.disqus.com/?url=ref&quot;&gt;View the discussion thread.&lt;/a&gt;&lt;/noscript&gt;&lt;a href=&quot;http://disqus.com&quot; class=&quot;dsq-brlink&quot;&gt;blog comments powered by &lt;span class=&quot;logo-disqus&quot;&gt;Disqus&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

</content>
 </entry>
 
 <entry>
   <title>Why So Down Forces Behind Global Recession</title>
   <link href="http://foysavas.com/2009/03/20/why-so-down-forces-behind-global-recession.html"/>
   <updated>2009-03-20T00:00:00-04:00</updated>
   <id>http://foysavas.com/2009/03/20/why-so-down-forces-behind-global-recession</id>
   <content type="html">&lt;div class='content'&gt;
          &lt;h1&gt;Why So Down? Forces Behind Global Recession&lt;/h1&gt;
          
          &lt;p&gt;Today may be the first day of Spring, but even with warmer days ahead of us, it's the chill of global recession that's still on my mind. However, come to think of it, the timing of this entry isn't so awful, since our understanding of the forces behind the recession definitely could use some Spring cleaning. That in mind, here's today's question:&lt;/p&gt;
          
          &lt;blockquote&gt;&lt;p&gt;What exactly has brought us to a global recession?&lt;/p&gt;&lt;/blockquote&gt;
          
          &lt;p&gt;Now an easy and typical answer would involve pointing fingers, but since everyone else has been doing just that, and because I'm not interested in wasting your time or mine, let's not settle for relegating the use of reason to nothing more than the blame game. Beside, deep down, I don't accept the argument that corruption and lack of corporate oversight are the root causes of a global recession. Incidental magnifier, yes, but root cause, no way. Something else must be going on, so with emphasis on the word global (just in case I haven't made that clear enough), let's take a look at one of the most important statistics regarding our world's economy, its population.&lt;/p&gt;
          
          &lt;p&gt;&lt;img src=&quot;/blog/2009/03/20/01_world_population.png&quot; alt=&quot;World Population&quot; /&gt;
          &lt;img src=&quot;/blog/2009/03/20/02_world_population_rate.png&quot; alt=&quot;World Population Growth Rate&quot; /&gt;&lt;/p&gt;
          
          &lt;p&gt;Well, not bad, the human species seems to be as burgeoning as ever. Growth rates are down somewhat, but still decently strong. In fact, some predictions even go as far as to place the world's population between 9 and 10 billion by the year 2050. So from the looks of it, all this seemingly unfettered growth should be amazing for stimulating markets. I mean, realistically, selling products or services to a growing consumer base should make sales and ROI no-brainers. Why, oh why then, are so many feeling the pains of unemployment and foreclosure? Quickly, before we submit to short-circuiting our inquiries and blaming corporate fat-cats, let's revisit the above graph, weighted this time by demographic consumption factor.&lt;/p&gt;
          
          &lt;p&gt;&lt;img src=&quot;/blog/2009/03/20/03_world_consumption.png&quot; alt=&quot;World Consumption&quot; /&gt;
          &lt;img src=&quot;/blog/2009/03/20/04_world_consumption_rate.png&quot; alt=&quot;World Consumption Growth Rate&quot; /&gt;&lt;/p&gt;
          
          &lt;p&gt;Now finally we a see a different story: a world with stabilizing consumer demand. How can this be so? Well not all consumers spend equally it seems, and the spread between the developed and developing world is as wide as 32 to 1. Additionally, it just so happens that the highest consuming continents (Europe and North America) also happen to be those with the lowest rates of population growth. In Europe's case it's actually declining. Though the reasons for this correlation between large consumption and low population growth are outside of the scope of today's discussion, it seems we finally have arrived at some proper exposition for a global recession.&lt;/p&gt;
          
          &lt;p&gt;But the consumption graph also seems to indicate that this slow down has been going on for quite a while. Why then are we only just now feeling it? Ah, enter the treachery of massive greed. Because you see, it seems that investors and corporate management, unsatisfied with natural widespread declines, began to fabricate growth in ways that convinced us we were still in times of boom. Thus through the odd combination of cargo cult corporate accounting and a pervasively looseness in lending, nearly every market in America has not only been dampened but severally negatively affected by the global recession. Even worse however, have been the actions of the US Government which in turn has thrown even more money into the hands of corporate elites, who themselves are fully aware of no immediate recovery and have transfigured bailouts into nothing more than an exit strategy.&lt;/p&gt;
          
          &lt;p&gt;But wait, before we believe that corporate greed is the real reason behind our global recession, let us remind ourselves once again, that it has only been a symptomatic aggravator and not its impetus. Thus, the global recession will persist despite our attempts at regulating the financial system and easy gains aren't likely to appear until the rate of worldwide consumption can bolster them.&lt;/p&gt;
          
          &lt;p&gt;Now I'm left to ask, how do we deal with it anyway?&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class='comments'&gt;

        &lt;script&gt;
          var disqus_url = &quot;http://www.foysavas.com/blog/2009/03/20/why-so-down-forces-behind-global-recession.html&quot;;
        &lt;/script&gt;

          &lt;div id=&quot;disqus_thread&quot;&gt;&lt;/div&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://disqus.com/forums/foysavas/embed.js&quot;&gt;&lt;/script&gt;&lt;noscript&gt;&lt;a href=&quot;http://foysavas.disqus.com/?url=ref&quot;&gt;View the discussion thread.&lt;/a&gt;&lt;/noscript&gt;&lt;a href=&quot;http://disqus.com&quot; class=&quot;dsq-brlink&quot;&gt;blog comments powered by &lt;span class=&quot;logo-disqus&quot;&gt;Disqus&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

</content>
 </entry>
 
 <entry>
   <title>Let's be Clear: The Rails Monoculture is Over</title>
   <link href="http://foysavas.com/2008/12/15/lets-be-clear-the-rails-monoculture-is-over.html"/>
   <updated>2008-12-15T00:00:00-05:00</updated>
   <id>http://foysavas.com/2008/12/15/lets-be-clear-the-rails-monoculture-is-over</id>
   <content type="html">&lt;div class=&quot;content&quot;&gt;
&lt;h1&gt;Let's Be Clear: The Rails Monoculture Is Over&lt;/h1&gt;

&lt;p&gt;Normally, I'm on top of all things Merb, sometimes even to the point of stalker-like observance, but last week I decided to go offline. Determined to finish up about half-a-dozen of &lt;em&gt;The Merb Way&lt;/em&gt; chapters before Christmas, I chose to isolate myself completely. No phone, no email, no IRC. Just me, the Merb source, and my manuscript. It couldn't get any better, and besides the week was slated to be a quiet one, so there was no way I would miss a thing.&lt;/p&gt;

&lt;p&gt;Then Dec 23rd rolls around. Sophia and I are packing up to visit family in Maine, and naturally, I turn on my phone readying it for the trip. That's when I get the call. It's Obie.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&quot;Foy, have you heard the news?&quot;&lt;/p&gt;

&lt;p&gt;&quot;Oh yeah. The book distribution plans, right?&quot;&lt;/p&gt;

&lt;p&gt;&quot;No... It's not that - Rails and Merb are merging.&quot;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Not yet sure if I was part of some elaborate prank or not, I jumped online mid-call. Sure enough, everyone was buzzing about it. Merb would be the new Rails, and not in the metaphorical sense we might have tossed around before. This was it, a real merge.&lt;/p&gt;

&lt;p&gt;Needless to say, I cursed my hiatus and got on IM and IRC looking for answers.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&quot;Where were you?&quot;, I got asked. &quot;I freaked out for you for like almost a full week, I was really scared you would flip.&quot;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Slowly, I digested the full story hearing it directly and individually from Ezra, Yehuda, and Matt. It seemed that tensions between the two development teams had risen to an all time high after the &lt;a href=&quot;http://antoniocangiano.com/2008/12/13/learn-merb/&quot;&gt;Antonio comment wars&lt;/a&gt;. Somehow, though, that very tiff had also induced a fair amount of dialogue. Eventually, the teams got to earnestly talking about the fundamental differences between the two frameworks, and though they didn't find many, they were able to draw the following conclusions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Merb had numerous fundamental enhancements including stack agnosticism via modularity and better performance through tighter implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rails was still the more mature of the frameworks sporting a boatload of both proven and widely used features.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Now apparently, it took both teams some time to ruminate on these conclusions, but when they did, they realized that they both wanted what the other had. And that's when they started to ask, why not work together?&lt;/p&gt;

&lt;p&gt;Now everyone knows the rest of the story, so I won't continue. However, what I will say is that when the news hit the general public, not everyone was happy. This included myself, who aside from having had his world turned upside-down, was still fairly skeptical. Yes, there were more practical concerns I should have been thinking about at the time, like the fate of &lt;em&gt;The Merb Way&lt;/em&gt; and all my Merb apps, but it was the potential loss of Merb's awesomeness that kept on surfacing in my mind. I couldn't go without it and needed to know that it wasn't gone.&lt;/p&gt;

&lt;p&gt;Thankfully around this same time, I began to talk to Yehuda about the details of the merge and how it would be approached. Despite my initial worries, things were positive. In fact, by the time I heard about us developing an API test suite and the necessary incremental changes to produce a rails-core, I got to wondering: is the Rails monoculture over?&lt;/p&gt;

&lt;p&gt;What an odd thought, you might think. Here Rails is merging in Merb, but yet somehow reverting to only one major Ruby web framework is going to end the monoculture? If that confuses you, I'll admit, it messed with my mind too at first, so let me explain.&lt;/p&gt;

&lt;p&gt;First off, though a lot of people have thrown the phrase Rails monoculture around, I haven't seen anyone define it. Let's do so before we proceed.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Rails Monoculture: the implicit shunning and later difficulty of deviation from the Rails stack.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Now, how could this have happened anyway? Well, to be sure, some of this was based in, as Matz said, the fact that Rails changes fundamental idioms of Ruby, but the more significant reason was that the Rails opinions were going unchecked. That is, everytime you wanted to deviate from the stack, you ended up piling on added difficulty. This difficulty made it hard to convince the rest of your team and sometimes even yourself to go with it.&lt;/p&gt;

&lt;p&gt;Anyway, I'm not blaming the Rails development team for what happened. To me it only seems natural, especially given the near continuous positive feedback they had received for Rails in nearly every other way. Opinions weren't just getting them noticed, in most cases they were working, so why stop?&lt;/p&gt;

&lt;p&gt;However, with time, not all of us could concur. After all, we weren't all making the same web app, so deviation is to be expected. Enter Merb, a framework that though born simply to be a lightweight speed-daemon, grew up to be shaped more by a culture of open-endedness than anything else. Honestly, we had all been bunch of malcontents who had itched for our own deviations from the Rails opinions. Thankfully though, this didn't mean we shared the same opinions, and so instead of forging our own inflexible stack, we decided to build an agnostic one through modularity. Now this isn't to say that we didn't love Convention over Configuration, but instead, that we had all come to feel the pain of what might have been called Convention, No Configuration. We wanted instead a potentially opt-in system, and so that's what Merb became.&lt;/p&gt;

&lt;p&gt;Soon, as Merb hit 1.0, others began to notice, and our reassessment of the appropriate limitation of opinionated software came to surface. For the first time, the benefit of making the gems as stack-independent as possible became apparent. No longer did you want to write a Rails or Merb plugin. Instead the goal was to encapsulate basic functionality that could be used by whatever application needed it with as little extra required as possible. The point is that this wasn't so much because there were now two major competing frameworks, but instead because it was becoming a recognized best practice. Credit where credit it is due, it was Rack that seemingly first set us on this path, and then Merb that popularized it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I know that there has been much skepticism out there, so let's be clear: if the Rails-Merb merge meant a continuation of monoculture, it would be nothing but a lose-lose situation. However, that's not what's happenning. Merb's spirit is not being assimiliated, it is being included. By the time Rails 3.0 comes out, the Rails stack should fully allow for opt-in modularity. Don't let the concept of the merge confuse you: monoculture is over, and this is a genuine win-win for everyone.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'm going to now address some of the other concerns I've been approached with since the news of the merge.&lt;/p&gt;

&lt;p&gt;The most common of these is among Merb developers worried about the future of their apps. Here's your answer: don't be. I and many of the other Merb contributors have numerous Merb apps out in production. There's no way we can leave them out in the cold. Expect a smooth transition to Rails 3.0, no matter whether you're currently using Merb or Rails.&lt;/p&gt;

&lt;p&gt;The second most common concern is that the merge is going to come at the cost of some of Merb's goodness, and to that I have to say this: absolutely not. Yes, it'll take time to get it all working just right, but the Rails team is deeply sincere about the merge. This weekend, I'm personally hoping to start helping out with Rails router modification on the 3.0 branch. It's going to be great, so please, stay calm.&lt;/p&gt;

&lt;p&gt;Finally, nearly everyone I know has been asking me about what will happen to &lt;em&gt;The Merb Way&lt;/em&gt;, and to be honest, I'm still not sure. However, my hope at this point is to at least get out a PDF even if the book does not get to print. Beyond that, all I can say is that Obie and I are now thinking of collaborating on the next edition of &lt;em&gt;The Rails Way&lt;/em&gt;. While I never thought I'd start off writing a book on Merb, only to end up co-authoring one on Rails, I sincerely believe this to be an amazing turn of events.&lt;/p&gt;

&lt;p&gt;Deep down this is because I've loved Rails for quite a long time now. If you got the chance to hear my talk at ProRubyConf, you may remember that I once quit one considerably well paying job because the management foolishly decided to move from Rails. Yes, that's how strong my attachment to the framework has been, and even though it's obviously been a rocky road since then, getting the chance to come back to Rails again, now without any regrets, is certainly a beautiful thing.&lt;/p&gt;
&lt;/div&gt;

&lt;div class='comments'&gt;
  &lt;script&gt;
    var disqus_url = &quot;http://www.foysavas.com/blog/2008/12/25/lets-be-clear-the-rails-monoculture-is-over.html&quot;;
  &lt;/script&gt;

  &lt;div id=&quot;disqus_thread&quot;&gt;&lt;/div&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://disqus.com/forums/foysavas/embed.js&quot;&gt;&lt;/script&gt;&lt;noscript&gt;&lt;a href=&quot;http://foysavas.disqus.com/?url=ref&quot;&gt;View the discussion thread.&lt;/a&gt;&lt;/noscript&gt;&lt;a href=&quot;http://disqus.com&quot; class=&quot;dsq-brlink&quot;&gt;blog comments powered by &lt;span class=&quot;logo-disqus&quot;&gt;Disqus&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

</content>
 </entry>
 
 
</feed>
