<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Steve Eichert - rails</title>
    <link>http://iqueryable.com/</link>
    <description />
    <language>en-us</language>
    <copyright>Steve Eichert</copyright>
    <lastBuildDate>Fri, 17 Aug 2007 00:30:26 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>steve.eichert@gmail.com</managingEditor>
    <webMaster>steve.eichert@gmail.com</webMaster>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=79cff978-f07b-43dd-94fa-24b0816aa087</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,79cff978-f07b-43dd-94fa-24b0816aa087.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I just registered for <a href="http://www.ruby-east.com/">Ruby
East</a>, which is being hosted by <a href="http://www.chariotsolutions.com/home/index.jsp">Chariot
Solutions</a> a hop, skip, and jump from my house!  Hopefully it will be a good
time!  They appear to have a number of good <a href="http://www.ruby-east.com/rubyeast/speakers.php">speakers</a> lined
up to talk about some <a href="http://www.ruby-east.com/rubyeast/abstracts.php">interesting
topics</a>.<br /><br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=79cff978-f07b-43dd-94fa-24b0816aa087" /></body>
      <title>Ruby East</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,79cff978-f07b-43dd-94fa-24b0816aa087.aspx</guid>
      <link>http://iqueryable.com/2007/08/17/RubyEast.aspx</link>
      <pubDate>Fri, 17 Aug 2007 00:30:26 GMT</pubDate>
      <description>I just registered for &lt;a href="http://www.ruby-east.com/"&gt;Ruby East&lt;/a&gt;, which is
being hosted by &lt;a href="http://www.chariotsolutions.com/home/index.jsp"&gt;Chariot Solutions&lt;/a&gt; a
hop, skip, and jump from my house!&amp;nbsp; Hopefully it will be a good time!&amp;nbsp; They
appear to have a number of good &lt;a href="http://www.ruby-east.com/rubyeast/speakers.php"&gt;speakers&lt;/a&gt; lined
up to talk about some &lt;a href="http://www.ruby-east.com/rubyeast/abstracts.php"&gt;interesting
topics&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=79cff978-f07b-43dd-94fa-24b0816aa087" /&gt;</description>
      <category>rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=64a6c37a-25e7-47eb-bd4e-4a3cfd8eb4aa</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,64a6c37a-25e7-47eb-bd4e-4a3cfd8eb4aa.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">James Avery poses an interesting question
in his "<a href="http://dotavery.com/blog/archive/2007/07/27/106320.aspx">How long
before ALT.NET becomes NOT.NET?</a>" post.  I'm not really sure what it takes
to get into the ALT.NET club, but from what I know I'm guessing I'd fit into the general
"demographic".  Like James, I've also been wondering if and when more of the
ALT.NET'ters will turn to Ruby on Rails (or alternates like Django).  I've thought
about this a bit more lately since I've been spending a lot more time in Ruby and
Rails.  In addition to wondering about other ALT.NET peeps, I've also thought
a bit about where I want to go with my development efforts and whether I want to continue
to focus on .NET as my primary means of making a living. At this point I don't see
myself doing anything drastic.  Considering I only have 2 Rails projects under
my belt and a heck of a lot more to learn about Ruby as well as Rails I think that's
a pretty wise course to take.  I am going to continue on my path to learning
Ruby as best I can, afterall it is my language for 2007.  I'm also going to continue
to do projects with Rails, try and write a lot more Ruby and Rails related code from
scratch (plugins make life way too easy), and evaluate if there is anything I've learned
from Ruby and Rails that I can bring over into my .NET related work.  I'm also
going to be keeping a close eye on IronRuby, and anxiously awaiting the day when they
announce they can run Rails on top of it!  
<br /><br />
At the end of the day, I believe learning Ruby, Rails, as well as many of the other
things I'm looking into, will make me a better developer.  Whether or not I end
up building the software I work on in .NET, Ruby, or Erlang doesn't matter much. 
I think we all owe it to ourselves, as well as our customers, to question whether
what we're using today is the best tool for the job.  We also owe it to ourselves
to question whether we'd find more enjoyment in working with other languages and tools. 
After all those questions are raised and answered we still need to make a decision
based on where we are in life, what we have control over, and where we want to go
in the future.<br /><br />
Perhaps before the migration to Rails starts, Microsoft will change its ways and learn
a thing or two about what it takes to make ALT.NET developers happy.  Perhaps
they'll realize that designers, wizards, and other magic isn't what where it's at. 
Perhaps they'll realize that baking best practices into the platform is a good thing. 
Perhaps they'll have a look at TextMate and realize it doesn't have any designers,
yet Rails developers love it?!?!?  Perhaps they'll learn a thing or two from
the success of Rails and stop the floodgates from opening.  What do you think?<br /><br /><br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=64a6c37a-25e7-47eb-bd4e-4a3cfd8eb4aa" /></body>
      <title>Is the ALT.NET crowd destined for Rails?</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,64a6c37a-25e7-47eb-bd4e-4a3cfd8eb4aa.aspx</guid>
      <link>http://iqueryable.com/2007/07/29/IsTheALTNETCrowdDestinedForRails.aspx</link>
      <pubDate>Sun, 29 Jul 2007 02:45:36 GMT</pubDate>
      <description>James Avery poses an interesting question in his "&lt;a href="http://dotavery.com/blog/archive/2007/07/27/106320.aspx"&gt;How
long before ALT.NET becomes NOT.NET?&lt;/a&gt;" post.&amp;nbsp; I'm not really sure what it
takes to get into the ALT.NET club, but from what I know I'm guessing I'd fit into
the general "demographic".&amp;nbsp; Like James, I've also been wondering if and when
more of the ALT.NET'ters will turn to Ruby on Rails (or alternates like Django).&amp;nbsp;
I've thought about this a bit more lately since I've been spending a lot more time
in Ruby and Rails.&amp;nbsp; In addition to wondering about other ALT.NET peeps, I've
also thought a bit about where I want to go with my development efforts and whether
I want to continue to focus on .NET as my primary means of making a living. At this
point I don't see myself doing anything drastic.&amp;nbsp; Considering I only have 2 Rails
projects under my belt and a heck of a lot more to learn about Ruby as well as Rails
I think that's a pretty wise course to take.&amp;nbsp; I am going to continue on my path
to learning Ruby as best I can, afterall it is my language for 2007.&amp;nbsp; I'm also
going to continue to do projects with Rails, try and write a lot more Ruby and Rails
related code from scratch (plugins make life way too easy), and evaluate if there
is anything I've learned from Ruby and Rails that I can bring over into my .NET related
work.&amp;nbsp; I'm also going to be keeping a close eye on IronRuby, and anxiously awaiting
the day when they announce they can run Rails on top of it!&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
At the end of the day, I believe learning Ruby, Rails, as well as many of the other
things I'm looking into, will make me a better developer.&amp;nbsp; Whether or not I end
up building the software I work on in .NET, Ruby, or Erlang doesn't matter much.&amp;nbsp;
I think we all owe it to ourselves, as well as our customers, to question whether
what we're using today is the best tool for the job.&amp;nbsp; We also owe it to ourselves
to question whether we'd find more enjoyment in working with other languages and tools.&amp;nbsp;
After all those questions are raised and answered we still need to make a decision
based on where we are in life, what we have control over, and where we want to go
in the future.&lt;br&gt;
&lt;br&gt;
Perhaps before the migration to Rails starts, Microsoft will change its ways and learn
a thing or two about what it takes to make ALT.NET developers happy.&amp;nbsp; Perhaps
they'll realize that designers, wizards, and other magic isn't what where it's at.&amp;nbsp;
Perhaps they'll realize that baking best practices into the platform is a good thing.&amp;nbsp;
Perhaps they'll have a look at TextMate and realize it doesn't have any designers,
yet Rails developers love it?!?!?&amp;nbsp; Perhaps they'll learn a thing or two from
the success of Rails and stop the floodgates from opening.&amp;nbsp; What do you think?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=64a6c37a-25e7-47eb-bd4e-4a3cfd8eb4aa" /&gt;</description>
      <category>.net;alt.net;rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=91a9fd84-eac8-4088-9776-754506f4190b</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,91a9fd84-eac8-4088-9776-754506f4190b.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">As I've stated before, my programming language
for the year is Ruby.  I actually planned on learning Python or Ruby last year,
but things didn't pan out.  Over the last 6-8 months I've been doing a pretty
good job of getting myself on the way to learning Ruby.  As with any language
the best way to learn it is to write something using it.  As we all know Rails
has done a tremendous job of bringing people to Ruby.  I'm no different. 
Over the last 6 months I've worked on two Rails projects and in the last week put
one of them into production (well almost).  Since I'm half way through the year
I wanted to put some thoughts down here, mostly for myself, but also for others who
might be interested in a .NET dudes impressions of Ruby and Rails.<br /><br />
Before writing a book myself, I bought a good number of books on technical topics
that I found interesting.  After experiencing what goes into writing a book,
I find that I'm much quicker to pull the trigger on books that I think I might find
interesting.  The amount of work required to get a book out the door is mind
boggling to me.  As such I've purchased, and read, the following books to help
me learn Ruby.<br /><ul><li><a href="http://www.amazon.com/gp/product/0974514055?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0974514055">Programming
Ruby: The Pragmatic Programmers' Guide, Second Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0974514055" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li><li><a href="http://www.amazon.com/gp/product/0976694069?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0976694069">Enterprise
Integration with Ruby</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0976694069" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li><li><a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616614">Everyday
Scripting with Ruby: For Teams, Testers, and You</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0977616614" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><br /></li><li><a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616630">Agile
Web Development with Rails (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0977616630" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li><li><a href="http://www.amazon.com/gp/product/0977616606?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616606">Rails
Recipes (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0977616606" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li><li><a href="http://www.amazon.com/gp/product/0672328844?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0672328844">The
Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming (2nd Edition)
(Addison-Wesley Professional Ruby Series)</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0672328844" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /> (only
skimmed so far)</li><li><a href="http://www.amazon.com/gp/product/0978739221?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0978739221">Advanced
Rails Recipes: 72 New Ways to Build Stunning Rails Apps</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0978739221" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /> (not
out yet)<br /></li><li><a href="http://www.amazon.com/gp/product/1590597877?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590597877">Beginning
Google Maps Applications with Rails and Ajax: From Novice to Professional</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=1590597877" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li><li><a href="http://www.amazon.com/gp/product/097873923X?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=097873923X">TextMate:
Power Editing for the Mac (Pragmatic Programmers)</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=097873923X" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /></li></ul>
As you can see not all the books are strictly Ruby related.  Several are focused
on Rails, one is focused on working with Google Maps with Rails, and one is to help
me learn to work in my new favorite editor, Textmate.<br /><br />
In addition to reading the above, I've been checking out the source code for a couple
of the more popular open source Rails applications as well as some of the more popular
plugins.  While all of that has been very valuable, nothing is ever as good as
actually writing code.  As such I've done several projects that I would have
traditionally done in .NET in Rails instead.<br /><br />
The first application that I got started with (and which I'm still working on) is
an application that helps geographically visualize key individuals within a social
network.  The data for the individuals in the social network, as well as the
data for the connections between individuals, is stored in flat files so I got my
first chance to play around with the CSV parsing capabilities of Ruby.  I found
the <a href="http://fastercsv.rubyforge.org/">FasterCSV</a> library very useful, and
got off to a pretty good start with my first attempt at parsing the CSV files and
getting them into my MySql database using my ActiveRecord model objects.  After
the file parsing was done, I got a chance to build several administrative pages for
the site using Rails, as well as the chance to experiment with some very useful plugins
such as:<br /><ul><li><a href="http://fastercsv.rubyforge.org/">FasterCSV</a><br /></li><li><a href="http://geokit.rubyforge.org/">Geokit</a></li><li><a href="http://nubyonrails.com/pages/gruff">Gruff</a></li><li><a href="http://thepochisuperstarmegashow.com/projects/#ym4r">Ym4r_gm</a></li></ul>
My second application involved setting up a site with paid membership.  The site
has several administrative functions for the owner of the site, as well as a handful
of features for those who sign up to be members such as exclusive downloads, advertising
opportunities, and a members only forum.  In addition to be able to gain a lot
more experience with the inner workings of Rails this project also led me to gain
experience with:<br /><ul><li><a href="http://mocha.rubyforge.org/">mocha</a></li><li><a href="http://beast.caboo.se/">Beast</a></li><li><a href="http://www.activemerchant.org/">active_merchant</a></li><li><a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu">attachement_fu</a></li><li><a href="http://agilewebdevelopment.com/plugins/ssl_requirement">ssl_requirement</a></li><li><a href="http://wiki.rubyonrails.org/rails/pages/Acts_as_authenticated">acts_as_authenticated</a></li></ul>
So given all of the above, if your still reading, I'm guessing your wondering what
I think.  In short, I'm becoming a pretty big fan of Ruby as well as Rails. 
While Rails isn't perfect it does a lot of things very well.  <a href="http://steve.emxsoftware.com/RubyOnRails/Ruby+on+Rails+Migrations+Explained">Rails
Migrations</a> are the best solution that I've come across for migrating the schema
of a database.  I can see why large teams run into some trouble with them, but
for the projects I've been working on migrations have worked wonderfully.  While
I'm a big fan of DDD, I also really like ActiveRecord in the right situations. 
Being able to create a migration, run rake db:migrate, and have the column automatically
available in my model without having to do anything makes developing with Rails and
ActiveRecord very enjoyable.  Rather than dealing with the mundane tasks of writing
scripts for adding columns, and then updating the associated data access and model
classes, I can focus on the stuff that matters.  In addition to migrations and
ActiveRecord I'm also fond of ActionMailer and the way that it allows you to create
and send email, its far better than what's available in .NET land.  Next up,
is the MVC structure that Rails uses for building the pages that make up the application/site. 
I'm a huge fan of MVC/MVP for building UI's so it should be no surprise that I'm also
a big fan of Rails implementation of MVC.  I really like having a single controller
per model object, and having a nice organization to the views used by the controller. 
I also really like the validation story for Rails. 
<br /><br />
As I learn new technologies I often times hack my way around until I get a good feel
for what I'm doing and how things are supposed to work and be put together. 
This led to me not writing as many unit tests for certain parts of the applications
I was working on.  I did test drive most (if not all) of the logic I put into
my model objects, but I slacked off a bit when it came to testing the controllers. 
This is partly due to the fact that I was using scaffolding, and partly due to the
fact that I was pushing almost everything into my model objects rather than allowing
my controllers to get "fat".  As part of the test driving of my model objects
I used the built in testing infrastructure, although I still want to checkout <a href="http://rspec.rubyforge.org/index.html">rspec</a>. 
On my latest project I also began experimenting with <a href="http://mocha.rubyforge.org/">mocha</a> which
really helps with the testing of objects that have dependencies.  
<br /><br />
So given all my recent exposure to Ruby and Rails one has to wonder how I rate it
against my native "tongue", .NET.  I have to say I've had a lot of fun working
with Ruby and Rails.  This is in part because its something unfamiliar and I
really enjoy learning, but its also because both Ruby and Rails have a way of making
developing with them very enjoyable.   I haven't enjoyed some of the deployments
and such that I've had to deal with, but since I was learning a bit about how to deploy
Rails applications on Linux it wasn't as bad as I expected.  I'm nowhere near
hanging up my .NET toolbelt, but I am going to continue to do a lot of the work that
I would have previously done in .NET in Ruby and/or Rails.<br /><br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=91a9fd84-eac8-4088-9776-754506f4190b" /></body>
      <title>My path to learning Ruby</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,91a9fd84-eac8-4088-9776-754506f4190b.aspx</guid>
      <link>http://iqueryable.com/2007/07/12/MyPathToLearningRuby.aspx</link>
      <pubDate>Thu, 12 Jul 2007 03:11:07 GMT</pubDate>
      <description>As I've stated before, my programming language for the year is Ruby.&amp;nbsp; I actually planned on learning Python or Ruby last year, but things didn't pan out.&amp;nbsp; Over the last 6-8 months I've been doing a pretty good job of getting myself on the way to learning Ruby.&amp;nbsp; As with any language the best way to learn it is to write something using it.&amp;nbsp; As we all know Rails has done a tremendous job of bringing people to Ruby.&amp;nbsp; I'm no different.&amp;nbsp; Over the last 6 months I've worked on two Rails projects and in the last week put one of them into production (well almost).&amp;nbsp; Since I'm half way through the year I wanted to put some thoughts down here, mostly for myself, but also for others who might be interested in a .NET dudes impressions of Ruby and Rails.&lt;br&gt;
&lt;br&gt;
Before writing a book myself, I bought a good number of books on technical topics
that I found interesting.&amp;nbsp; After experiencing what goes into writing a book,
I find that I'm much quicker to pull the trigger on books that I think I might find
interesting.&amp;nbsp; The amount of work required to get a book out the door is mind
boggling to me.&amp;nbsp; As such I've purchased, and read, the following books to help
me learn Ruby.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0974514055?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0974514055"&gt;Programming
Ruby: The Pragmatic Programmers' Guide, Second Edition&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0974514055" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0976694069?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0976694069"&gt;Enterprise
Integration with Ruby&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0976694069" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616614"&gt;Everyday
Scripting with Ruby: For Teams, Testers, and You&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0977616614" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616630"&gt;Agile
Web Development with Rails (Pragmatic Programmers)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0977616630" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0977616606?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616606"&gt;Rails
Recipes (Pragmatic Programmers)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0977616606" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0672328844?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0672328844"&gt;The
Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming (2nd Edition)
(Addison-Wesley Professional Ruby Series)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0672328844" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; (only
skimmed so far)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/0978739221?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0978739221"&gt;Advanced
Rails Recipes: 72 New Ways to Build Stunning Rails Apps&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0978739221" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; (not
out yet)&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/1590597877?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1590597877"&gt;Beginning
Google Maps Applications with Rails and Ajax: From Novice to Professional&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1590597877" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.amazon.com/gp/product/097873923X?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=097873923X"&gt;TextMate:
Power Editing for the Mac (Pragmatic Programmers)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=097873923X" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;/li&gt;
&lt;/ul&gt;
As you can see not all the books are strictly Ruby related.&amp;nbsp; Several are focused
on Rails, one is focused on working with Google Maps with Rails, and one is to help
me learn to work in my new favorite editor, Textmate.&lt;br&gt;
&lt;br&gt;
In addition to reading the above, I've been checking out the source code for a couple
of the more popular open source Rails applications as well as some of the more popular
plugins.&amp;nbsp; While all of that has been very valuable, nothing is ever as good as
actually writing code.&amp;nbsp; As such I've done several projects that I would have
traditionally done in .NET in Rails instead.&lt;br&gt;
&lt;br&gt;
The first application that I got started with (and which I'm still working on) is
an application that helps geographically visualize key individuals within a social
network.&amp;nbsp; The data for the individuals in the social network, as well as the
data for the connections between individuals, is stored in flat files so I got my
first chance to play around with the CSV parsing capabilities of Ruby.&amp;nbsp; I found
the &lt;a href="http://fastercsv.rubyforge.org/"&gt;FasterCSV&lt;/a&gt; library very useful, and
got off to a pretty good start with my first attempt at parsing the CSV files and
getting them into my MySql database using my ActiveRecord model objects.&amp;nbsp; After
the file parsing was done, I got a chance to build several administrative pages for
the site using Rails, as well as the chance to experiment with some very useful plugins
such as:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://fastercsv.rubyforge.org/"&gt;FasterCSV&lt;/a&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://geokit.rubyforge.org/"&gt;Geokit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://nubyonrails.com/pages/gruff"&gt;Gruff&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://thepochisuperstarmegashow.com/projects/#ym4r"&gt;Ym4r_gm&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
My second application involved setting up a site with paid membership.&amp;nbsp; The site
has several administrative functions for the owner of the site, as well as a handful
of features for those who sign up to be members such as exclusive downloads, advertising
opportunities, and a members only forum.&amp;nbsp; In addition to be able to gain a lot
more experience with the inner workings of Rails this project also led me to gain
experience with:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://mocha.rubyforge.org/"&gt;mocha&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://beast.caboo.se/"&gt;Beast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.activemerchant.org/"&gt;active_merchant&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu"&gt;attachement_fu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://agilewebdevelopment.com/plugins/ssl_requirement"&gt;ssl_requirement&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://wiki.rubyonrails.org/rails/pages/Acts_as_authenticated"&gt;acts_as_authenticated&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
So given all of the above, if your still reading, I'm guessing your wondering what
I think.&amp;nbsp; In short, I'm becoming a pretty big fan of Ruby as well as Rails.&amp;nbsp;
While Rails isn't perfect it does a lot of things very well.&amp;nbsp; &lt;a href="http://steve.emxsoftware.com/RubyOnRails/Ruby+on+Rails+Migrations+Explained"&gt;Rails
Migrations&lt;/a&gt; are the best solution that I've come across for migrating the schema
of a database.&amp;nbsp; I can see why large teams run into some trouble with them, but
for the projects I've been working on migrations have worked wonderfully.&amp;nbsp; While
I'm a big fan of DDD, I also really like ActiveRecord in the right situations.&amp;nbsp;
Being able to create a migration, run rake db:migrate, and have the column automatically
available in my model without having to do anything makes developing with Rails and
ActiveRecord very enjoyable.&amp;nbsp; Rather than dealing with the mundane tasks of writing
scripts for adding columns, and then updating the associated data access and model
classes, I can focus on the stuff that matters.&amp;nbsp; In addition to migrations and
ActiveRecord I'm also fond of ActionMailer and the way that it allows you to create
and send email, its far better than what's available in .NET land.&amp;nbsp; Next up,
is the MVC structure that Rails uses for building the pages that make up the application/site.&amp;nbsp;
I'm a huge fan of MVC/MVP for building UI's so it should be no surprise that I'm also
a big fan of Rails implementation of MVC.&amp;nbsp; I really like having a single controller
per model object, and having a nice organization to the views used by the controller.&amp;nbsp;
I also really like the validation story for Rails. 
&lt;br&gt;
&lt;br&gt;
As I learn new technologies I often times hack my way around until I get a good feel
for what I'm doing and how things are supposed to work and be put together.&amp;nbsp;
This led to me not writing as many unit tests for certain parts of the applications
I was working on.&amp;nbsp; I did test drive most (if not all) of the logic I put into
my model objects, but I slacked off a bit when it came to testing the controllers.&amp;nbsp;
This is partly due to the fact that I was using scaffolding, and partly due to the
fact that I was pushing almost everything into my model objects rather than allowing
my controllers to get "fat".&amp;nbsp; As part of the test driving of my model objects
I used the built in testing infrastructure, although I still want to checkout &lt;a href="http://rspec.rubyforge.org/index.html"&gt;rspec&lt;/a&gt;.&amp;nbsp;
On my latest project I also began experimenting with &lt;a href="http://mocha.rubyforge.org/"&gt;mocha&lt;/a&gt; which
really helps with the testing of objects that have dependencies.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
So given all my recent exposure to Ruby and Rails one has to wonder how I rate it
against my native "tongue", .NET.&amp;nbsp; I have to say I've had a lot of fun working
with Ruby and Rails.&amp;nbsp; This is in part because its something unfamiliar and I
really enjoy learning, but its also because both Ruby and Rails have a way of making
developing with them very enjoyable.&amp;nbsp;&amp;nbsp; I haven't enjoyed some of the deployments
and such that I've had to deal with, but since I was learning a bit about how to deploy
Rails applications on Linux it wasn't as bad as I expected.&amp;nbsp; I'm nowhere near
hanging up my .NET toolbelt, but I am going to continue to do a lot of the work that
I would have previously done in .NET in Ruby and/or Rails.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=91a9fd84-eac8-4088-9776-754506f4190b" /&gt;</description>
      <category>books;rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=0db46c9a-6b30-4e67-97ce-000efe193491</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,0db46c9a-6b30-4e67-97ce-000efe193491.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Glenn Vanderburg's "<a href="http://www.infoq.com/presentations/beauty-of-ruby-vanderburg">The
Beauty of Ruby</a>" JAOO presentation was recently published on <a href="http://infoq.com/">InfoQ.com</a>. 
Glenn talks about some of "the subtle beauty that experienced Rubyists have come to
know and love".  Over the last couple of months I've come across a lot of great
content on <a href="http://www.infoq.com/ruby/">InfoQ's Ruby section</a> that has
helped me to learn some of the subtle gems that exist within the Ruby programming
language.  While reading books, and writing Ruby code are great ways to learn
Ruby, its also tremendously valuable to hear experienced Rubyists talk about what
they love about the language.  Below are a couple of my favorite <a href="http://www.infoq.com/bycategory/contentbycategory.action?idx=2&amp;ct=2&amp;alias=ruby">Ruby
presentations</a> available on InfoQ.<br /><ul><li><a href="http://www.infoq.com/presentations/beauty-of-ruby-vanderburg">The Beauty
of Ruby</a></li><li><a href="http://www.infoq.com/interviews/rich-kilmer-power-of-ruby">Rich Kilmer on
the Power of Ruby</a></li><li><a href="http://www.infoq.com/presentations/agile-dsl-development-in-ruby">Agile DSL
Development in Ruby</a></li></ul><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0db46c9a-6b30-4e67-97ce-000efe193491" /></body>
      <title>The Beauty of Ruby</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,0db46c9a-6b30-4e67-97ce-000efe193491.aspx</guid>
      <link>http://iqueryable.com/2007/07/10/TheBeautyOfRuby.aspx</link>
      <pubDate>Tue, 10 Jul 2007 00:46:49 GMT</pubDate>
      <description>Glenn Vanderburg's "&lt;a href="http://www.infoq.com/presentations/beauty-of-ruby-vanderburg"&gt;The
Beauty of Ruby&lt;/a&gt;" JAOO presentation was recently published on &lt;a href="http://infoq.com/"&gt;InfoQ.com&lt;/a&gt;.&amp;nbsp;
Glenn talks about some of "the subtle beauty that experienced Rubyists have come to
know and love".&amp;nbsp; Over the last couple of months I've come across a lot of great
content on &lt;a href="http://www.infoq.com/ruby/"&gt;InfoQ's Ruby section&lt;/a&gt; that has
helped me to learn some of the subtle gems that exist within the Ruby programming
language.&amp;nbsp; While reading books, and writing Ruby code are great ways to learn
Ruby, its also tremendously valuable to hear experienced Rubyists talk about what
they love about the language.&amp;nbsp; Below are a couple of my favorite &lt;a href="http://www.infoq.com/bycategory/contentbycategory.action?idx=2&amp;amp;ct=2&amp;amp;alias=ruby"&gt;Ruby
presentations&lt;/a&gt; available on InfoQ.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.infoq.com/presentations/beauty-of-ruby-vanderburg"&gt;The Beauty
of Ruby&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.infoq.com/interviews/rich-kilmer-power-of-ruby"&gt;Rich Kilmer on
the Power of Ruby&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.infoq.com/presentations/agile-dsl-development-in-ruby"&gt;Agile DSL
Development in Ruby&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0db46c9a-6b30-4e67-97ce-000efe193491" /&gt;</description>
      <category>rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=329293e6-b6b2-4b38-b916-3cfac766e2df</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,329293e6-b6b2-4b38-b916-3cfac766e2df.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">The self proclaimed ninja's over at <a href="http://www.activereload.net">ActiveReload</a> have
unveiled <a href="http://warehouseapp.com/">Warehouse</a>, a "web based subversion
browser that doesn't suck".  Warehouse is a Rails app that allows you to view
a subversion repository with a very slick web interface.  <a href="http://weblog.techno-weenie.net/">Rick</a> and <a href="http://encytemedia.com/">Justin</a> spent
the weekend when they weren't at RailsConf getting Warehouse started, and now a couple
months later they've released it to the world.  
<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=329293e6-b6b2-4b38-b916-3cfac766e2df" /></body>
      <title>Web based subversion browser</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,329293e6-b6b2-4b38-b916-3cfac766e2df.aspx</guid>
      <link>http://iqueryable.com/2007/07/10/WebBasedSubversionBrowser.aspx</link>
      <pubDate>Tue, 10 Jul 2007 00:39:43 GMT</pubDate>
      <description>The self proclaimed ninja's over at &lt;a href="http://www.activereload.net"&gt;ActiveReload&lt;/a&gt; have
unveiled &lt;a href="http://warehouseapp.com/"&gt;Warehouse&lt;/a&gt;, a "web based subversion
browser that doesn't suck".&amp;nbsp; Warehouse is a Rails app that allows you to view
a subversion repository with a very slick web interface.&amp;nbsp; &lt;a href="http://weblog.techno-weenie.net/"&gt;Rick&lt;/a&gt; and &lt;a href="http://encytemedia.com/"&gt;Justin&lt;/a&gt; spent
the weekend when they weren't at RailsConf getting Warehouse started, and now a couple
months later they've released it to the world.&amp;nbsp; 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=329293e6-b6b2-4b38-b916-3cfac766e2df" /&gt;</description>
      <category>rails;ruby;subversion</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=7eccbf36-5355-4e21-abdc-4542ab739c47</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,7eccbf36-5355-4e21-abdc-4542ab739c47.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm in the process of deploying a <a href="http://rubyonrails.com/">Rails</a> app,
and up until a few minutes ago I was having problems getting <a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Attachment">acts_as_attachement</a> and <a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu">attachment_fu</a> to
work.  I originally started development with acts_as_attachement since I was
naive and didn't know there was something better.  After looking for a fix for
the issue I was seeing, I came across <a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu">attachment_fu</a> and
came to see that it was superior and would undoubtedly solve my issue.  It didn't....however,
the upgrade process was painless and I got some extra goodies so all was good. 
For those interested, the extra goodies include pluggable image processors (<a href="http://rmagick.rubyforge.org/">RMagick</a>, <a href="http://rubyforge.org/projects/mini-magick/">MiniMagick</a>,
and <a href="http://seattlerb.rubyforge.org/ImageScience.html">ImageScience</a>) as
well as an option to store files with <a href="http://aws.amazon.com/s3">Amazon S3</a>.<br /><br />
With attachment_fu installed, I was sure my problem would be resolved.  I suspected
the issue I was having was related to RMagick image resizing since I'm deploying to
a shared hosting account on <a href="http://www.textdrive.com/">TextDrive</a>, and
RMagick has quite a reputation for hogging up lots of memory and causing havoc on
shared accounts.  After switching over to attachment_fu and to MiniMagick as
my image processor I was still seeing my issue, so I realized it had to be something
else.<br /><br />
Before going onto the solution, let me explain the problem that was occuring. 
When I was submitting a form for an attachment_fu model I was immediately being redirected
back to the index page.  Every once in a while the form would appear to be submitting,
hang, and eventually hose the lighttpd process.  As I mentioned above, I first
suspected the problem was related to image resizing being done by RMagick but I was
able to reproduce the problem on a non image attachment_fu model object.  After
digging around on the web and coming up empty, I ended up checking out the Rails log
file to see if I could figure out what was going on.  Examining the production.log
showed that I was going from the :new action, directly to the :index action. 
Since I was submitting a form, I should have seen a hit on the :create action for
my controller.  This led me to search google for a slightly better phrase which
eventually landed me at this "<a href="http://www.railsweenie.com/forums/6/topics/1378">Form
doesn't trigger create in production</a>" forum post, as well as this <a href="http://www.ruby-forum.com/topic/103619">related
post on Ruby Forum.</a><br /><br />
It turns out the problem is due to the way that attachment_fu stores the files uploaded
on the file system.  attachment_fu stores the files in a folder with the same
name as the model within the public folder.  This causes issues since the url
for the controller, as well as the directory for storing files have the same URL. 
Fortunately the fix is as simple as adding the following to your application.rb file.<br /><pre>def default_url_options(options)<br />
{ :trailing_slash =&gt; true }<br />
end<br /><br /></pre>
Deployment is such fun, isn't it! :)<br /><br /><br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=7eccbf36-5355-4e21-abdc-4542ab739c47" /></body>
      <title>acts_as_attachement and attachment_fu not working in production</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,7eccbf36-5355-4e21-abdc-4542ab739c47.aspx</guid>
      <link>http://iqueryable.com/2007/06/21/actsasattachementAndAttachmentfuNotWorkingInProduction.aspx</link>
      <pubDate>Thu, 21 Jun 2007 02:03:58 GMT</pubDate>
      <description>I'm in the process of deploying a &lt;a href="http://rubyonrails.com/"&gt;Rails&lt;/a&gt; app,
and up until a few minutes ago I was having problems getting &lt;a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Attachment"&gt;acts_as_attachement&lt;/a&gt; and &lt;a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu"&gt;attachment_fu&lt;/a&gt; to
work.&amp;nbsp; I originally started development with acts_as_attachement since I was
naive and didn't know there was something better.&amp;nbsp; After looking for a fix for
the issue I was seeing, I came across &lt;a href="http://clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu"&gt;attachment_fu&lt;/a&gt; and
came to see that it was superior and would undoubtedly solve my issue.&amp;nbsp; It didn't....however,
the upgrade process was painless and I got some extra goodies so all was good.&amp;nbsp;
For those interested, the extra goodies include pluggable image processors (&lt;a href="http://rmagick.rubyforge.org/"&gt;RMagick&lt;/a&gt;, &lt;a href="http://rubyforge.org/projects/mini-magick/"&gt;MiniMagick&lt;/a&gt;,
and &lt;a href="http://seattlerb.rubyforge.org/ImageScience.html"&gt;ImageScience&lt;/a&gt;) as
well as an option to store files with &lt;a href="http://aws.amazon.com/s3"&gt;Amazon S3&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
With attachment_fu installed, I was sure my problem would be resolved.&amp;nbsp; I suspected
the issue I was having was related to RMagick image resizing since I'm deploying to
a shared hosting account on &lt;a href="http://www.textdrive.com/"&gt;TextDrive&lt;/a&gt;, and
RMagick has quite a reputation for hogging up lots of memory and causing havoc on
shared accounts.&amp;nbsp; After switching over to attachment_fu and to MiniMagick as
my image processor I was still seeing my issue, so I realized it had to be something
else.&lt;br&gt;
&lt;br&gt;
Before going onto the solution, let me explain the problem that was occuring.&amp;nbsp;
When I was submitting a form for an attachment_fu model I was immediately being redirected
back to the index page.&amp;nbsp; Every once in a while the form would appear to be submitting,
hang, and eventually hose the lighttpd process.&amp;nbsp; As I mentioned above, I first
suspected the problem was related to image resizing being done by RMagick but I was
able to reproduce the problem on a non image attachment_fu model object.&amp;nbsp; After
digging around on the web and coming up empty, I ended up checking out the Rails log
file to see if I could figure out what was going on.&amp;nbsp; Examining the production.log
showed that I was going from the :new action, directly to the :index action.&amp;nbsp;
Since I was submitting a form, I should have seen a hit on the :create action for
my controller.&amp;nbsp; This led me to search google for a slightly better phrase which
eventually landed me at this "&lt;a href="http://www.railsweenie.com/forums/6/topics/1378"&gt;Form
doesn't trigger create in production&lt;/a&gt;" forum post, as well as this &lt;a href="http://www.ruby-forum.com/topic/103619"&gt;related
post on Ruby Forum.&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
It turns out the problem is due to the way that attachment_fu stores the files uploaded
on the file system.&amp;nbsp; attachment_fu stores the files in a folder with the same
name as the model within the public folder.&amp;nbsp; This causes issues since the url
for the controller, as well as the directory for storing files have the same URL.&amp;nbsp;
Fortunately the fix is as simple as adding the following to your application.rb file.&lt;br&gt;
&lt;pre&gt;def default_url_options(options)&lt;br&gt;
{ :trailing_slash =&amp;gt; true }&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
&lt;/pre&gt;
Deployment is such fun, isn't it! :)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=7eccbf36-5355-4e21-abdc-4542ab739c47" /&gt;</description>
      <category>rails;ruby;web</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=edffadbc-191e-4dcd-8d1f-fcf89df8f030</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,edffadbc-191e-4dcd-8d1f-fcf89df8f030.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">The validation infrastructure within Rails
is another one of the niceties that it provides.  By decorating model classes
with validation helpers you can quickly define a pretty thorough set of validations
for a model.  As an example of the types of validations that can be added to
Rails models lets take a look at a user model created by the acts_as_authenticated
Rails plugin.<br /><br />
class User &lt; ActiveRecord::Base<br />
  # Virtual attribute for the unencrypted password<br />
  attr_accessor :password<br /><br />
  validates_presence_of     :login, :email<br />
  validates_presence_of     :password,                  
:if =&gt; :password_required?<br />
  validates_presence_of     :password_confirmation,     
:if =&gt; :password_required?<br />
  validates_length_of         :password,
:within =&gt; 4..40, :if =&gt; :password_required?<br />
  validates_confirmation_of :password,                  
:if =&gt; :password_required?<br />
  validates_length_of       :login,   
:within =&gt; 3..40<br />
  validates_length_of       :email,   
:within =&gt; 3..100<br />
  validates_uniqueness_of   :login, :email, :case_sensitive =&gt; false<br /><br />
  #other stuff<br />
end<br /><br />
By using validates_presence_of, validates_length_of, validates_confirmation_of, and
validates_uniqueness_of we're able to put together a detailed set of validation rules
for our User model.  Additionally, we can enable and disable certain validations
by defining an :if parameter on our validations.  With all these things in place
Rails provides a nice default set of functionality for ensuring the validity of models. 
One of the things that's been on my mind since I started working with some of these
validations is how they might scale, and how well they'd support a model object with
complex validation rules.  While it seems as though what's provided out of the
box by Rails could be bent in order to meet most requirements I came across something
today that looks very promising.<br /><br />
The <a href="http://www.lukeredpath.co.uk/2006/9/28/introduction-to-activespec">ActiveSpec</a> project
aims to provide domain driven design (DDD) style specificiations to the Ruby world. 
While Rails is getting all the attention, ActiveSharp isn't limiting itself to Rails,
but instead makes itself available to all of Ruby.  On my train ride home tonight
I read through the Introduction to ActiveSpec and was pretty excited about the direction
it's headed.  It's pretty early in the game so the current bits may not be ready
for prime time, however, that doesn't make them any less promising.  In addition
to providing the ability to create simple specifications, composite specifications,
ActiveSpec also provides a base ActiveSpec class with macros to help make the process
of creating complex specifications more straight-forward.  I've included some
sample code snippets below, but to <a href="http://www.lukeredpath.co.uk/2006/9/28/introduction-to-activespec">get
a full run down of ActiveSpec checkout the Introduction.</a><br /><pre><code class="ruby"># Composite Specifications<br />
spec = <span class="constants">CompositeSpecification</span><span class="method">.new</span><br />
spec<span class="method">.add_specification</span><span class="brackets">(</span><span class="constants">SizeSpecification</span><span class="method">.new</span><span class="brackets">(</span>6, <span class="symbol">:username</span><span class="brackets">)</span><span class="brackets">)</span><br />
spec<span class="method">.add_specification</span><span class="brackets">(</span><span class="constants">CollectionSpecification</span><span class="method">.new</span><span class="brackets">(</span>18<span class="method">..30</span>, <span class="symbol">:age</span><span class="brackets">)</span><span class="brackets">)</span><br />
spec<span class="method">.add_specification</span><span class="brackets">(</span><span class="constants">ConfirmationSpecification</span><span class="method">.new</span><span class="brackets">(</span><span class="symbol">:password</span><span class="brackets">)</span><span class="brackets">)</span><br />
spec<span class="method">.satisfied_by?</span><span class="brackets">(</span><span class="constants">User</span><span class="method">.new</span><span class="brackets">)</span><br /><span class="comment">#=&gt; false</span></code><br /><br /><code class="ruby"># Custom Specification Class<br /><span class="keywords">class</span><span class="constants">UserSpecification</span> &lt; <span class="constants">ActiveSpec</span>:<span class="symbol">:Base</span><br />
requires_presence_of <span class="symbol">:username</span>, <span class="symbol">:password</span><br />
requires_size 6, <span class="symbol">:password</span><br />
requires_confirmation_of <span class="symbol">:password</span><br />
requires_inclusion_in 18<span class="method">..30</span>, <span class="symbol">:age</span><br /><span class="keywords">end</span><br /><br /><span class="constants">UserSpecification</span><span class="method">.satisfied_by?</span><span class="brackets">(</span>some_user<span class="brackets">)</span></code></pre><pre><code class="ruby"><br /><span class="comment"># pure ruby selection</span><br /><span class="constants">User</span><span class="method">.find_by_specification</span><span class="brackets">(</span><span class="constants">SomeAdvancedUserSpecification</span><span class="brackets">)</span><br /><br /><span class="comment"># specifications for SQL queries?</span><br /><span class="constants">User</span><span class="method">.find</span><span class="brackets">(</span><span class="symbol">:all</span>, <span class="symbol">:conditions</span> =&gt; <span class="constants">SomeAdvancedUserSpecification</span><span class="method">.to_sql</span><span class="brackets">)</span></code></pre><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=edffadbc-191e-4dcd-8d1f-fcf89df8f030" /></body>
      <title>Create DDD style specifications in Ruby with ActiveSpec</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,edffadbc-191e-4dcd-8d1f-fcf89df8f030.aspx</guid>
      <link>http://iqueryable.com/2007/06/13/CreateDDDStyleSpecificationsInRubyWithActiveSpec.aspx</link>
      <pubDate>Wed, 13 Jun 2007 03:18:44 GMT</pubDate>
      <description>The validation infrastructure within Rails is another one of the niceties that it provides.&amp;nbsp; By decorating model classes with validation helpers you can quickly define a pretty thorough set of validations for a model.&amp;nbsp; As an example of the types of validations that can be added to Rails models lets take a look at a user model created by the acts_as_authenticated Rails plugin.&lt;br&gt;
&lt;br&gt;
class User &amp;lt; ActiveRecord::Base&lt;br&gt;
&amp;nbsp; # Virtual attribute for the unencrypted password&lt;br&gt;
&amp;nbsp; attr_accessor :password&lt;br&gt;
&lt;br&gt;
&amp;nbsp; validates_presence_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :login, :email&lt;br&gt;
&amp;nbsp; validates_presence_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :password,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
:if =&amp;gt; :password_required?&lt;br&gt;
&amp;nbsp; validates_presence_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :password_confirmation,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
:if =&amp;gt; :password_required?&lt;br&gt;
&amp;nbsp; validates_length_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :password,
:within =&amp;gt; 4..40, :if =&amp;gt; :password_required?&lt;br&gt;
&amp;nbsp; validates_confirmation_of :password,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
:if =&amp;gt; :password_required?&lt;br&gt;
&amp;nbsp; validates_length_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :login,&amp;nbsp;&amp;nbsp;&amp;nbsp;
:within =&amp;gt; 3..40&lt;br&gt;
&amp;nbsp; validates_length_of&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :email,&amp;nbsp;&amp;nbsp;&amp;nbsp;
:within =&amp;gt; 3..100&lt;br&gt;
&amp;nbsp; validates_uniqueness_of&amp;nbsp;&amp;nbsp; :login, :email, :case_sensitive =&amp;gt; false&lt;br&gt;
&lt;br&gt;
&amp;nbsp; #other stuff&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
By using validates_presence_of, validates_length_of, validates_confirmation_of, and
validates_uniqueness_of we're able to put together a detailed set of validation rules
for our User model.&amp;nbsp; Additionally, we can enable and disable certain validations
by defining an :if parameter on our validations.&amp;nbsp; With all these things in place
Rails provides a nice default set of functionality for ensuring the validity of models.&amp;nbsp;
One of the things that's been on my mind since I started working with some of these
validations is how they might scale, and how well they'd support a model object with
complex validation rules.&amp;nbsp; While it seems as though what's provided out of the
box by Rails could be bent in order to meet most requirements I came across something
today that looks very promising.&lt;br&gt;
&lt;br&gt;
The &lt;a href="http://www.lukeredpath.co.uk/2006/9/28/introduction-to-activespec"&gt;ActiveSpec&lt;/a&gt; project
aims to provide domain driven design (DDD) style specificiations to the Ruby world.&amp;nbsp;
While Rails is getting all the attention, ActiveSharp isn't limiting itself to Rails,
but instead makes itself available to all of Ruby.&amp;nbsp; On my train ride home tonight
I read through the Introduction to ActiveSpec and was pretty excited about the direction
it's headed.&amp;nbsp; It's pretty early in the game so the current bits may not be ready
for prime time, however, that doesn't make them any less promising.&amp;nbsp; In addition
to providing the ability to create simple specifications, composite specifications,
ActiveSpec also provides a base ActiveSpec class with macros to help make the process
of creating complex specifications more straight-forward.&amp;nbsp; I've included some
sample code snippets below, but to &lt;a href="http://www.lukeredpath.co.uk/2006/9/28/introduction-to-activespec"&gt;get
a full run down of ActiveSpec checkout the Introduction.&lt;/a&gt;
&lt;br&gt;
&lt;pre&gt;&lt;code class="ruby"&gt;# Composite Specifications&lt;br&gt;
spec = &lt;span class="constants"&gt;CompositeSpecification&lt;/span&gt;&lt;span class="method"&gt;.new&lt;/span&gt;
&lt;br&gt;
spec&lt;span class="method"&gt;.add_specification&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="constants"&gt;SizeSpecification&lt;/span&gt;&lt;span class="method"&gt;.new&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;6, &lt;span class="symbol"&gt;:username&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;
&lt;br&gt;
spec&lt;span class="method"&gt;.add_specification&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="constants"&gt;CollectionSpecification&lt;/span&gt;&lt;span class="method"&gt;.new&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;18&lt;span class="method"&gt;..30&lt;/span&gt;, &lt;span class="symbol"&gt;:age&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;
&lt;br&gt;
spec&lt;span class="method"&gt;.add_specification&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="constants"&gt;ConfirmationSpecification&lt;/span&gt;&lt;span class="method"&gt;.new&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:password&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;
&lt;br&gt;
spec&lt;span class="method"&gt;.satisfied_by?&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="constants"&gt;User&lt;/span&gt;&lt;span class="method"&gt;.new&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span class="comment"&gt;#=&amp;gt; false&lt;/span&gt;&lt;/code&gt;
&lt;br&gt;
&lt;br&gt;
&lt;code class="ruby"&gt;# Custom Specification Class&lt;br&gt;
&lt;span class="keywords"&gt;class&lt;/span&gt; &lt;span class="constants"&gt;UserSpecification&lt;/span&gt; &amp;lt; &lt;span class="constants"&gt;ActiveSpec&lt;/span&gt;:&lt;span class="symbol"&gt;:Base&lt;/span&gt;
&lt;br&gt;
requires_presence_of &lt;span class="symbol"&gt;:username&lt;/span&gt;, &lt;span class="symbol"&gt;:password&lt;/span&gt;
&lt;br&gt;
requires_size 6, &lt;span class="symbol"&gt;:password&lt;/span&gt;
&lt;br&gt;
requires_confirmation_of &lt;span class="symbol"&gt;:password&lt;/span&gt;
&lt;br&gt;
requires_inclusion_in 18&lt;span class="method"&gt;..30&lt;/span&gt;, &lt;span class="symbol"&gt;:age&lt;/span&gt;
&lt;br&gt;
&lt;span class="keywords"&gt;end&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span class="constants"&gt;UserSpecification&lt;/span&gt;&lt;span class="method"&gt;.satisfied_by?&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;some_user&lt;span class="brackets"&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="ruby"&gt;
&lt;br&gt;
&lt;span class="comment"&gt;# pure ruby selection&lt;/span&gt;
&lt;br&gt;
&lt;span class="constants"&gt;User&lt;/span&gt;&lt;span class="method"&gt;.find_by_specification&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="constants"&gt;SomeAdvancedUserSpecification&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span class="comment"&gt;# specifications for SQL queries?&lt;/span&gt;
&lt;br&gt;
&lt;span class="constants"&gt;User&lt;/span&gt;&lt;span class="method"&gt;.find&lt;/span&gt;&lt;span class="brackets"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:all&lt;/span&gt;, &lt;span class="symbol"&gt;:conditions&lt;/span&gt; =&amp;gt; &lt;span class="constants"&gt;SomeAdvancedUserSpecification&lt;/span&gt;&lt;span class="method"&gt;.to_sql&lt;/span&gt;&lt;span class="brackets"&gt;)&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=edffadbc-191e-4dcd-8d1f-fcf89df8f030" /&gt;</description>
      <category>rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=5af1ef3c-0486-4922-bb6c-c23c44607e53</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,5af1ef3c-0486-4922-bb6c-c23c44607e53.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616630">
          <img src="http://images.amazon.com/images/P/0977616630.01._AA_SCMZZZZZZZ_.jpg" align="right" border="0" hspace="10" vspace="10" />
        </a>I
must say I'm growing more fond of Rails the more I use it. It seems like it was actually
designed by someone writing real applications for a living, and designed to make the
common things that we have to do in most applications straightforward and easy. 
Tonight I needed to add some logic to send out emails so I read through the ActionMailer
chapter in <a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616630">Agile
Web Development with Rails</a>.  For those interested, sending out emails in
Rails requires that a mailer class be created that inherits from ActionMailer. 
The easiest way to do this is to run the mailer generator like so:<br /><br />
script/generate mailer OrderEmail confirm_order<br /><br />
The generator creates a mailer object in the models folder of your Rails application
that looks like so:<br /><br />
class OrderEmailer &lt; ActionMailer::Base<br />
  def confirm_order(sent_at = Time.now)<br />
    @subject    = 'OrderEmailer#confirm_order'<br />
    @body       = {}<br />
    @recipients = ''<br />
    @from       = ''<br />
    @sent_on    = sent_at<br />
    @headers    = {}<br />
  end<br />
end<br /><br />
Which we may modify to have the necessary settings, and accept the necessary order
parameter like so:<br /><br />
class OrderEmailer &lt; ActionMailer::Base<br />
  def confirm_order(order)<br />
    @subject    = 'Thank you for your Order'<br />
    @body       = {:order =&gt; order}<br />
    @recipients = order.customer.email<br />
    @from       = 'steve@sellscoolstuff.com'<br />
    @sent_on    = Time.now<br />
    @headers    = {}<br />
  end<br />
end<br /><br />
The generator also creates a rhtml template for the email in the views/order_mailer
folder that can be used to construct the email message.  To send the email is
simply a matter of calling the deliver_confirm_order method on OrderMailer. 
Take notice that we call deliver_confirm_order and not just confirm_order.  Rails
supports either sending emails out by using the deliver_ prefix, or allows the emails
to be created by prefixing the mailer method with create_. What's really nice is that
the Mailer uses a rhtml template within the views directory for the mailer (views/order_mailer
in the example above) to generate the email.  This allows you to create emails
using the same mechanisms used to create dynamic pages within Rails.  Plain text
emails can be created, or the mailer methods and views can be updated to pass along
parameters, which we do above with the order parameter.  The only difference
between a mailer template and a template for a controller is that the mailer view
is being used to create a text email rather than an HTML page that will be rendered
to the browser.<br /><br />
With my mailer in place I had everything I needed to send out the necessary emails. 
There was only one problem, on my MacBook Pro the emails I was generating weren't
sending.  Luckily I was able to find this page on <a href="http://www.david-reitter.com/software/osxpostfix.html#tiger">how
to get OS X setup to send emails via SMTP</a>.  After following these steps I
updated my /config/environments/development.rb file to have the following settings
for ActionMailer and all was good!<br /><br />
config.action_mailer.server_settings = { 
<br />
  :address =&gt; "127.0.0.1",<br />
  :port =&gt; 25<br />
}<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=5af1ef3c-0486-4922-bb6c-c23c44607e53" /></body>
      <title>Sending email with ActionMailer from OS X</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,5af1ef3c-0486-4922-bb6c-c23c44607e53.aspx</guid>
      <link>http://iqueryable.com/2007/06/13/SendingEmailWithActionMailerFromOSX.aspx</link>
      <pubDate>Wed, 13 Jun 2007 02:38:32 GMT</pubDate>
      <description>&lt;a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616630"&gt;&lt;img src="http://images.amazon.com/images/P/0977616630.01._AA_SCMZZZZZZZ_.jpg" align="right" border="0" hspace="10" vspace="10"&gt;&lt;/a&gt;I
must say I'm growing more fond of Rails the more I use it. It seems like it was actually
designed by someone writing real applications for a living, and designed to make the
common things that we have to do in most applications straightforward and easy.&amp;nbsp;
Tonight I needed to add some logic to send out emails so I read through the ActionMailer
chapter in &lt;a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616630"&gt;Agile
Web Development with Rails&lt;/a&gt;.&amp;nbsp; For those interested, sending out emails in
Rails requires that a mailer class be created that inherits from ActionMailer.&amp;nbsp;
The easiest way to do this is to run the mailer generator like so:&lt;br&gt;
&lt;br&gt;
script/generate mailer OrderEmail confirm_order&lt;br&gt;
&lt;br&gt;
The generator creates a mailer object in the models folder of your Rails application
that looks like so:&lt;br&gt;
&lt;br&gt;
class OrderEmailer &amp;lt; ActionMailer::Base&lt;br&gt;
&amp;nbsp; def confirm_order(sent_at = Time.now)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @subject&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'OrderEmailer#confirm_order'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @body&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = {}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @recipients = ''&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ''&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @sent_on&amp;nbsp;&amp;nbsp;&amp;nbsp; = sent_at&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @headers&amp;nbsp;&amp;nbsp;&amp;nbsp; = {}&lt;br&gt;
&amp;nbsp; end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
Which we may modify to have the necessary settings, and accept the necessary order
parameter like so:&lt;br&gt;
&lt;br&gt;
class OrderEmailer &amp;lt; ActionMailer::Base&lt;br&gt;
&amp;nbsp; def confirm_order(order)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @subject&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'Thank you for your Order'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @body&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = {:order =&amp;gt; order}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @recipients = order.customer.email&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'steve@sellscoolstuff.com'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @sent_on&amp;nbsp;&amp;nbsp;&amp;nbsp; = Time.now&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @headers&amp;nbsp;&amp;nbsp;&amp;nbsp; = {}&lt;br&gt;
&amp;nbsp; end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
The generator also creates a rhtml template for the email in the views/order_mailer
folder that can be used to construct the email message.&amp;nbsp; To send the email is
simply a matter of calling the deliver_confirm_order method on OrderMailer.&amp;nbsp;
Take notice that we call deliver_confirm_order and not just confirm_order.&amp;nbsp; Rails
supports either sending emails out by using the deliver_ prefix, or allows the emails
to be created by prefixing the mailer method with create_. What's really nice is that
the Mailer uses a rhtml template within the views directory for the mailer (views/order_mailer
in the example above) to generate the email.&amp;nbsp; This allows you to create emails
using the same mechanisms used to create dynamic pages within Rails.&amp;nbsp; Plain text
emails can be created, or the mailer methods and views can be updated to pass along
parameters, which we do above with the order parameter.&amp;nbsp; The only difference
between a mailer template and a template for a controller is that the mailer view
is being used to create a text email rather than an HTML page that will be rendered
to the browser.&lt;br&gt;
&lt;br&gt;
With my mailer in place I had everything I needed to send out the necessary emails.&amp;nbsp;
There was only one problem, on my MacBook Pro the emails I was generating weren't
sending.&amp;nbsp; Luckily I was able to find this page on &lt;a href="http://www.david-reitter.com/software/osxpostfix.html#tiger"&gt;how
to get OS X setup to send emails via SMTP&lt;/a&gt;.&amp;nbsp; After following these steps I
updated my /config/environments/development.rb file to have the following settings
for ActionMailer and all was good!&lt;br&gt;
&lt;br&gt;
config.action_mailer.server_settings = { 
&lt;br&gt;
&amp;nbsp; :address =&amp;gt; "127.0.0.1",&lt;br&gt;
&amp;nbsp; :port =&amp;gt; 25&lt;br&gt;
}&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=5af1ef3c-0486-4922-bb6c-c23c44607e53" /&gt;</description>
      <category>rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=74c4285b-f9d6-496a-a1ae-1895f5d5d8e7</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,74c4285b-f9d6-496a-a1ae-1895f5d5d8e7.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">As I stated a couple days ago, I was planning
on learning <a href="http://castleproject.org/monorail/">MonoRail</a> for a very small
project that I'm working on.  Due to various circumstances, I'm not going to
be using MonoRail, and will instead be learning a little more Ruby on Rails. 
The primary issue is that I've been having a lot of problems as well as frustrations
with <a href="http://www.parallels.com/">Parallels</a> lately.  The  biggest
frustration is that I can't seem to get going within VS.NET due to OS X having all
my common keyboard shortcuts mapped to other things.  I know I could remap them,
but when I'm in OS X I want them to be mapped to the things they're supposed to. 
The other issue is that VS.NET is repeatedly hanging, left and right.  I'm not
sure if its a Parallels issue, or a problem with having both Orcas and VS 2005 installed
or something else.  What I do know is that it makes trying to get anything done
very difficult.  The final issue, which may be much more my own fault than anyone
elses, is that getting going with Castle proved to take longer than I anticipated. 
My primary issue was in trying to get everything built from the trunk with the VS.NET
wizards and such setup.  I'm still getting a compile error that's related to
AL.exe which may be related to having Orcas installed side by side with 2005.<br /><br />
Anyway, I've decided to go with Ruby on Rails instead.  Below are some things
that I think are going to be of value:<br /><ul><li><a href="http://snafu.diarrhea.ch/blog/article/4-serving-static-content-with-rails">Serving
Static Content with Rails</a></li><li><a href="http://www.activemerchant.org/">ActiveMerchant</a> (with this <a href="http://code.google.com/p/activemerchant/issues/detail?id=25&amp;can=2&amp;q=">PlugNPay
Gateway patch</a>)</li><li><a href="http://beast.caboo.se/">Beast</a> (<a href="http://claudio.cicali.org/article/107/integrating-beast-within-another-application">integrating
with another application</a>)<br /></li></ul>
By the time this project is over I should have a pretty good overall feel for Rails,
and will be posting my thoughts on it in comparison to my primary development platform
(.NET/C#). I'm going to continue to look into getting everything going with Castle
and MonoRail as well, since my initial reactions to it after going through some of
the getting started material and documentation was very positive.<br /><br />
Regarding the Parallels issue, I think I'm going to clean things up in my virtual
machine, copy them over to someplace safe on the network and go back to using BootCamp. 
While Coherence and such is nice, I simply can't be productive when running the applications
that are important to me (VS.NET) within Parallels.  Since Parallels supports
BootCamp, perhaps I'll still use Parallels from time to time to quickly switch between
XP and OS X, but for the most part I think I'll be ditching Parallels.  Heck,
maybe I'll just give up Windows all together, and become a Rails developer. :)<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=74c4285b-f9d6-496a-a1ae-1895f5d5d8e7" /></body>
      <title>Parallels is trying to make me a Ruby on Rails developer</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,74c4285b-f9d6-496a-a1ae-1895f5d5d8e7.aspx</guid>
      <link>http://iqueryable.com/2007/06/10/ParallelsIsTryingToMakeMeARubyOnRailsDeveloper.aspx</link>
      <pubDate>Sun, 10 Jun 2007 00:57:39 GMT</pubDate>
      <description>As I stated a couple days ago, I was planning on learning &lt;a href="http://castleproject.org/monorail/"&gt;MonoRail&lt;/a&gt; for
a very small project that I'm working on.&amp;nbsp; Due to various circumstances, I'm
not going to be using MonoRail, and will instead be learning a little more Ruby on
Rails.&amp;nbsp; The primary issue is that I've been having a lot of problems as well
as frustrations with &lt;a href="http://www.parallels.com/"&gt;Parallels&lt;/a&gt; lately.&amp;nbsp;
The&amp;nbsp; biggest frustration is that I can't seem to get going within VS.NET due
to OS X having all my common keyboard shortcuts mapped to other things.&amp;nbsp; I know
I could remap them, but when I'm in OS X I want them to be mapped to the things they're
supposed to.&amp;nbsp; The other issue is that VS.NET is repeatedly hanging, left and
right.&amp;nbsp; I'm not sure if its a Parallels issue, or a problem with having both
Orcas and VS 2005 installed or something else.&amp;nbsp; What I do know is that it makes
trying to get anything done very difficult.&amp;nbsp; The final issue, which may be much
more my own fault than anyone elses, is that getting going with Castle proved to take
longer than I anticipated.&amp;nbsp; My primary issue was in trying to get everything
built from the trunk with the VS.NET wizards and such setup.&amp;nbsp; I'm still getting
a compile error that's related to AL.exe which may be related to having Orcas installed
side by side with 2005.&lt;br&gt;
&lt;br&gt;
Anyway, I've decided to go with Ruby on Rails instead.&amp;nbsp; Below are some things
that I think are going to be of value:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://snafu.diarrhea.ch/blog/article/4-serving-static-content-with-rails"&gt;Serving
Static Content with Rails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.activemerchant.org/"&gt;ActiveMerchant&lt;/a&gt; (with this &lt;a href="http://code.google.com/p/activemerchant/issues/detail?id=25&amp;amp;can=2&amp;amp;q="&gt;PlugNPay
Gateway patch&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://beast.caboo.se/"&gt;Beast&lt;/a&gt; (&lt;a href="http://claudio.cicali.org/article/107/integrating-beast-within-another-application"&gt;integrating
with another application&lt;/a&gt;)&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
By the time this project is over I should have a pretty good overall feel for Rails,
and will be posting my thoughts on it in comparison to my primary development platform
(.NET/C#). I'm going to continue to look into getting everything going with Castle
and MonoRail as well, since my initial reactions to it after going through some of
the getting started material and documentation was very positive.&lt;br&gt;
&lt;br&gt;
Regarding the Parallels issue, I think I'm going to clean things up in my virtual
machine, copy them over to someplace safe on the network and go back to using BootCamp.&amp;nbsp;
While Coherence and such is nice, I simply can't be productive when running the applications
that are important to me (VS.NET) within Parallels.&amp;nbsp; Since Parallels supports
BootCamp, perhaps I'll still use Parallels from time to time to quickly switch between
XP and OS X, but for the most part I think I'll be ditching Parallels.&amp;nbsp; Heck,
maybe I'll just give up Windows all together, and become a Rails developer. :)&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=74c4285b-f9d6-496a-a1ae-1895f5d5d8e7" /&gt;</description>
      <category>monorail;rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=57677d4f-d6cb-4c3a-a772-6f622b11238b</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,57677d4f-d6cb-4c3a-a772-6f622b11238b.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Tonight I found out the hard way that prior
to version 5, MySQL don't support using an aggregate in an ORDER BY clause. 
Unfortunetly my web host is currently on 4.1.21-standard of MySQL while my development
machine is running 5.0.27-standard.  The end result is that some pages within
the Rails app that I'm working on are not working so well on my staging box at <a href="http://www.site5.com/in.php?id=34972">Site5</a> :(<br /><br />
I tried to find details online about when ordering by aggregates was added, however,
I didn't have any luck so all I know is that it works in the version on my dev machine,
but not on the version that my web host is running.<br /><br />
Update: For those interested the work around is to include the aggregate in the select
list with an alias, and then order by the alias.  So instead of including the
aggregate in the order by like so:<br /><br />
SELECT Column1, Column2, etc FROM MyTable LEFT OUTER JOIN MyJoinedTable on MyTable.Id
= MyJoinedTable.OtherId ORDER BY COUNT(*)<br /><br />
You instead need to do something along the lines of:<br /><br />
SELECT Column1, Column2, etc, COUNT(*) Cnt FROM MyTable LEFT OUTER JOIN MyJoinedTable
on MyTable.Id = MyJoinedTable.OtherId ORDER BY Cnt<br /><br />
And yes, I know the SQL here is completely contrived and might not be showing why
the order by count is needed but that's not the point.  And for those wondering,
as far as I can tell Rails doesn't exactly make it easy for  me to do what I
need to do.  I can write all the SQL myself, but I was using find along with
an :include to pull in an association, which means the necessary SQL isn't something
I want to write if I don't have to.<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=57677d4f-d6cb-4c3a-a772-6f622b11238b" /></body>
      <title>Ordering By an Aggregate in MySQL</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,57677d4f-d6cb-4c3a-a772-6f622b11238b.aspx</guid>
      <link>http://iqueryable.com/2007/06/08/OrderingByAnAggregateInMySQL.aspx</link>
      <pubDate>Fri, 08 Jun 2007 01:59:56 GMT</pubDate>
      <description>Tonight I found out the hard way that prior to version 5, MySQL don't support using an aggregate in an ORDER BY clause.&amp;nbsp; Unfortunetly my web host is currently on 4.1.21-standard of MySQL while my development machine is running 5.0.27-standard.&amp;nbsp; The end result is that some pages within the Rails app that I'm working on are not working so well on my staging box at &lt;a href="http://www.site5.com/in.php?id=34972"&gt;Site5&lt;/a&gt; :(&lt;br&gt;
&lt;br&gt;
I tried to find details online about when ordering by aggregates was added, however,
I didn't have any luck so all I know is that it works in the version on my dev machine,
but not on the version that my web host is running.&lt;br&gt;
&lt;br&gt;
Update: For those interested the work around is to include the aggregate in the select
list with an alias, and then order by the alias.&amp;nbsp; So instead of including the
aggregate in the order by like so:&lt;br&gt;
&lt;br&gt;
SELECT Column1, Column2, etc FROM MyTable LEFT OUTER JOIN MyJoinedTable on MyTable.Id
= MyJoinedTable.OtherId ORDER BY COUNT(*)&lt;br&gt;
&lt;br&gt;
You instead need to do something along the lines of:&lt;br&gt;
&lt;br&gt;
SELECT Column1, Column2, etc, COUNT(*) Cnt FROM MyTable LEFT OUTER JOIN MyJoinedTable
on MyTable.Id = MyJoinedTable.OtherId ORDER BY Cnt&lt;br&gt;
&lt;br&gt;
And yes, I know the SQL here is completely contrived and might not be showing why
the order by count is needed but that's not the point.&amp;nbsp; And for those wondering,
as far as I can tell Rails doesn't exactly make it easy for&amp;nbsp; me to do what I
need to do.&amp;nbsp; I can write all the SQL myself, but I was using find along with
an :include to pull in an association, which means the necessary SQL isn't something
I want to write if I don't have to.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=57677d4f-d6cb-4c3a-a772-6f622b11238b" /&gt;</description>
      <category>data;mysql;rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=1e760f7d-2d24-441f-8b62-951faedc9e5e</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,1e760f7d-2d24-441f-8b62-951faedc9e5e.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">As I've mentioned serveral times lately
I'm currently working on a <a href="http://www.rubyonrails.com/">Rails</a> application. 
Overall, I've really enjoyed the experience and I'm glad that I took the plunge into
unknown territory.  For the most part I've been creating everything within my
Rails application as <a href="http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations">resources</a>. 
For those who don't know, using resources within Rails is how cool people build Rails
apps these days.  Creating a Rails app as a set of resources makes it so your
app automagically has a set of RESTful services that can be consumed by the likes
of <a href="http://ryandaigle.com/articles/2006/06/30/whats-new-in-edge-rails-activeresource-is-here">ActiveResource</a>.
Up until know I've had things setup pretty simply, and as such have only had standalone
resources.  Tonight I needed to add a nested resources and <a href="http://ariejan.net/2007/01/23/rails-nested-resource-scaffold/">found
this post on the topic very helpful</a>.  
<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=1e760f7d-2d24-441f-8b62-951faedc9e5e" /></body>
      <title>Ruby on Rails: How do I nest resources with resource scaffolding?</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,1e760f7d-2d24-441f-8b62-951faedc9e5e.aspx</guid>
      <link>http://iqueryable.com/2007/05/31/RubyOnRailsHowDoINestResourcesWithResourceScaffolding.aspx</link>
      <pubDate>Thu, 31 May 2007 03:13:44 GMT</pubDate>
      <description>As I've mentioned serveral times lately I'm currently working on a &lt;a href="http://www.rubyonrails.com/"&gt;Rails&lt;/a&gt; application.&amp;nbsp;
Overall, I've really enjoyed the experience and I'm glad that I took the plunge into
unknown territory.&amp;nbsp; For the most part I've been creating everything within my
Rails application as &lt;a href="http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations"&gt;resources&lt;/a&gt;.&amp;nbsp;
For those who don't know, using resources within Rails is how cool people build Rails
apps these days.&amp;nbsp; Creating a Rails app as a set of resources makes it so your
app automagically has a set of RESTful services that can be consumed by the likes
of &lt;a href="http://ryandaigle.com/articles/2006/06/30/whats-new-in-edge-rails-activeresource-is-here"&gt;ActiveResource&lt;/a&gt;.
Up until know I've had things setup pretty simply, and as such have only had standalone
resources.&amp;nbsp; Tonight I needed to add a nested resources and &lt;a href="http://ariejan.net/2007/01/23/rails-nested-resource-scaffold/"&gt;found
this post on the topic very helpful&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=1e760f7d-2d24-441f-8b62-951faedc9e5e" /&gt;</description>
      <category>rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=78c8a157-6f0a-4ae7-89c4-2d88a84ce43c</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,78c8a157-6f0a-4ae7-89c4-2d88a84ce43c.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Back in February <a href="http://iqueryable.com/2007/02/21/TheRightTimeForANewTechnology.aspx">I
posted about when the right time for a new technology is</a>.  As some likely
guessed after seeing <a href="http://iqueryable.com/2007/03/02/TrainRideReviewEverydayScriptingWithRuby.aspx">my
review of Everyday Scripting with Ruby and the list of books</a> that were on my next
up list I decided to go with Rails as my new technology for one of the projects. 
In a future post I'll detail how I've found the experience, and how it compares to
.NET land but that's for another day.  Today, I'd like to point out the fact
that nobody writes anything cool in .NET.  At least nobody writes any of the
cool stuff that I need in .NET.  Ok, perhaps I'm exagerating a bit....in actuality
the fact is that nobody writes social network visualization libraries in .NET. :) 
The project that I'm working on that's using Rails involves social networks. 
One of the things that I'll be getting to shortly is the actual visualization part
of the project.  What I'd really love is if someone would write <a href="http://prefuse.org/">something
as cool as this</a>, in Silverlight.   That way I could have my Rails application
call .NET code.  What could be better to piss off the Rails purists?  Afterall,
I'm supposed to have given up all things .NET by now and truelly converted to Rails,
right?  Ok, moving on....who wants to write <a href="http://prefuse.org/">prefuse</a> in
Silverlight?  It'd be a killer demo application to show off the capabilities
of Silverlight and would undoubtedly make it so the only RIA platform anyone chooses
is Silverlight.  Flash who?  Java FX what?  Flex...I think not. 
With prefuse.NET, Silverlight is guaranteed instant mass approval.  Or maybe
it'll just make me happy that I get to write .NET code that will access a RESTful
Rails service for data that lives inside a rhtml page.  Either way you win, right?<br /><br />
In all seriousness I think Silverlight would be a great technology for building web
based network visualization software.  While there's no way I'll have time to
write something as fully functional as I'll need, I think I'll apply the <i>learn
a new technology even if it will take longer</i> rule and give getting a basic network
visualization demo in Silverlight working.  Luckily, I think some of the <a href="http://silverlight.net/community/communitygallery.aspx">Silverlight
samples</a> (<a href="http://silverlight.net/community/gallerydetail.aspx?cat=2&amp;sort=2#vid87">such
as this one</a>) might get me moving in the right direction.  If anyone cares
to lend a hand, give me a shout!  Instance fame and fortune is within your grasp!<br /><br /><br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=78c8a157-6f0a-4ae7-89c4-2d88a84ce43c" /></body>
      <title>Visualizing Social Networks with Silverlight</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,78c8a157-6f0a-4ae7-89c4-2d88a84ce43c.aspx</guid>
      <link>http://iqueryable.com/2007/05/16/VisualizingSocialNetworksWithSilverlight.aspx</link>
      <pubDate>Wed, 16 May 2007 03:14:53 GMT</pubDate>
      <description>Back in February &lt;a href="http://iqueryable.com/2007/02/21/TheRightTimeForANewTechnology.aspx"&gt;I
posted about when the right time for a new technology is&lt;/a&gt;.&amp;nbsp; As some likely
guessed after seeing &lt;a href="http://iqueryable.com/2007/03/02/TrainRideReviewEverydayScriptingWithRuby.aspx"&gt;my
review of Everyday Scripting with Ruby and the list of books&lt;/a&gt; that were on my next
up list I decided to go with Rails as my new technology for one of the projects.&amp;nbsp;
In a future post I'll detail how I've found the experience, and how it compares to
.NET land but that's for another day.&amp;nbsp; Today, I'd like to point out the fact
that nobody writes anything cool in .NET.&amp;nbsp; At least nobody writes any of the
cool stuff that I need in .NET.&amp;nbsp; Ok, perhaps I'm exagerating a bit....in actuality
the fact is that nobody writes social network visualization libraries in .NET. :)&amp;nbsp;
The project that I'm working on that's using Rails involves social networks.&amp;nbsp;
One of the things that I'll be getting to shortly is the actual visualization part
of the project.&amp;nbsp; What I'd really love is if someone would write &lt;a href="http://prefuse.org/"&gt;something
as cool as this&lt;/a&gt;, in Silverlight.&amp;nbsp;&amp;nbsp; That way I could have my Rails application
call .NET code.&amp;nbsp; What could be better to piss off the Rails purists?&amp;nbsp; Afterall,
I'm supposed to have given up all things .NET by now and truelly converted to Rails,
right?&amp;nbsp; Ok, moving on....who wants to write &lt;a href="http://prefuse.org/"&gt;prefuse&lt;/a&gt; in
Silverlight?&amp;nbsp; It'd be a killer demo application to show off the capabilities
of Silverlight and would undoubtedly make it so the only RIA platform anyone chooses
is Silverlight.&amp;nbsp; Flash who?&amp;nbsp; Java FX what?&amp;nbsp; Flex...I think not.&amp;nbsp;
With prefuse.NET, Silverlight is guaranteed instant mass approval.&amp;nbsp; Or maybe
it'll just make me happy that I get to write .NET code that will access a RESTful
Rails service for data that lives inside a rhtml page.&amp;nbsp; Either way you win, right?&lt;br&gt;
&lt;br&gt;
In all seriousness I think Silverlight would be a great technology for building web
based network visualization software.&amp;nbsp; While there's no way I'll have time to
write something as fully functional as I'll need, I think I'll apply the &lt;i&gt;learn
a new technology even if it will take longer&lt;/i&gt; rule and give getting a basic network
visualization demo in Silverlight working.&amp;nbsp; Luckily, I think some of the &lt;a href="http://silverlight.net/community/communitygallery.aspx"&gt;Silverlight
samples&lt;/a&gt; (&lt;a href="http://silverlight.net/community/gallerydetail.aspx?cat=2&amp;amp;sort=2#vid87"&gt;such
as this one&lt;/a&gt;) might get me moving in the right direction.&amp;nbsp; If anyone cares
to lend a hand, give me a shout!&amp;nbsp; Instance fame and fortune is within your grasp!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=78c8a157-6f0a-4ae7-89c4-2d88a84ce43c" /&gt;</description>
      <category>.net;network visualization;rails;social networks;silverlight</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=3d716d5d-a594-4b4f-ae54-5f47928802c9</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,3d716d5d-a594-4b4f-ae54-5f47928802c9.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Over the last week or so I've been following
a thread of blog posts that outline some of the issues that <a href="http://twitter.com/">Twitter</a> is
experiencing.  For those of unfamiliar, Twitter is a "microblogging" site written
in <a href="http://www.rubyonrails.com/">Ruby on Rails</a>.  Over the last month
or so they've seen some very serious growth.  They're supposedly seeing over
11,000 request/sec which is putting a hurting on their servers.  In <a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/">this
interview</a>, Alex Payne points out some limitations in Rails, most notably it's
lack of built in support for talking to multiple databases, that are making it particularly
hard for them to handle the increased load.  As a result, several individual
have put together plugins to make working with multiple read only slave databases
possible.<br /><ul><li><a href="http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/" rel="bookmark">Magic
Multi-Connections: A “facility in Rails to talk to more than one database at a time”</a></li><li><a href="http://revolutiononrails.blogspot.com/2007/04/plugin-release-actsasreadonlyable.html">ActsAsReadonlyable</a></li></ul><br />
Along with checking out the plugins mentioned above you may want to checkout the following
posts that go into more detail on the problems.<br /><ul><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Twitter
trouble</a></li><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Twitter,
Ruby, and Scaling</a></li><li><a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">Rails and
Scaling with Multiple Databases</a></li></ul>
What I find particularly interesting in the series of posts that talk about the scaling
problems that Twitter is experiencing is that most of their problems are arising due
to the database server getting nailed.  They've been able to scale out their
web tier but that doesn't help their poor database server in the least.  I've
been thinking about writing a series (or maybe just one) post on some of the things
we've been thinking about regarding scaling our application.  It's not written
in Rails, and it doesn't need to handle 11,000 req/sec but it does need to handle
large sets of data and be "hot ass fast". We're currently positioned well to handle
scaling out our services tier quite easily, but we need to do some more work to figure
out how best to scale out our data tier.  We've had many discussions about how
scaling out our services may not help since it will only increase the pressure on
the database server.  Anyway, hopefully I'll get a chance to post more about
the things that we're thinking about in a future post.<br /><br />
Jumping back to the Twitter/Rails scaling problems...I'll be interested to see how
things end up with Twitter, and Rails.  I have a feeling that Rails will be better
off when all is said and done, but will it be because of Twitter, or in spite of it?<br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=3d716d5d-a594-4b4f-ae54-5f47928802c9" /></body>
      <title>Scaling Twitter</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,3d716d5d-a594-4b4f-ae54-5f47928802c9.aspx</guid>
      <link>http://iqueryable.com/2007/04/16/ScalingTwitter.aspx</link>
      <pubDate>Mon, 16 Apr 2007 01:51:37 GMT</pubDate>
      <description>Over the last week or so I've been following a thread of blog posts that outline some of the issues that &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; is
experiencing.&amp;nbsp; For those of unfamiliar, Twitter is a "microblogging" site written
in &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt;.&amp;nbsp; Over the last month
or so they've seen some very serious growth.&amp;nbsp; They're supposedly seeing over
11,000 request/sec which is putting a hurting on their servers.&amp;nbsp; In &lt;a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/"&gt;this
interview&lt;/a&gt;, Alex Payne points out some limitations in Rails, most notably it's
lack of built in support for talking to multiple databases, that are making it particularly
hard for them to handle the increased load.&amp;nbsp; As a result, several individual
have put together plugins to make working with multiple read only slave databases
possible.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/" rel="bookmark"&gt;Magic
Multi-Connections: A “facility in Rails to talk to more than one database at a time”&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://revolutiononrails.blogspot.com/2007/04/plugin-release-actsasreadonlyable.html"&gt;ActsAsReadonlyable&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
Along with checking out the plugins mentioned above you may want to checkout the following
posts that go into more detail on the problems.&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Twitter
trouble&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Twitter,
Ruby, and Scaling&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections"&gt;Rails and
Scaling with Multiple Databases&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
What I find particularly interesting in the series of posts that talk about the scaling
problems that Twitter is experiencing is that most of their problems are arising due
to the database server getting nailed.&amp;nbsp; They've been able to scale out their
web tier but that doesn't help their poor database server in the least.&amp;nbsp; I've
been thinking about writing a series (or maybe just one) post on some of the things
we've been thinking about regarding scaling our application.&amp;nbsp; It's not written
in Rails, and it doesn't need to handle 11,000 req/sec but it does need to handle
large sets of data and be "hot ass fast". We're currently positioned well to handle
scaling out our services tier quite easily, but we need to do some more work to figure
out how best to scale out our data tier.&amp;nbsp; We've had many discussions about how
scaling out our services may not help since it will only increase the pressure on
the database server.&amp;nbsp; Anyway, hopefully I'll get a chance to post more about
the things that we're thinking about in a future post.&lt;br&gt;
&lt;br&gt;
Jumping back to the Twitter/Rails scaling problems...I'll be interested to see how
things end up with Twitter, and Rails.&amp;nbsp; I have a feeling that Rails will be better
off when all is said and done, but will it be because of Twitter, or in spite of it?&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=3d716d5d-a594-4b4f-ae54-5f47928802c9" /&gt;</description>
      <category>performance;rails;ruby;twitter</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=8e80f602-6c47-455e-aec6-e7ce388132be</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,8e80f602-6c47-455e-aec6-e7ce388132be.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Simple, use the <a href="http://agilewebdevelopment.com/plugins/acts_as_enterprisey">acts_as_enterprisey
plugin</a>!  It doesn't get any easier than that does it?<br /><blockquote><p><i> Let’s face it, we all want the big bucks. And we all know Consultancy Law No.
1: </i></p><pre><i> Your Rates Are Proportional To Your App's Enterpriseyness<br /></i></pre><p><i> Or, as Shakespeare would have said: </i></p><pre><i> Enterprisey Apps Invite, Nay Demand, Enterprisey Rates. Verily, Sunshine.<br /></i></pre><p><i> Rails make life easy for us but — and it’s a big but — we don’t want it to look
easy. acts_as_enterprisey is your friend. </i></p><p><i> How does acts_as_enterprisey make webapp development look hard? Well, the only
way your client can judge your app is by playing around with it. What better gives
the feeling of heavy weights being lifted behind the scenes than slow response times?
Exactly. That’s what acts_as_enterprisey does. </i></p><p><i> So while your client clicks, …waits…, and then gets the page, you can blather
on heroically about wrestling with clustered indexes, cache expiration strategies,
n log n seek times, etc ad nauseam.</i></p><p><i><a href="http://agilewebdevelopment.com/plugins/acts_as_enterprisey">http://agilewebdevelopment.com/plugins/acts_as_enterprisey</a><br /></i></p></blockquote> On a more serious note, the <a href="http://agilewebdevelopment.com/">http://agilewebdevelopment.com/</a> site
has a lot of good information on Rails plugins.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=8e80f602-6c47-455e-aec6-e7ce388132be" /></body>
      <title>How do I make my Rails app enterprise ready?</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,8e80f602-6c47-455e-aec6-e7ce388132be.aspx</guid>
      <link>http://iqueryable.com/2007/03/03/HowDoIMakeMyRailsAppEnterpriseReady.aspx</link>
      <pubDate>Sat, 03 Mar 2007 22:28:25 GMT</pubDate>
      <description>Simple, use the &lt;a href="http://agilewebdevelopment.com/plugins/acts_as_enterprisey"&gt;acts_as_enterprisey
plugin&lt;/a&gt;!&amp;nbsp; It doesn't get any easier than that does it?&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;i&gt; Let’s face it, we all want the big bucks. And we all know Consultancy Law No.
1: &lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;i&gt; Your Rates Are Proportional To Your App's Enterpriseyness&lt;br&gt;
&lt;/i&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;i&gt; Or, as Shakespeare would have said: &lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;&lt;i&gt; Enterprisey Apps Invite, Nay Demand, Enterprisey Rates. Verily, Sunshine.&lt;br&gt;
&lt;/i&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;i&gt; Rails make life easy for us but — and it’s a big but — we don’t want it to look
easy. acts_as_enterprisey is your friend. &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt; How does acts_as_enterprisey make webapp development look hard? Well, the only
way your client can judge your app is by playing around with it. What better gives
the feeling of heavy weights being lifted behind the scenes than slow response times?
Exactly. That’s what acts_as_enterprisey does. &lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt; So while your client clicks, …waits…, and then gets the page, you can blather
on heroically about wrestling with clustered indexes, cache expiration strategies,
n log n seek times, etc ad nauseam.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;&lt;a href="http://agilewebdevelopment.com/plugins/acts_as_enterprisey"&gt;http://agilewebdevelopment.com/plugins/acts_as_enterprisey&lt;/a&gt;
&lt;br&gt;
&lt;/i&gt;
&lt;/p&gt;
&lt;/blockquote&gt; On a more serious note, the &lt;a href="http://agilewebdevelopment.com/"&gt;http://agilewebdevelopment.com/&lt;/a&gt; site
has a lot of good information on Rails plugins.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=8e80f602-6c47-455e-aec6-e7ce388132be" /&gt;</description>
      <category>rails</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=6ee84dfe-cae9-4685-9bce-355e58217a49</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,6ee84dfe-cae9-4685-9bce-355e58217a49.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616614">
          <img src="http://ec1.images-amazon.com/images/P/0977616614.01._AA_SCMZZZZZZZ_.jpg" align="right" border="0" hspace="20" vspace="10" />
        </a>As
you <a href="http://iqueryable.com/2007/02/26/AreYouNaked.aspx">may</a> have <a href="http://iqueryable.com/2007/02/22/LearnAboutRESTViaRails.aspx">noticed,</a> I
spend my mornings and evenings going to and from work on a train.  I usually
use this time to read, unless I have a pounding headache in which case I stare out
into space until I hear the call for my stop.  Anywho, I recently finished <a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616614">Everyday
Scripting with Ruby: For Teams, Testers, and You</a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0977616614" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /> by <a href="http://www.testing.com/">Brian
Marick</a>.  
<br /><br />
A while back when I was learning about <a href="http://steve.emxsoftware.com/RubyOnRails/Ruby+on+Rails+Migrations+Explained">Ruby
on Rails Migrations</a> I got a chance to learn a bit of Ruby.  This was mostly
due to the fact that the SQL Server adapters for Rails Migrations wasn't exactly up
to snuff, and in order to get a proof of concept going <a href="http://www.aaronfeng.com/">Aaron</a> and
I needed to <a href="http://steve.emxsoftware.com/RubyOnRails/Is+this+the+beginning+of+the+end+for+Rails">write
some Ruby code</a>.  The experience gave me a pretty good understanding of Ruby
as a language.  
<br /><br />
Fast forward a year, and all the sudden there I am forgetting everything that I learned. 
That is...until Everyday Scripting with Ruby.  Brian has put together a really
nice introduction to the Ruby language that should be approachable for programmers,
testers, and anyone else who likes to dabble in scripting.  I don't think I fit
exactly within the target audience, but I still found the book a worthwhile read and
would recommend it to anyone who would like to learn Ruby.  Along with <a href="http://www.amazon.com/gp/product/0974514055?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0974514055">Programming
Ruby</a> you should have all you need to master the Ruby language.  Brian does
a good job introducing the Ruby language, as well as offering valuable insight into
his world and how he goes about writing scripts. 
<br /><br />
In summary, <a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616614">Everyday
Scripting with Ruby</a> is a great edition to your bookshelf if your interested in
learning Ruby.  Those with many years of experience in the industry will likely
find parts of it "skippable" or "skimmable", but no matter how much experience you
have your bound to find a couple nuggets of wisdom that make it worth the twenty (or
so) bucks you'll plop down for it.<br /><br />
I'm not sure what's up next but I just made a mass purchase of books from Amazon. 
One of the following will make it into my work "briefcase" shortly.<br /><p></p><a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0977616630"><img src="http://images.amazon.com/images/P/0977616630.01._AA_SCMZZZZZZZ_.jpg" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=0977616630" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><a href="http://www.amazon.com/gp/product/1590597877?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590597877"><img src="http://images.amazon.com/images/P/1590597877.01._AA_SCMZZZZZZZ_.jpg" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=1590597877" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><a href="http://www.amazon.com/gp/product/097873923X?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=097873923X"><img src="http://images.amazon.com/images/P/097873923X.01._AA_SCMZZZZZZZ_.jpg" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=097873923X" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><a href="http://www.amazon.com/gp/product/1590597141?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590597141"><img src="http://images.amazon.com/images/P/1590597141.01._AA_SCMZZZZZZZ_V46847354_.jpg" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=1590597141" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><a href="http://www.amazon.com/gp/product/1591841380?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1591841380"><img src="http://images.amazon.com/images/P/1591841380.01._AA_SCMZZZZZZZ_.jpg" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;l=as2&amp;o=1&amp;a=1591841380" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /><br /><br />
Anyone care to guess what I've decided about <a href="http://iqueryable.com/2007/02/21/TheRightTimeForANewTechnology.aspx">the
right time for a new technology</a>? :)<br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6ee84dfe-cae9-4685-9bce-355e58217a49" /></body>
      <title>Train Ride Review: Everyday Scripting with Ruby</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,6ee84dfe-cae9-4685-9bce-355e58217a49.aspx</guid>
      <link>http://iqueryable.com/2007/03/02/TrainRideReviewEverydayScriptingWithRuby.aspx</link>
      <pubDate>Fri, 02 Mar 2007 03:37:54 GMT</pubDate>
      <description>&lt;a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616614"&gt;&lt;img src="http://ec1.images-amazon.com/images/P/0977616614.01._AA_SCMZZZZZZZ_.jpg" align="right" border="0" hspace="20" vspace="10"&gt;&lt;/a&gt;As
you &lt;a href="http://iqueryable.com/2007/02/26/AreYouNaked.aspx"&gt;may&lt;/a&gt; have &lt;a href="http://iqueryable.com/2007/02/22/LearnAboutRESTViaRails.aspx"&gt;noticed,&lt;/a&gt; I
spend my mornings and evenings going to and from work on a train.&amp;nbsp; I usually
use this time to read, unless I have a pounding headache in which case I stare out
into space until I hear the call for my stop.&amp;nbsp; Anywho, I recently finished &lt;a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616614"&gt;Everyday
Scripting with Ruby: For Teams, Testers, and You&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0977616614" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; by &lt;a href="http://www.testing.com/"&gt;Brian
Marick&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
A while back when I was learning about &lt;a href="http://steve.emxsoftware.com/RubyOnRails/Ruby+on+Rails+Migrations+Explained"&gt;Ruby
on Rails Migrations&lt;/a&gt; I got a chance to learn a bit of Ruby.&amp;nbsp; This was mostly
due to the fact that the SQL Server adapters for Rails Migrations wasn't exactly up
to snuff, and in order to get a proof of concept going &lt;a href="http://www.aaronfeng.com/"&gt;Aaron&lt;/a&gt; and
I needed to &lt;a href="http://steve.emxsoftware.com/RubyOnRails/Is+this+the+beginning+of+the+end+for+Rails"&gt;write
some Ruby code&lt;/a&gt;.&amp;nbsp; The experience gave me a pretty good understanding of Ruby
as a language.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Fast forward a year, and all the sudden there I am forgetting everything that I learned.&amp;nbsp;
That is...until Everyday Scripting with Ruby.&amp;nbsp; Brian has put together a really
nice introduction to the Ruby language that should be approachable for programmers,
testers, and anyone else who likes to dabble in scripting.&amp;nbsp; I don't think I fit
exactly within the target audience, but I still found the book a worthwhile read and
would recommend it to anyone who would like to learn Ruby.&amp;nbsp; Along with &lt;a href="http://www.amazon.com/gp/product/0974514055?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0974514055"&gt;Programming
Ruby&lt;/a&gt; you should have all you need to master the Ruby language.&amp;nbsp; Brian does
a good job introducing the Ruby language, as well as offering valuable insight into
his world and how he goes about writing scripts. 
&lt;br&gt;
&lt;br&gt;
In summary, &lt;a href="http://www.amazon.com/gp/product/0977616614?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616614"&gt;Everyday
Scripting with Ruby&lt;/a&gt; is a great edition to your bookshelf if your interested in
learning Ruby.&amp;nbsp; Those with many years of experience in the industry will likely
find parts of it "skippable" or "skimmable", but no matter how much experience you
have your bound to find a couple nuggets of wisdom that make it worth the twenty (or
so) bucks you'll plop down for it.&lt;br&gt;
&lt;br&gt;
I'm not sure what's up next but I just made a mass purchase of books from Amazon.&amp;nbsp;
One of the following will make it into my work "briefcase" shortly.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;a href="http://www.amazon.com/gp/product/0977616630?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0977616630"&gt;&lt;img src="http://images.amazon.com/images/P/0977616630.01._AA_SCMZZZZZZZ_.jpg" border="0"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0977616630" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; &lt;a href="http://www.amazon.com/gp/product/1590597877?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1590597877"&gt;&lt;img src="http://images.amazon.com/images/P/1590597877.01._AA_SCMZZZZZZZ_.jpg" border="0"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1590597877" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; &lt;a href="http://www.amazon.com/gp/product/097873923X?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=097873923X"&gt;&lt;img src="http://images.amazon.com/images/P/097873923X.01._AA_SCMZZZZZZZ_.jpg" border="0"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=097873923X" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; &lt;a href="http://www.amazon.com/gp/product/1590597141?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1590597141"&gt;&lt;img src="http://images.amazon.com/images/P/1590597141.01._AA_SCMZZZZZZZ_V46847354_.jpg" border="0"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1590597141" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt; &lt;a href="http://www.amazon.com/gp/product/1591841380?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1591841380"&gt;&lt;img src="http://images.amazon.com/images/P/1591841380.01._AA_SCMZZZZZZZ_.jpg" border="0"&gt;&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=steveeichert-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1591841380" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1"&gt;
&lt;br&gt;
&lt;br&gt;
Anyone care to guess what I've decided about &lt;a href="http://iqueryable.com/2007/02/21/TheRightTimeForANewTechnology.aspx"&gt;the
right time for a new technology&lt;/a&gt;? :)&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6ee84dfe-cae9-4685-9bce-355e58217a49" /&gt;</description>
      <category>books;rails;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=be502d28-3b78-4cbc-8f8c-9606dbc61469</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,be502d28-3b78-4cbc-8f8c-9606dbc61469.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">While installing Rails and friends using
something like MacPorts may prove to be a little less time consuming and less error
prone, I think installing from source is the way to go.  Dan Benjamin, over on
Hivelogic, has <a href="http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx">an
excellent tutorial that steps you through all the steps to pull down and compile the
source for Ruby, Rails, MySQL, Subversion, and Mongrel</a>.  Over the last couple
hours, in between a bunch of other things I've been doing, I walked through Dan's
install guide and I'm happy to report everything went very smooth!  If you do
decide to go the MacPorts route, <a href="http://pragdave.pragprog.com/pragdave/2007/02/installing_rail.html">I've
been told</a>, that <a href="http://blog.duncandavidson.com/2006/04/sandboxing_rail.html">James
Duncan Davidson's tutorial</a> is where to go.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=be502d28-3b78-4cbc-8f8c-9606dbc61469" /></body>
      <title>OS X Install Guide for Ruby, Rails, MySQL, Subversion, and Mongrel</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,be502d28-3b78-4cbc-8f8c-9606dbc61469.aspx</guid>
      <link>http://iqueryable.com/2007/02/24/OSXInstallGuideForRubyRailsMySQLSubversionAndMongrel.aspx</link>
      <pubDate>Sat, 24 Feb 2007 03:11:46 GMT</pubDate>
      <description>While installing Rails and friends using something like MacPorts may prove to be a little less time consuming and less error prone, I think installing from source is the way to go.&amp;nbsp; Dan Benjamin, over on Hivelogic, has &lt;a href="http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx"&gt;an
excellent tutorial that steps you through all the steps to pull down and compile the
source for Ruby, Rails, MySQL, Subversion, and Mongrel&lt;/a&gt;.&amp;nbsp; Over the last couple
hours, in between a bunch of other things I've been doing, I walked through Dan's
install guide and I'm happy to report everything went very smooth!&amp;nbsp; If you do
decide to go the MacPorts route, &lt;a href="http://pragdave.pragprog.com/pragdave/2007/02/installing_rail.html"&gt;I've
been told&lt;/a&gt;, that &lt;a href="http://blog.duncandavidson.com/2006/04/sandboxing_rail.html"&gt;James
Duncan Davidson's tutorial&lt;/a&gt; is where to go.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=be502d28-3b78-4cbc-8f8c-9606dbc61469" /&gt;</description>
      <category>rails</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=516c8f25-637a-4d0a-90d1-839ef233c767</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,516c8f25-637a-4d0a-90d1-839ef233c767.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">On the train ride to and from work today
I read <a href="http://www.b-simple.de/documents">RESTful Rails Development</a>. 
I've already done a fair bit of reading on REST and I've worked with several RESTful
APIs lately (Amazon, Flickr), however, I found the RESTful Rails Development article
a good introduction to what is at the heart of REST API's.  Namely, the idea
of resources, and more specifically URI addressable resources.  The support for
REST within Rails 1.2 adds a lot of nice features, and looks like a great way to support
multiple output formats (html, xml, javascript, rss/atom, etc.) for applications that
are oriented around resources.  Anyway, if your interested in REST or Rails,
it's worth a read.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=516c8f25-637a-4d0a-90d1-839ef233c767" /></body>
      <title>Learn about REST via Rails</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,516c8f25-637a-4d0a-90d1-839ef233c767.aspx</guid>
      <link>http://iqueryable.com/2007/02/22/LearnAboutRESTViaRails.aspx</link>
      <pubDate>Thu, 22 Feb 2007 01:36:50 GMT</pubDate>
      <description>On the train ride to and from work today I read &lt;a href="http://www.b-simple.de/documents"&gt;RESTful
Rails Development&lt;/a&gt;.&amp;nbsp; I've already done a fair bit of reading on REST and I've
worked with several RESTful APIs lately (Amazon, Flickr), however, I found the RESTful
Rails Development article a good introduction to what is at the heart of REST API's.&amp;nbsp;
Namely, the idea of resources, and more specifically URI addressable resources.&amp;nbsp;
The support for REST within Rails 1.2 adds a lot of nice features, and looks like
a great way to support multiple output formats (html, xml, javascript, rss/atom, etc.)
for applications that are oriented around resources.&amp;nbsp; Anyway, if your interested
in REST or Rails, it's worth a read.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=516c8f25-637a-4d0a-90d1-839ef233c767" /&gt;</description>
      <category>rails;rest</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=ce80034e-2fd6-4ec7-abc0-9517ef2b70e0</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,ce80034e-2fd6-4ec7-abc0-9517ef2b70e0.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I've been thinking recently that I need
to learn something new. Whether it be a new technology on the .NET side of the house,
or a new language, or a new web framework. I'm not sure what, but, I definitely feel
like I need something new that will cause me to stretch my mind a bit. 
<br /><br />
I've had the itch to dive into WPF for a while, but don't have a whole lot of time
at the moment to do anything on that front.  While I do have several ideas for
little WPF apps I'd like to see built for myself I have concerns it'd be a wasted
effort since my design/UI skills have diminished over the years, and what sense is
building a WPF app if you can make it look slick as all get out?  
<br /><br />
I've also been thinking a bit about trying my hand with a new language.  The
top contenders would be Ruby, via <a href="http://www.rubyonrails.com/">Rails</a>,
or Python (with <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython">IronPython</a>). 
I'm leaning more towards the Ruby/Rails track since it would involve me stepping almost
completely out of my comfort zone.  
<br /><br />
I have a few things on my plate that I could choose to do using non .NET technologies. 
Of course the problem is that I could undoubtedly do them much faster using my bread
and butter technologies.  The benefit of the .NET appraoch would be that I could
get more things done and perhaps have extra spending money due to being able to do
more of the little projects I've been asked by peeps to lend a hand on.  The
downside is that I'd still feel like I need to learn something new, and stretch my
brain a bit.  I've run into this same scenario many many times in the past, and
always went with the approach that would get things done the fastest since I never
seem to have enough time available for anything else.  The problem, of course,
is one of the main reasons for doing little side projects outside of work is to stretch
yourself in ways that you might not be able to otherwise.<br /><br />
When confronted with such dilema's how do you choose?  Do you go safe, and stick
with what you know, or do go with the more difficult, and potentially more rewarding
path of trying something completely new?<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=ce80034e-2fd6-4ec7-abc0-9517ef2b70e0" /></body>
      <title>The right time for a new technology</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,ce80034e-2fd6-4ec7-abc0-9517ef2b70e0.aspx</guid>
      <link>http://iqueryable.com/2007/02/21/TheRightTimeForANewTechnology.aspx</link>
      <pubDate>Wed, 21 Feb 2007 03:52:49 GMT</pubDate>
      <description>I've been thinking recently that I need to learn something new. Whether it be a new technology on the .NET side of the house, or a new language, or a new web framework. I'm not sure what, but, I definitely feel like I need something new that will cause me to stretch my mind a bit. &lt;br&gt;
&lt;br&gt;
I've had the itch to dive into WPF for a while, but don't have a whole lot of time
at the moment to do anything on that front.&amp;nbsp; While I do have several ideas for
little WPF apps I'd like to see built for myself I have concerns it'd be a wasted
effort since my design/UI skills have diminished over the years, and what sense is
building a WPF app if you can make it look slick as all get out?&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
I've also been thinking a bit about trying my hand with a new language.&amp;nbsp; The
top contenders would be Ruby, via &lt;a href="http://www.rubyonrails.com/"&gt;Rails&lt;/a&gt;,
or Python (with &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt;IronPython&lt;/a&gt;).&amp;nbsp;
I'm leaning more towards the Ruby/Rails track since it would involve me stepping almost
completely out of my comfort zone.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
I have a few things on my plate that I could choose to do using non .NET technologies.&amp;nbsp;
Of course the problem is that I could undoubtedly do them much faster using my bread
and butter technologies.&amp;nbsp; The benefit of the .NET appraoch would be that I could
get more things done and perhaps have extra spending money due to being able to do
more of the little projects I've been asked by peeps to lend a hand on.&amp;nbsp; The
downside is that I'd still feel like I need to learn something new, and stretch my
brain a bit.&amp;nbsp; I've run into this same scenario many many times in the past, and
always went with the approach that would get things done the fastest since I never
seem to have enough time available for anything else.&amp;nbsp; The problem, of course,
is one of the main reasons for doing little side projects outside of work is to stretch
yourself in ways that you might not be able to otherwise.&lt;br&gt;
&lt;br&gt;
When confronted with such dilema's how do you choose?&amp;nbsp; Do you go safe, and stick
with what you know, or do go with the more difficult, and potentially more rewarding
path of trying something completely new?&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=ce80034e-2fd6-4ec7-abc0-9517ef2b70e0" /&gt;</description>
      <category>.net;rails</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=6172af25-ac78-4d00-ac98-af45ad011633</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,6172af25-ac78-4d00-ac98-af45ad011633.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">One of the things that draws me to <a href="http://www.rubyonrails.com/">Ruby
on Rails</a> is the passion that I see from those who use it day in and day out. 
Ryan McMinn from <a href="http://unspace.ca/">Unspace</a>, falls squarely in the passionate
for Rails camp. He recently <a href="http://unspace.ca/innovation/speak/">gave a short
talk about the approach that Unspace uses to build software</a>.  They don't
do specs, they don't do contracts, and they don't "conform".<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6172af25-ac78-4d00-ac98-af45ad011633" /></body>
      <title>Dare to be different</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,6172af25-ac78-4d00-ac98-af45ad011633.aspx</guid>
      <link>http://iqueryable.com/2007/02/16/DareToBeDifferent.aspx</link>
      <pubDate>Fri, 16 Feb 2007 03:00:29 GMT</pubDate>
      <description>One of the things that draws me to &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt; is
the passion that I see from those who use it day in and day out.&amp;nbsp; Ryan McMinn
from &lt;a href="http://unspace.ca/"&gt;Unspace&lt;/a&gt;, falls squarely in the passionate for
Rails camp. He recently &lt;a href="http://unspace.ca/innovation/speak/"&gt;gave a short
talk about the approach that Unspace uses to build software&lt;/a&gt;.&amp;nbsp; They don't
do specs, they don't do contracts, and they don't "conform".&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6172af25-ac78-4d00-ac98-af45ad011633" /&gt;</description>
      <category>rails;software</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=0aa2a09b-4013-4918-a831-1264840687fa</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,0aa2a09b-4013-4918-a831-1264840687fa.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.activesharp.com/">John Rusk</a> left a <a href="http://iqueryable.com/CommentView,guid,6441f966-6135-4327-b15c-4ed03120f093.aspx#commentstart">comment</a> on
my <a href="http://iqueryable.com/2007/02/02/DevelopersDitchingMicrosoftForRails.aspx">Developers
ditching Microsoft for Rails</a> post and brought to light the fact that developers
might not be leaving because of what Rails is doing right, but instead because of
what .NET is doing wrong.  I definitely agree that many of the reasons people
leave the .NET world for technologies like Rails is because working in .NET isn't
as smooth as it should be.  One of the things that makes Rails so successful
is its focus, and the embracing of constraints.  Rather then trying to be everything
to everybody, Rails is focused on a specific vision.  As I've said in the past, <a href="http://steve.emxsoftware.com/RubyOnRails/Rails+isOpinionated+Software">Rails
is opinionated software</a>. 
</p>
        <p>
For those looking for Rails-ish frameworks in the .NET world you might want to checkout <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack">SubSonic</a> and <a href="http://www.castleproject.org/">Castle's
ActiveRecord and MonoRail</a> projects.  I just had <a href="http://steve.emxsoftware.com/NET/Ruby+on+Rails+NET">De-ja-vu</a>.
</p>
        <img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0aa2a09b-4013-4918-a831-1264840687fa" />
      </body>
      <title>Rails like frameworks for the .NET developer</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,0aa2a09b-4013-4918-a831-1264840687fa.aspx</guid>
      <link>http://iqueryable.com/2007/02/02/RailsLikeFrameworksForTheNETDeveloper.aspx</link>
      <pubDate>Fri, 02 Feb 2007 14:05:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.activesharp.com/"&gt;John Rusk&lt;/a&gt; left a &lt;a href="http://iqueryable.com/CommentView,guid,6441f966-6135-4327-b15c-4ed03120f093.aspx#commentstart"&gt;comment&lt;/a&gt; on
my &lt;a href="http://iqueryable.com/2007/02/02/DevelopersDitchingMicrosoftForRails.aspx"&gt;Developers
ditching Microsoft for Rails&lt;/a&gt; post and brought to light the fact that developers
might not be leaving because of what Rails is doing right, but instead because of
what .NET is doing wrong.&amp;nbsp; I definitely agree that many of the reasons people
leave the .NET world for technologies like Rails is because working in .NET isn't
as smooth as it should be.&amp;nbsp; One of the things that makes Rails so successful
is its focus, and the embracing of constraints.&amp;nbsp; Rather then trying to be everything
to everybody, Rails is focused on a specific vision.&amp;nbsp; As I've said in the past, &lt;a href="http://steve.emxsoftware.com/RubyOnRails/Rails+isOpinionated+Software"&gt;Rails
is opinionated software&lt;/a&gt;. 
&lt;p&gt;
For those looking for Rails-ish frameworks in the .NET world you might want to checkout &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack"&gt;SubSonic&lt;/a&gt; and &lt;a href="http://www.castleproject.org/"&gt;Castle's
ActiveRecord and MonoRail&lt;/a&gt; projects.&amp;nbsp; I just had &lt;a href="http://steve.emxsoftware.com/NET/Ruby+on+Rails+NET"&gt;De-ja-vu&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0aa2a09b-4013-4918-a831-1264840687fa" /&gt;</description>
      <category>.net;rails</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=6441f966-6135-4327-b15c-4ed03120f093</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,6441f966-6135-4327-b15c-4ed03120f093.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I've been reading a lot of stories lately
about developers leaving the friendly confines of .NET Land for Rails and other non-Microsoft
technologies.  Perhaps the most notable being Mike Gunderloy of  <a href="http://www.larkware.com/">The
Daily Grind</a> fame.  You can read more about Mike's journey over on his <a href="http://www.afreshcup.com/">A
Fresh Cup - Notes from a recovering Microsoft addict</a> blog.  Also of interest
is the <a href="http://forum.softiesonrails.com/">Forums on the softiesonrails.com</a> site.  
<br /><br />
I actually thought about switching my blog engine over to <a href="http://mephistoblog.com/">Mephisto</a> to
get a little taste of Rails, however, since I'm hosting this on a Windows box the
thought was short lived.<br /><a href="http://www.afreshcup.com/"></a><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6441f966-6135-4327-b15c-4ed03120f093" /></body>
      <title>Developers ditching Microsoft for Rails</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,6441f966-6135-4327-b15c-4ed03120f093.aspx</guid>
      <link>http://iqueryable.com/2007/02/02/DevelopersDitchingMicrosoftForRails.aspx</link>
      <pubDate>Fri, 02 Feb 2007 04:26:46 GMT</pubDate>
      <description>I've been reading a lot of stories lately about developers leaving the friendly confines of .NET Land for Rails and other non-Microsoft technologies.&amp;nbsp; Perhaps the most notable being Mike Gunderloy of&amp;nbsp; &lt;a href="http://www.larkware.com/"&gt;The
Daily Grind&lt;/a&gt; fame.&amp;nbsp; You can read more about Mike's journey over on his &lt;a href="http://www.afreshcup.com/"&gt;A
Fresh Cup - Notes from a recovering Microsoft addict&lt;/a&gt; blog.&amp;nbsp; Also of interest
is the &lt;a href="http://forum.softiesonrails.com/"&gt;Forums on the softiesonrails.com&lt;/a&gt; site.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
I actually thought about switching my blog engine over to &lt;a href="http://mephistoblog.com/"&gt;Mephisto&lt;/a&gt; to
get a little taste of Rails, however, since I'm hosting this on a Windows box the
thought was short lived.&lt;br&gt;
&lt;a href="http://www.afreshcup.com/"&gt;&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=6441f966-6135-4327-b15c-4ed03120f093" /&gt;</description>
      <category>rails;.net</category>
    </item>
  </channel>
</rss>