<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pablo&#039;s blog &#187; Sano</title>
	<atom:link href="http://pupeno.com/tag/sano/feed/" rel="self" type="application/rss+xml" />
	<link>http://pupeno.com</link>
	<description>A bit of this, a bit of that and a lot about computers</description>
	<lastBuildDate>Wed, 15 Feb 2012 08:39:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='pupeno.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/57ca76f9fb1bf9d10a9dd732ea88cc57?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Pablo&#039;s blog &#187; Sano</title>
		<link>http://pupeno.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pupeno.com/osd.xml" title="Pablo&#039;s blog" />
	<atom:link rel='hub' href='http://pupeno.com/?pushpress=hub'/>
		<item>
		<title>Blood pressure and conclusion</title>
		<link>http://pupeno.com/2009/11/22/blood-pressure-and-conclusion/</link>
		<comments>http://pupeno.com/2009/11/22/blood-pressure-and-conclusion/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 21:37:32 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1414</guid>
		<description><![CDATA[In less than an hour, I quickly added blood pressure: It was really quick and dirty and it doesn&#8217;t have an in-line form, but it&#8217;s there and it&#8217;s working. I wasn&#8217;t able to achieve as much as I could but I think I got pretty far for one weekend. And it&#8217;s very clear that by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1414&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In less than an hour, I quickly added blood pressure:</p>
<p><img class="alignnone size-full wp-image-1415" src="http://pupeno.files.wordpress.com/2009/11/sano-0206.png?w=538" alt="sano-020"   /></p>
<p>It was really quick and dirty and it doesn&#8217;t have an in-line form, but it&#8217;s there and it&#8217;s working. I wasn&#8217;t able to achieve as much as I could but I think I got pretty far for one weekend. And it&#8217;s very clear that by the end, my speed was much greater than at the beginning, just compare the difference in time it took to implement each of the trackers.</p>
<p>I think the bigger time sinks were new stuff that I didn&#8217;t know. At the moment I was starting those I knew they were going to waste some time, but I was thinking in long term. Getting Formtastic to work as I wanted took some time, but now I&#8217;m able to create forms pretty fast. Starting to use nifty_generators took some time to actually find what they were and the syntax, but now every time I generate code I&#8217;m one step closer to finish it than before; and the look of the page is not hideous.</p>
<p>Another waste of time was figuring out how Rails and gems interacted. Some gems I add them and work, others don&#8217;t. Previously I included those gems manually in my code, but now I know how it works. During a couple of hours I wanted to make a much more advanced graph that would properly display 4 values or 400 values until I realized that it doesn&#8217;t have to be dynamic. When you want to see the last week, you pick last week, when you want to see last month, you pick that (well, a graph like Google&#8217;s Finance would be better, but ok, I&#8217;m humble). There&#8217;s no way to pick bigger range for the graph now, but the code is very ready for it.</p>
<p>I believe the experiment was a success: I can and I am very productive in Rails, same as with ASP.NET MVC or more.</p>
<br />Posted in Technical Tagged: building Sano, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1414/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1414&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/22/blood-pressure-and-conclusion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0206.png" medium="image">
			<media:title type="html">sano-020</media:title>
		</media:content>
	</item>
		<item>
		<title>First graph</title>
		<link>http://pupeno.com/2009/11/22/first-graph/</link>
		<comments>http://pupeno.com/2009/11/22/first-graph/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:59:40 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1409</guid>
		<description><![CDATA[It&#8217;s not perfect, but it&#8217;s a start: Posted in Technical Tagged: building Sano, Sano<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1409&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not perfect, but it&#8217;s a start:<br />
<img class="alignnone size-full wp-image-1410" src="http://pupeno.files.wordpress.com/2009/11/sano-0196.png?w=538" alt="sano-019"   /></p>
<br />Posted in Technical Tagged: building Sano, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1409/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1409/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1409/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1409&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/22/first-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0196.png" medium="image">
			<media:title type="html">sano-019</media:title>
		</media:content>
	</item>
		<item>
		<title>My Profile page: a RESTful single resource using Formtastic</title>
		<link>http://pupeno.com/2009/11/22/my-profile-page-a-restful-single-resource-using-formtastic/</link>
		<comments>http://pupeno.com/2009/11/22/my-profile-page-a-restful-single-resource-using-formtastic/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 13:49:52 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1392</guid>
		<description><![CDATA[I&#8217;ve just implemented the My Profile tab for Sano: Can I write 500 words about? Well, I can try. I like using RESTful routes. In case you don&#8217;t know what they are let me try to explain it quick, at least the relevant part. You normally have a set of route rules that would point [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1392&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just implemented the My Profile tab for <a href="http://sano.pupeno.com">Sano</a>:</p>
<p><img class="alignnone size-full wp-image-1393" src="http://pupeno.files.wordpress.com/2009/11/sano-0186.png?w=538" alt="sano-018"   /></p>
<p>Can I write 500 words about? Well, I can try.</p>
<p>I like using RESTful routes. In case you don&#8217;t know what they are let me try to explain it quick, at least the relevant part. You normally have a set of route rules that would point /movies to the movie listing, /movies/new to a form to add a new movie, /movies/123 to see the movie 123. With RESTful routes in Rails all that is done automatic in a single line:</p>
<pre>map.resources :movies</pre>
<p>What you are doing is defining a resource. The resource has several actions that can be performed on them:</p>
<ul>
<li>index (a.k.a.: listing)</li>
<li>new</li>
<li>edit</li>
<li>create</li>
<li>update</li>
<li>destroy</li>
</ul>
<p>In Sano I have a weights resource that is a very fine example of it:</p>
<pre>map.resources :weights</pre>
<p>Running the rake routes command we can see all the routes it generate:</p>
<pre>    weights GET    /weights(.:format)          {:action=&gt;"index", :controller=&gt;"weights"}
            POST   /weights(.:format)          {:action=&gt;"create", :controller=&gt;"weights"}
 new_weight GET    /weights/new(.:format)      {:action=&gt;"new", :controller=&gt;"weights"}
edit_weight GET    /weights/:id/edit(.:format) {:action=&gt;"edit", :controller=&gt;"weights"}
     weight GET    /weights/:id(.:format)      {:action=&gt;"show", :controller=&gt;"weights"}
            PUT    /weights/:id(.:format)      {:action=&gt;"update", :controller=&gt;"weights"}
            DELETE /weights/:id(.:format)      {:action=&gt;"destroy", :controller=&gt;"weights"}</pre>
<p>You see the (.:format) in there? That means that every route is also accessible in alternative formats. For example: xml. Go and try it, add some weights and access <a href="http://sano.pupeno.com/weights.xml">http://sano.pupeno.com/weights.xml</a>.</p>
<p>If you are curious, the code for that is this:</p>
<pre>def index
  @weights = user.weights.all

  respond_to do |format|
    format.html
    format.xml  { render :xml =&gt; @weights }
  end
end</pre>
<p>I now want everything to be a resource. How can &#8220;my profile&#8221; be a resource? Well, it&#8217;s not hard. It&#8217;s not a collection resource, it&#8217;s a single resource. There&#8217;s no list of profiles, no creation of new profiles or destruction of profiles. There&#8217;s only editing and updating of a single profile (which is actually your user).</p>
<p>It turns out that in <a href="/tag/ruby-on-rails">Rails</a>, that&#8217;s very easy to define:</p>
<pre>map.resource :profile, :only =&gt; [:edit, :update]</pre>
<p>Notice how it says &#8220;resource&#8221; instead of &#8220;resources&#8221; and it only allows certain actions. Rails is really quite flexible here, logging in is also a resource. It&#8217;s called session and you can create them, by logging in, or destroy them, by logging out (no editing). There&#8217;s also an extra action needed by OpenID. This is the route definition:</p>
<pre>map.resource :session, :only =&gt; [:new, :create, :destroy], :member =&gt; { :finish_creating =&gt; :get }</pre>
<p>The &#8220;member&#8221; part specifies that action to be only for items, not for the whole collection. If it was a collection resource, you could have extra listings. The same way you have index, you could have sorted_index.</p>
<p>The form in the my-profile-page is an example of what Formtastic is good at. This is the whole form:</p>
<pre>&lt;% semantic_form_for @user, :url =&gt; profile_url do |f| %&gt;
  &lt;% f.inputs do -%&gt;
    &lt;%= f.input :name %&gt;
    &lt;%= f.input :email %&gt;
    &lt;%= f.input :height, :hint =&gt; "meters" %&gt;
    &lt;%= f.input :gender, :as =&gt; :radio, :collection =&gt; [["Male", false], ["Female", true]] %&gt;
    &lt;%= f.input :birthday, :start_year =&gt; 1900, :end_year =&gt; Time.now.year %&gt;
  &lt;% end -%&gt;
  &lt;% f.buttons do -%&gt;
   &lt;%= f.commit_button :label =&gt; "Update profile" %&gt;
  &lt;% end -%&gt;
&lt;% end %&gt;</pre>
<p>Special thanks to <a href="http://workingwithrails.com/person/6491-ryan-bates">Ryan Bates</a> who covered the gender case in <a href="http://railscasts.com/">Railscasts</a> <a href="http://railscasts.com/episodes/184-formtastic-part-1">episode 184</a> and <a href="http://asciicasts.com/about">Eifion Bedford</a> of <a href="http://asciicasts.com/">ASCIIcasts</a> for making it <a href="http://asciicasts.com/episodes/184-formtastic-part-1">easy to find</a>. It surely would have take me some time to figure it out.</p>
<p>Can you please <a href="http://sano.pupeno.com/profile/edit">update your profile on Sano</a>?</p>
<p>There you go 553 words!</p>
<br />Posted in Technical Tagged: building Sano, Rails, rest, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1392/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1392/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1392/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1392&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/22/my-profile-page-a-restful-single-resource-using-formtastic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0186.png" medium="image">
			<media:title type="html">sano-018</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrations that change the schema</title>
		<link>http://pupeno.com/2009/11/22/migrations-that-change-the-schema/</link>
		<comments>http://pupeno.com/2009/11/22/migrations-that-change-the-schema/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 12:43:14 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[migrations]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1384</guid>
		<description><![CDATA[Up until today I did everything with a lot of planning and I let my OCD use migrations in a way they were not intended: I would go back and fix old migrations and destroy the database and re-run them. With Sano, as I went through as fast as I could, two things happened: I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1384&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Up until today I did everything with a lot of planning and I let my OCD use migrations in a way they were not intended: I would go back and fix old migrations and destroy the database and re-run them.</p>
<p>With <a href="http://sano.pupeno.com">Sano</a>, as I went through as fast as I could, two things happened: I made mistakes in the schema and those mistakes are now deployed. Time to make migrations to fix them.</p>
<p>The original migration for the weight model was like this:</p>
<pre>create_table :weights do |t|
  t.integer :user_id
  t.float :weight
  t.datetime :measured_at
  t.timestamps
  t.foreign_key :users
end</pre>
<p>and then I created two destructive migrations:</p>
<pre>change_column :weights, :measured_at, :date
rename_column :weights, :measured_at, :measured_on</pre>
<p>and</p>
<pre>add_index :weights, [:user_id, :measured_on], :unique =&gt; true</pre>
<p>The first one converted the measured_at datetime column in a measured_on date column. It destroys data, but I believe there&#8217;s no way that one could fail.</p>
<p>The second one adds an index for uniqueness between measured_on and user_id. That means that users can have only one weight per day. That one doesn&#8217;t destruct any data but it has the potential to fail when run on the production server.</p>
<p>I was about to just give it a try and pray. It&#8217;s not like thousands of people are using Sano anyway. Well, I&#8217;ve just realized I didn&#8217;t have to pray. I could test the migration first. It was trivial:</p>
<ol>
<li>Open local phpMyAdmin and go to sano_devel</li>
<li>Delete all tables in local sano_devel</li>
<li>Open remote phpMyAdmin and go to sano (the production database)</li>
<li>Export everything</li>
<li>Run SQL in sano_devel with the exported text</li>
<li>Try migrations</li>
</ol>
<p>Well, they worked:</p>
<pre>$ rake db:migrate
(in /Users/pupeno/Projects/sano)
==  ChangeMeasuredAtTypeAndName: migrating ====================================
-- change_column(:weights, :measured_at, :date)
   -&gt; 0.3609s
-- rename_column(:weights, :measured_at, :measured_on)
   -&gt; 0.1440s
==  ChangeMeasuredAtTypeAndName: migrated (0.5056s) ===========================

==  AddUniquennessIndexToWeightUserIdMeasuredOn: migrating ====================
-- add_index(:weights, [:user_id, :measured_on], {:unique=&gt;true})
   -&gt; 0.1171s
==  AddUniquennessIndexToWeightUserIdMeasuredOn: migrated (0.1173s) ===========</pre>
<p>and while I&#8217;m at it, let&#8217;s test the down-migrations, so I can be sure that if something goes wrong on production, I can rollback:</p>
<pre>$ rake db:migrate VERSION=20091121135320
(in /Users/pupeno/Projects/sano)
==  AddUniquennessIndexToWeightUserIdMeasuredOn: reverting ====================
-- remove_index(:weights, {:column=&gt;[:user_id, :measured_on]})
   -&gt; 0.2745s
==  AddUniquennessIndexToWeightUserIdMeasuredOn: reverted (0.2748s) ===========

==  ChangeMeasuredAtTypeAndName: reverting ====================================
-- rename_column(:weights, :measured_on, :measured_at)
   -&gt; 0.1381s
-- change_column(:weights, :measured_at, :datetime)
   -&gt; 0.1335s
==  ChangeMeasuredAtTypeAndName: reverted (0.2719s) ===========================</pre>
<p>Note: actually, there was a typo in the down-migrations; I&#8217;ve fixed it and everything was all right.</p>
<p>The new version with the improved forms is now deployed (the one I showed in the previous post), you can now play with it: <a href="http://sano.pupeno.com">sano.pupeno.com</a>.</p>
<br />Posted in Technical Tagged: building Sano, migrations, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1384/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1384&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/22/migrations-that-change-the-schema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>
	</item>
		<item>
		<title>I love to code</title>
		<link>http://pupeno.com/2009/11/22/i-love-to-code/</link>
		<comments>http://pupeno.com/2009/11/22/i-love-to-code/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 03:51:19 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Bulding Sano]]></category>
		<category><![CDATA[Formtastic]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1374</guid>
		<description><![CDATA[I said I was done for the day more than 6 hours ago, but I love to code, I couldn&#8217;t stop. I wanted to implement a small feature: make the creation of new weights simpler for the common case and I did it: Note: That change is not yet deployed. I don&#8217;t play with servers [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1374&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I said I was done for the day more than 6 hours ago, but I love to code, I couldn&#8217;t stop. I wanted to implement a small feature: make the creation of new weights simpler for the common case and I did it:</p>
<p><img class="alignnone size-full wp-image-1376" src="http://pupeno.files.wordpress.com/2009/11/sano-0178.png?w=538" alt="sano-017"   /></p>
<p>Note: That change is not yet deployed. I don&#8217;t play with servers while I&#8217;m half-asleep.</p>
<p>This took awfully long. The problem was that in the process I&#8217;ve found a bug in Formtastic, which made me realize I was running version 0.2.4 when the latest version was 0.9.2. That is because I was using justinfrench-formtastic:</p>
<pre>config.gem 'formtastic', :lib =&gt; 'justinfrench-formtastic'</pre>
<p>when I should have been using formtastic from gemcutter:</p>
<pre>config.gem 'formtastic'</pre>
<p>When I moved to 0.9.2 I&#8217;ve found two bugs on it, one was temporary solved and then reverted (and <a href="http://github.com/pupeno/formtastic/commit/d85fedb1b3fdff3d31ab8de8e22eaaba45676d1f">I fixed it by reverting the revertion</a>) and the other is still there but I&#8217;m not 100% confident <a href="http://github.com/pupeno/formtastic/commit/c78e927c9e7e104de9b9b2016d1dc277a900b0ae">my solution</a> is the appropriate one. At any rate <a href="http://github.com/pupeno/formtastic">I forked Formtastic in GitHub</a>, fixed the bugs and made a merge request.</p>
<p>Conclusion: Git is great, GitHub is great, Formtastic is great, open source is great, Rails is great and yes, I am great ;)</p>
<br />Posted in Technical Tagged: Bulding Sano, Formtastic, Rails, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1374&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/22/i-love-to-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0178.png" medium="image">
			<media:title type="html">sano-017</media:title>
		</media:content>
	</item>
		<item>
		<title>Sano is open for business</title>
		<link>http://pupeno.com/2009/11/21/sano-is-open-for-business/</link>
		<comments>http://pupeno.com/2009/11/21/sano-is-open-for-business/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 21:04:58 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1371</guid>
		<description><![CDATA[I really wish I was able to get farther in one day, but I think it&#8217;s good enough that I went from idea to deployed app. On retrospective I wasted too much time figuring out formtastic. I don&#8217;t regret doing it because it was in my TODO list and in the long run it should [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1371&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I really wish I was able to get farther in one day, but I think it&#8217;s good enough that I went from idea to deployed app. On retrospective I wasted too much time figuring out formtastic. I don&#8217;t regret doing it because it was in my TODO list and in the long run it should make me more productive, but in the short run maybe I should have used the good old forms.</p>
<p>The other two big waste of times was CSS and tables and an issue with the Ruby OpenID gem. Both problems I encountered before and both times I gave up trying to solve them and moved on. I should have moved on again this time; but instead I figured them out.</p>
<p>The application is at <a href="http://sano.pupeno.com">http://sano.pupeno.com</a>. Please don&#8217;t break it ;) Remember to log in and if you add data I&#8217;ll be grateful as it&#8217;ll make my migrations more realistic:</p>
<p><img class="alignnone size-full wp-image-1372" src="http://pupeno.files.wordpress.com/2009/11/sano-0168.png?w=538" alt="sano-016"   /></p>
<p>I&#8217;m done for today.</p>
<br />Posted in Technical Tagged: building Sano, Rails, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1371/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1371&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/21/sano-is-open-for-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0168.png" medium="image">
			<media:title type="html">sano-016</media:title>
		</media:content>
	</item>
		<item>
		<title>Super Exception Notifier</title>
		<link>http://pupeno.com/2009/11/21/super-exception-notifier/</link>
		<comments>http://pupeno.com/2009/11/21/super-exception-notifier/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 20:11:53 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1363</guid>
		<description><![CDATA[I like knowing when something goes wrong with my web apps, so I&#8217;m using Super Exception Notifier to get by email a report should any exception be raised in the app. If you go to Super Exception Notifier&#8217;s site you&#8217;ll see some instructions on how to add it to your project. This is how I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1363&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I like knowing when something goes wrong with my web apps, so I&#8217;m using <a href="http://github.com/pboling/exception_notification">Super Exception Notifier</a> to get by email a report should any exception be raised in the app. If you go to Super Exception Notifier&#8217;s site you&#8217;ll see some instructions on how to add it to your project. This is how I do it.</p>
<p>Add the gem requirement in environment.rb:</p>
<pre>
config.gem 'super_exception_notifier', :version =&gt; '~&gt; 2.0.0', :lib =&gt; 'exception_notifier'
</pre>
<p>Then be sure to have gemcutter in your gem sources:</p>
<pre>gem sources
*** CURRENT SOURCES ***

http://gemcutter.org

http://gems.rubyforge.org/

http://gems.github.com
</pre>
<p>If you don&#8217;t have it, you can add it this way:</p>
<pre>gem install gemcutter</pre>
<pre>gem tumble</pre>
<p>To install the gem, in your Rails project run:</p>
<pre>sudo rake gems:install</pre>
<p>Create a file in config/initializers, I&#8217;ve called it exception_notifier.rb and inside I&#8217;ve set up the only really needed value for the notifications, the email address:</p>
<pre>
# Notification configuration
ExceptionNotifier.configure_exception_notifier do |config|
  config[:exception_recipients] = %w(pupeno@pupeno.com)
end
</pre>
<p>The last task is to make your application controller noisy by adding one line to it (the second one of course):</p>
<pre>
class ApplicationController &lt; ActionController::Base
  include ExceptionNotifiable
  #...
end
</pre>
<p>You also need to be sure that you have ActionMailer properly configured, otherwise no mail is going to get through.</p>
<br />Posted in Technical Tagged: building Sano, Rails, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1363/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1363&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/21/super-exception-notifier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>
	</item>
		<item>
		<title>Merging users</title>
		<link>http://pupeno.com/2009/11/21/merging-users/</link>
		<comments>http://pupeno.com/2009/11/21/merging-users/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 19:55:13 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1357</guid>
		<description><![CDATA[Remember that I said that when you log in, your ghost user has to be merged with the real user? Well, this is the code for doing it: class User &#60; ActiveRecord::Base #... def merge(user_id) if user_id != nil user = User.find(user_id) user.weights.each do &#124;weight&#124; weight.user = self weight.save end user.destroy end end end The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1357&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="/blog/getting-the-current-user/">Remember that I said that when you log in, your ghost user has to be merged with the real user?</a> Well, this is the code for doing it:</p>
<pre>
class User &lt; ActiveRecord::Base
  #...

  def merge(user_id)
    if user_id != nil
      user = User.find(user_id)

      user.weights.each do |weight|
        weight.user = self
        weight.save
      end

      user.destroy
    end
  end
end
</pre>
<p>The problem with this is that it&#8217;s very error prone. You have to make sure that every model that is related to the user model gets properly handled.</p>
<br />Posted in Technical Tagged: building Sano, Rails, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1357/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1357&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/21/merging-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>
	</item>
		<item>
		<title>Logging in now works</title>
		<link>http://pupeno.com/2009/11/21/logging-in-now-works/</link>
		<comments>http://pupeno.com/2009/11/21/logging-in-now-works/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 19:44:20 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1350</guid>
		<description><![CDATA[If a picture is worth a thousand words, this post has three thousand fifteen words: Posted in Technical Tagged: building Sano, OpenID, Ruby, Ruby on Rails, Sano<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1350&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If a picture is worth a thousand words, this post has three thousand fifteen words:</p>
<p><img class="alignnone size-full wp-image-1351" src="http://pupeno.files.wordpress.com/2009/11/sano-0136.png?w=538" alt="sano-013"   /></p>
<p><img class="alignnone size-full wp-image-1352" src="http://pupeno.files.wordpress.com/2009/11/sano-0147.png?w=538" alt="sano-014"   /></p>
<p><img class="alignnone size-full wp-image-1353" src="http://pupeno.files.wordpress.com/2009/11/sano-0157.png?w=538" alt="sano-015"   /></p>
<br />Posted in Technical Tagged: building Sano, OpenID, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1350/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1350/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1350&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/21/logging-in-now-works/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0136.png" medium="image">
			<media:title type="html">sano-013</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0147.png" medium="image">
			<media:title type="html">sano-014</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sano-0157.png" medium="image">
			<media:title type="html">sano-015</media:title>
		</media:content>
	</item>
		<item>
		<title>Simplifying the weight CRUD</title>
		<link>http://pupeno.com/2009/11/21/simplifying-the-weight-crud/</link>
		<comments>http://pupeno.com/2009/11/21/simplifying-the-weight-crud/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 19:03:16 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[building Sano]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sano]]></category>

		<guid isPermaLink="false">http://pupeno.com/?p=1345</guid>
		<description><![CDATA[After a rather long fight with formtastic I have a better CRUD for weight: But now that I think about it, there shouldn&#8217;t be a measured at in this view. That should be in an advanced new-form. Posted in Technical Tagged: building Sano, Rails, Ruby, Ruby on Rails, Sano<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1345&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a rather long fight with formtastic I have a better CRUD for weight:</p>
<p><img class="alignnone size-full wp-image-1346" src="http://pupeno.files.wordpress.com/2009/11/sone-0127.png?w=538" alt="sone-012"   /></p>
<p>But now that I think about it, there shouldn&#8217;t be a measured at in this view. That should be in an advanced new-form.</p>
<br />Posted in Technical Tagged: building Sano, Rails, Ruby, Ruby on Rails, Sano <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pupeno.wordpress.com/1345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pupeno.wordpress.com/1345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pupeno.wordpress.com/1345/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pupeno.com&amp;blog=8470507&amp;post=1345&amp;subd=pupeno&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pupeno.com/2009/11/21/simplifying-the-weight-crud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/931970b8dc51b72e05e3a12b88612d61?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Pablo</media:title>
		</media:content>

		<media:content url="http://pupeno.files.wordpress.com/2009/11/sone-0127.png" medium="image">
			<media:title type="html">sone-012</media:title>
		</media:content>
	</item>
	</channel>
</rss>
