<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Black Bag Operations Network &#187; ruby</title>
	<atom:link href="http://www.blackbagops.net/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blackbagops.net</link>
	<description>Weapons and Intelligence in the War Against "Them"</description>
	<lastBuildDate>Wed, 27 Apr 2011 19:04:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Summer of Rails</title>
		<link>http://www.blackbagops.net/2008/09/21/summer-of-rails/</link>
		<comments>http://www.blackbagops.net/2008/09/21/summer-of-rails/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 10:10:00 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[Objective C]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[seaside]]></category>
		<category><![CDATA[smalltalk]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[squeak]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=137</guid>
		<description><![CDATA[I&#8217;ve now worked on three different Rails applications.  One of them was from scratch, the other two I took over from someone else.  The thing I like most about Rails is Active Record &#8211; it just works and it is easy to use &#8211; even for existing databases (although it takes a bit [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve now worked on three different Rails applications.  One of them was from scratch, the other two I took over from someone else.  The thing I like most about Rails is Active Record &#8211; it just works and it is easy to use &#8211; even for existing databases (although it takes a bit more work to specify the mappings).</p>
<p>I have a project coming up that would probably be a great Seaside candidate.  The database has to be postgresql (according to the client).  There is a native cocoa component &#8211; I&#8217;ll probably give <a href-"http://basetenframework.org/">BaseTen</a> a try.  For the web component, the obvious candidates are Rails (although I don&#8217;t know the state of Rails with PG &#8211; only mysql), and Seaside/Glorp &#8211; but I need to use Glorp to work like Active Record since the DB will be the master source of record for the schema.</p>
<p>Sadly, it doesn&#8217;t look like Glorp&#8217;s ActiveRecord on Squeak is ready for prime time, I might have to kind of finish that implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2008/09/21/summer-of-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails is Magic</title>
		<link>http://www.blackbagops.net/2008/05/22/rails-is-magic/</link>
		<comments>http://www.blackbagops.net/2008/05/22/rails-is-magic/#comments</comments>
		<pubDate>Thu, 22 May 2008 10:27:41 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=134</guid>
		<description><![CDATA[And I hate magic.  First, I confess that I probably still don&#8217;t have a full command of all ruby&#8217;s features &#8211; I&#8217;m just getting the hang of mixins and some of the wacky compositional capabilities.  
I&#8217;ve just deployed my first soup to nuts rails application.  Well, nearly.  It certainly starts fast. [...]]]></description>
			<content:encoded><![CDATA[<p>And I hate magic.  First, I confess that I probably still don&#8217;t have a full command of all ruby&#8217;s features &#8211; I&#8217;m just getting the hang of mixins and some of the wacky compositional capabilities.  </p>
<p>I&#8217;ve just deployed my first soup to nuts rails application.  Well, nearly.  It certainly starts fast.  Generate ActiveRecord classes for your tables using scripts and you&#8217;re off and doing basic CRUD.</p>
<p>However, its the little things that made the experience less than satisfactory.  First &#8211; the changes in behavior moving from development to deployment were nerve wracking.  I have rails running under apache on my laptop, no problem.  On my production server, I cannot get byte one to come out of rails.  Webrick works fine.  Mongrel works.  Rails cgi produces no errors, and no output.  Even apache logs are totally silent.  I don&#8217;t get it.  For now it is running under mongrel &#8211; but I&#8217;ll have to put that behind apache and front it using modproxy.  Irritating as hell.</p>
<p>Second, I set up <a href="http://www.danga.com/memcached/">memcached</a><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://kvantservice.com/">ÐºÐ¾Ð¼Ð¿ÑŽÑ‚Ñ€Ð¸ Ð²Ñ‚Ð¾Ñ€Ð° ÑƒÐ¿Ð¾Ñ‚Ñ€ÐµÐ±Ð°</a></font> on the advice of friends and was going to use it for my session cache.  But it turns out that objects don&#8217;t get saved in the memcached &#8211; apparently you can only store plist kinds of structures.  Objects get dropped.  I spent several hours beating my head against this using the usual hammer for this nail &#8211; require_dependency.  However, after listing every blessed model class as a dependency, it was still dropping a collection of objects.  Back to the file based session cache.</p>
<p>Another thing that drove me nuts is all the magic values you can&#8217;t use for attribute names.  I inherited this database and admittedly a bunch of columns and tables are stupidly named &#8211; however I kept running into problems with collisions with ActiveRecord extensions.</p>
<p>Another thing &#8211; camel vs underbar lowercase.  You generally specify relationships as lower case names, that ActiveRecord uses to infer a class name.  For instance, you specify the relationship as purchase_order and it figures you have a class PurchaseOrder that keeps its data in a table called purchase_orders with a foreign key purchase_order_id.  This can all be overridden, but understanding which form to use where got pretty trying.</p>
<p>Reciprocal relationships &#8211; at some level of circularity, ActiveRecord falls over with stack level too deep on save.  It isn&#8217;t even a very complex graph that does it in.  It became necessary to remove a bunch of back references to get a save to work properly.</p>
<p>Overall, I&#8217;d say towards the end I spent more time debugging magic gone awry than I did building application functionality.  So I have to chalk it up as a real learning experience, but not one I&#8217;m looking to repeat anytime soon.  The lack of decent debugging facilities was really crippling &#8211; especially coming from seaside.  ActiveRecord is cool, but it isn&#8217;t trouble free.  Doing basic inheritance was a huge exercise in wackiness I&#8217;m not eager to repeat.  If I hadn&#8217;t had a big old mysql database to build on top of, I probably would have used seaside instead.</p>
<p>So enough slamming &#8211; its not all bad.  One thing that helped a LOT was the discovery of <a href="http://activescaffold.com">ActiveScaffold</a> AS is AMAZING!  I was able to throw together a coherent admin interface with it very quickly &#8211; its customization options are very powerful, and in the end I think the back office app will be about 80% AS and 20% task oriented workflow.  That&#8217;s brilliant.  A data driven sensible ajax interface almost instantly.  Very cool.  </p>
<p>I may do more ruby apps, there are some seriously powerful go-fast kinds of technologies, but much of the time savings this go-round was lost to flukey behavior that changed from environment to environment, and really lame debugging tools.  </p>
<p>Rails is definitely a very mixed bag.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2008/05/22/rails-is-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Ruby Thoughts</title>
		<link>http://www.blackbagops.net/2008/04/29/quick-ruby-thoughts/</link>
		<comments>http://www.blackbagops.net/2008/04/29/quick-ruby-thoughts/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 18:00:47 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=133</guid>
		<description><![CDATA[I have to say I&#8217;m liking a lot about Rails.  Ruby, not so much.  Probably the most annoying thing about Ruby is the syntax.  It is MUCH too complicated and after working with it for awhile, I still don&#8217;t quite understand all the rules.  Things that puzzle me:
dot notation vs non-dot [...]]]></description>
			<content:encoded><![CDATA[<p>I have to say I&#8217;m liking a lot about Rails.  Ruby, not so much.  Probably the most annoying thing about Ruby is the syntax.  It is MUCH too complicated and after working with it for awhile, I still don&#8217;t quite understand all the rules.  Things that puzzle me:</p>
<p>dot notation vs non-dot notation.  When to use which?  </p>
<p>collection.select {| x | x > 5 }</p>
<p>vs</p>
<p>collection select {|x | x > 5}</p>
<p>they both seem to work.  Also, use of parens around argument lists &#8211; also seems to be optional.  Two different block definition syntaxes is also annoying.  </p>
<p>Less syntax would be most welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2008/04/29/quick-ruby-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hoppin&#8217; on the Rails</title>
		<link>http://www.blackbagops.net/2008/04/04/hoppin-on-the-rails/</link>
		<comments>http://www.blackbagops.net/2008/04/04/hoppin-on-the-rails/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 19:31:14 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=131</guid>
		<description><![CDATA[I&#8217;ve got two new clients &#8211; on is taking over expansion of an existing Ruby on Rails application.  The other is the replacement of the application I wrote in the previous article.  I want to stick a new codebase on the existing database.  Since rails excels at CRUD and I&#8217;m short on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got two new clients &#8211; on is taking over expansion of an existing Ruby on Rails application.  The other is the replacement of the application I wrote in the previous article.  I want to stick a new codebase on the existing database.  Since rails excels at CRUD and I&#8217;m short on bandwidth and hand-off-ability is a concern with the new development, I&#8217;m going to use rails for that one too.  </p>
<p>I mean, I can only learn so many frameworks at once.  So here we go &#8211; working through Agile Web Development with Ruby on Rails.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2008/04/04/hoppin-on-the-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking for work again</title>
		<link>http://www.blackbagops.net/2008/03/03/looking-for-work-again/</link>
		<comments>http://www.blackbagops.net/2008/03/03/looking-for-work-again/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 22:21:27 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[seaside]]></category>
		<category><![CDATA[smalltalk]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[squeak]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=116</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of PHP lately &#8211; shopping cart integration, web service clients, lots of ecommerce stuff.  But I&#8217;m coming to the end of these projects and am looking for new challenges.  Got a project or position that I can do remotely?  Drop me a line.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of PHP lately &#8211; shopping cart integration, web service clients, lots of ecommerce stuff.  But I&#8217;m coming to the end of these projects and am looking for new challenges.  Got a project or position that I can do remotely?  Drop me a line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2008/03/03/looking-for-work-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails Shopping Cart Engine</title>
		<link>http://www.blackbagops.net/2006/03/19/ruby-on-rails-shopping-cart-engine/</link>
		<comments>http://www.blackbagops.net/2006/03/19/ruby-on-rails-shopping-cart-engine/#comments</comments>
		<pubDate>Mon, 20 Mar 2006 03:26:00 +0000</pubDate>
		<dc:creator>todd</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blackbagops.net/?p=14</guid>
		<description><![CDATA[Substruct is a free shopping cart implementation for Ruby on Rails.  For people building ecommerce sites, this nice vanilla plugin will save a big chunk of time.  It includes:

A simple content management system with blogging capabilities

Manage your entire site from the web

A simple shopping cart that&#8217;s tied into Authorize.net (must have an account)

Live [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.subimage.com/sublog/openSourceRubyOnRailsShoppingCart">Substruct</a> is a free shopping cart implementation for Ruby on Rails.  For people building ecommerce sites, this nice vanilla plugin will save a big chunk of time.  It includes:</p>
<ul>
<li>A simple content management system with blogging capabilities
<ul>
<li>Manage your entire site from the web
</ul>
<li>A simple shopping cart that&#8217;s tied into Authorize.net (must have an account)
<ul>
<li>Live real-time shipping rate calculation via FedEx? (must have an account)
<li>More payment processors like Paypal and 2CheckOut coming soon
</ul>
<li>Product and order management
<li>A stunning administration interface
<ul>
<li>Create and maintain content
<li>Create, maintain, void orders
<li>Answer questions from your visitors
</ul>
</ul>
<p>We <a href="http://seaside.st">seasiders</a> need to get moving and do something similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackbagops.net/2006/03/19/ruby-on-rails-shopping-cart-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

