<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="0.92">
<channel>
	<title>code crumbs</title>
	<link>http://jesseclark.com/blog</link>
	<description>to help me find my way back</description>
	<lastBuildDate>Tue, 01 Jul 2008 17:13:50 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Finding which version of OS X you are running via the command line</title>
		<description><![CDATA[Just found out about the handy command, sw_vers, from the unClog blog.
Sample output:

jclark$ sw_vers
ProductName:    Mac OS X Server
ProductVersion: 10.4.11
BuildVersion:   8S169

]]></description>
		<link>http://jesseclark.com/blog/2008/07/01/finding-which-version-of-os-x-you-are-running-via-the-command-line/</link>
			</item>
	<item>
		<title>The Launch: Dos and Don&#8217;ts of Real Life Deploys</title>
		<description><![CDATA[Alpha asap. Famspam did alpha testing with their family.
Beta:
- at this point you should probably have some way to filter and aggregate response data.
Optimization:
- ab - apache_bookmark.
- httperf, bong
Test data: add a million rows of gibberish with ruby_faker
query_trace: shows which code is spawning which queries and how they perform.
Vendor everything.
FamSpam uses jQuery.
He said &#8216;gitsplosion&#8217;&#8230;
Service hooks. [...]]]></description>
		<link>http://jesseclark.com/blog/2008/05/30/the-launch-dos-and-donts-of-real-life-deploys/</link>
			</item>
	<item>
		<title>Meta-Programming for fun and profit</title>
		<description><![CDATA[Came in late.
Was discussing using forwardable to implement the delegator pattern. see def_delegator.
Missings:
method_missing, showed example of using method_missing to harvest messages to a class. Freeze would fail because Object implements that method so the Recorder itself gets frozen not the playback object. The solution: BlankSlate or as it will be called in Ruby 1.9, SimpleObject, [...]]]></description>
		<link>http://jesseclark.com/blog/2008/05/30/meta-programming-for-fun-and-profit/</link>
			</item>
	<item>
		<title>Scaling to a billion</title>
		<description><![CDATA[Guy created Warbook. Had to rewrite the application within three weeks of launch due to scaling issues.
So, figure out why it is slow:
- Started with Firebug net tab.
- mint had to go wouldn&#8217;t scale
- pl_analyse, iostat, io was a point of failure, MTop.
- pagination also caused the app to drag. Ditched it too. Worked around [...]]]></description>
		<link>http://jesseclark.com/blog/2008/05/30/scaling-to-a-billion/</link>
			</item>
	<item>
		<title>Datamapper</title>
		<description><![CDATA[Datamapper:
Forces explicit property declaration.
Datastore&#8217;s are connected by adaptors.
Identity Mapper: looking for an object with same id should return the SAME OBJECT. foo[1] == foo[1]
LoadedSet: Foo.all tracks which objects come out of the database at the same time to allow changes across the set at db level.
Support composite keys. Keys are arrays
Naming Conventions: allows you to [...]]]></description>
		<link>http://jesseclark.com/blog/2008/05/30/datamapper/</link>
			</item>
	<item>
		<title>EngineYard hosting</title>
		<description><![CDATA[use explain with /G to test queries and make sure they are using your indexes. all index columns must be left to right in column order or they are ignored.
Plugins:
Ferret is hated. Sphinx is better.
image science + monit clears some environment variables. solvable by setting env vars in configs.
don&#8217;t forget to set log levels to [...]]]></description>
		<link>http://jesseclark.com/blog/2008/05/30/engineyard-hosting/</link>
			</item>
	<item>
		<title>OpenId 2.0 and Ruby on Rails 2.0.2</title>
		<description><![CDATA[I just converted a website from the openid_consumer plugin to DHH&#8217;s open_id_authentication plugin and patched it for OpenId 2.0.
I found face&#8217;s port of Dr. Nic&#8217;s sample open_id_authentication app to be a useful starting point. I ended up chopping down the open_id_helpers class to this:
 module OpenIdsHelper
  # Pass optional :required and :optional keys to [...]]]></description>
		<link>http://jesseclark.com/blog/2008/03/06/openid-20-and-ruby-on-rails-202/</link>
			</item>
	<item>
		<title>Calling a rake task from rails code.</title>
		<description><![CDATA[1) Require rake and load the rake files containing the tasks and dependencies you want to run:
require 'rake'
load File.dirname(__FILE__) + '/../vendor/rails/railties/lib/tasks/misc.rake'
load File.dirname(__FILE__) + '/../vendor/rails/railties/lib/tasks/databases.rake'
2) invoke the task
Rake::Task["db:test:prepare"].invoke
]]></description>
		<link>http://jesseclark.com/blog/2008/01/23/calling-a-rake-task-from-rails-code/</link>
			</item>
	<item>
		<title>delete and delete_all don&#8217;t trigger callbacks</title>
		<description><![CDATA[I&#8217;m sure this isn&#8217;t earth shattering to anyone but I had forgotten about it and it caused me some head scratching yesterday.
]]></description>
		<link>http://jesseclark.com/blog/2008/01/10/delete-and-delete_all-dont-trigger-callbacks/</link>
			</item>
	<item>
		<title>Base classes get stored by ActiveRecord with type = NULL when using STI&#8230;</title>
		<description><![CDATA[So you make sure you take that into consideration when crafting find_by_sql queries on STI tables.
For example when looking for all but one type in the table:
AND ( g.type != ? OR g.type IS NULL )
]]></description>
		<link>http://jesseclark.com/blog/2008/01/10/base-classes-get-stored-by-activerecord-with-type-null-when-using-sti/</link>
			</item>
</channel>
</rss>
