
<rss version="2.0">
	<channel>
		<title>Stanmx.com</title>
		<link>http://www.stanmx.com/</link>
		<description>Los mas recientes post del blog de Estanislao Vizcarra, un espacio personal con toques de desarrollo web, tecnologia, entretenimiento y futbol.</description>
		<generator>FlavorPHP</generator>	
					<item>
				<title>Tablas zebra en rails3</title>
            <description><![CDATA[<p>Dentro de los mockups de una app en la que estoy trabajando, utilizo tablas con estilo zebra, el detalle es que en rails3 no sabia si utilizar javascript o si habia otra forma de resolverlo.</p>
<p>Asi llegue a un metodo llamado <code>cycle</code> el cual me permite hacer este trabajo.</p>
<p>Ejemplo:</p>
<pre>
&lt;table&gt;
   &lt;!-- aqui va thead --&gt;
   &lt;tbody&gt;
      &lt;% @hotels.each do |hotel| %&gt;
      &lt;tr class=&quot;&lt;%= cycle(&quot;first&quot;, &quot;second&quot;) %&gt;&quot;&gt;
	     &lt;td&gt;&lt;%= hotel.name %&gt;&lt;/td&gt;
         &lt;td&gt;&lt;%= hotel.location %&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;% end %&gt;
   &lt;/tbody&gt;
&lt;/table&gt;
</pre>
<p>Y dentro de nuestro <strong>CSS</strong>.</p>
<pre>
.second {
   background-color: #eee;
}
</pre>
<p>y listo!</p>]]></description>
				<link>http://www.stanmx.com/post/508/tablas-zebra-en-rails3/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/508/tablas-zebra-en-rails3/</guid>
			   <pubDate>Thu, 02 Sep 2010 09:07:47 GMT</pubDate>
				<category>ruby-on-rails</category>
			</item>
					<item>
				<title>Espacios entre parrafos en Rails3</title>
            <description><![CDATA[<p>Tengo unos p&aacute;rrafos que capturo a trav&eacute;s de un <code>textarea</code> en <strong>Rails3</strong>, el detalle esta, que al mostrarlos en la vista <em>show</em>, aparecen estos sin los espacios que hice dentro del <code>textarea</code>.</p>
<p>En Rails2 estaba actualizando anteriormente:</p>
<pre>&lt;%=h @hotel.description.gsub(/\n/, '&lt;br /&gt;') %&gt;</pre>
<p>Lo que me inserta un <em>&lt;br /&gt;</em> en los espacios dentro de la descripci&oacute;n al momento de mostrarlo.</p>
<p>Sin embargo este m&eacute;todo ya no funciona en Rails3, por lo cual googleando un  poco encontr&eacute; la siguiente soluci&oacute;n:</p>
<pre>&lt;%= h(@hotel.description).gsub(/\n/, '&lt;br /&gt;') %&gt;</pre>
<p>No s&eacute; si es lo m&aacute;s &oacute;ptimo, pero por el momento me resuelve.</p>
<p>El hecho que no funcionara m&aacute;s la primera l&iacute;nea, tiene que ver con la <strong>protecci&oacute;n XSS</strong> que incluye <strong>Rails3</strong>.</p>
]]></description>
				<link>http://www.stanmx.com/post/507/espacios-entre-parrafos-en-rails3/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/507/espacios-entre-parrafos-en-rails3/</guid>
			   <pubDate>Thu, 02 Sep 2010 09:02:21 GMT</pubDate>
				<category>ruby-on-rails</category>
			</item>
					<item>
				<title>Renombrando columnas en Rails</title>
            <description><![CDATA[<p>Me encuentro trabajando en un proyecto con <strong>Rails 3</strong> y comet&iacute; la tonter&iacute;a de no respetar una de las convenciones, al escribir <code>id_state</code> a una de las columnas de  mi tabla de base de datos.</p>
<p>La pregunta era <strong>&iquest;Como la renombro?</strong> sin afectar la info que ya tengo capturada.</p>
<p>La soluci&oacute;n fue la siguiente:</p>
<p><strong>1.- creamos una migraci&oacute;n nueva:</strong></p>
<pre>$ rails g migration rename_column_id_state</pre>
<p><strong>2.- luego en nuestro archivo generado en <code>db/migrate/</code> dentro de <code>def self.up</code> escribimos:</strong></p>
<pre>rename_column :cities, :id_state, :state_id</pre>
<p>La sintaxis es la siguiente: <em>rename_column (nombre_de_tabla, nombre_de_columna, nuevo_nombre_de_columna)</em></p>
<p>3.- Corremos la migraci&oacute;n:</p>
<pre>$ rake db:migrate</pre>
<p>Y listo, tenemos nuestra columna renombrada. Ser&iacute;a bueno solo revisar no estar utilizando en ninguna vista el nombre anterior, para no crear conflictos.</p>
<p>Lo m&aacute;s curioso al final fue que gracias a este cambio, logre hacer funcionar  otra l&iacute;nea de convenci&oacute;n que no resolv&iacute;a.</p>
]]></description>
				<link>http://www.stanmx.com/post/506/renombrando-columnas-en-rails/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/506/renombrando-columnas-en-rails/</guid>
			   <pubDate>Thu, 02 Sep 2010 08:42:41 GMT</pubDate>
				<category>ruby-on-rails</category>
			</item>
					<item>
				<title>Rails 3.0 esta listo!</title>
            <description><![CDATA[<img class="photo-uno" alt="Ruby on Rails" src="http://www.stanmx.com/photos/ruby-on-rails.jpg" />

<p>La versi&oacute;n final de <a title="Rails 3.0 its ready!" href="http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done">Rails 3.0</a> ha visto la luz el d&iacute;a de hoy, con interesantes cambios.</p>

<p>Si no han utilizado <strong>Ruby on Rails</strong>, pero est&aacute;n interesados es un buen momento para iniciar, existen interesantes fuentes de informaci&oacute;n para esto, entre mis favoritas se encuentran:</p>

<ul>
	<li><a title="Railscasts" href="http://railscasts.com/">Railscasts</a></li>
	<li><a title="ASCIIcasts" href="http://asciicasts.com/">ASCIIcasts</a></li>
	<li><a title="Rails Dispatch" href="http://www.railsdispatch.com/">Rails Dispatch</a></li>
</ul>

<p>Entre las fuentes oficiales se encuentran:</p>

<ul>
	<li><a title="Tutorial de Rails 3.0" href="http://railstutorial.org/book">Tutorial de Rails 3.0</a></li>
	<li><a title="Screencasts de Rails 3.0" href="http://rubyonrails.org/screencasts/rails3">Screencast de Rails 3.0</a></li>
	<li><a title="Guias de Rails 3.0" href="http://guides.rubyonrails.org/">Guias de Rails 3.0</a></li>
</ul>

<p>Si te gusta leer desde papel, te recomiendo los siguientes libros:</p>
<ul>
	<li><a title="Learn to program 2nd edition" href="http://pragprog.com/titles/ltp2/learn-to-program-2nd-edition">Learn to program 2nd edition</a></li>
	<li><a title="Programming Ruby 1.9" href="http://pragprog.com/titles/ruby3/programming-ruby-1-9">Programming Ruby 1.9</a></li>
	<li><a title="Agile Web Development with Rails" href="http://pragprog.com/titles/rails4/agile-web-development-with-rails">Agile Web Development with Rails</a></li>
</ul>

<p>Ruby on Rails es un Framework de desarrollo incre&iacute;ble.</p>]]></description>
				<link>http://www.stanmx.com/post/505/rails-3-0-esta-listo/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/505/rails-3-0-esta-listo/</guid>
			   <pubDate>Sun, 29 Aug 2010 21:30:17 GMT</pubDate>
				<category>ruby-on-rails</category>
			</item>
					<item>
				<title>Preview de lo que viene</title>
            <description><![CDATA[<p>En <a title="Blog revival" href="http://www.stanmx.com/post/399/blog-revival/">octubre de 2008 publique la actual version del blog</a>, de eso hace un buen rato, me parece que el actual dise&ntilde;o ya dio lo que tenia que dar y es momento de abrir espacio para uno nuevo.</p>

<p>Es por ello que los &uacute;ltimos d&iacute;as he comenzado a trazar la nueva versi&oacute;n del blog, hasta llegar al preview que hoy les presento.</p>

<img class="photo-uno" alt="Post preview" src="http://www.stanmx.com/photos/post-preview.jpg" />

<p>Es un dise&ntilde;o influenciado por la l&iacute;nea minimalista de mis &uacute;ltimos trabajos con un poco de color (solo el necesario) y muchas ganas de que sea un digno sucesor del actual.</p>

<p><a title="Post preview en flickr" href="http://www.flickr.com/photos/stanmx/4922344499/">Lo pueden apreciar completo en mi flickr.</a></p>

<p>La intension es correrlo sobre HTML5 y Rails 3, pero el primero aun no estoy del todo convencido.</p>

<p>Por lo pronto seguire trabajando en el resto de los mockups, los estare presentando en flickr y en este mismo post.</p>

<p><strong>Todas las sugerencias son bienvenidas.</strong></p>
<ul>
   <li><strong>Actualizaci&oacute;n 1</strong>: <a title="Blog preview en flickr" href="http://www.flickr.com/photos/stanmx/4928350487/">Blog preview en flickr.</a></li>
</ul>]]></description>
				<link>http://www.stanmx.com/post/504/preview-de-lo-que-viene/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/504/preview-de-lo-que-viene/</guid>
			   <pubDate>Tue, 24 Aug 2010 00:52:29 GMT</pubDate>
				<category>blog</category>
			</item>
					<item>
				<title>Como subir una app de Rails en Site5</title>
            <description><![CDATA[<p>Meses atr&aacute;s, mientras escrib&iacute;a mis primeras l&iacute;neas en <strong>Ruby on Rails</strong> salto la duda sobre en donde hospedar&iacute;a mis futuros proyectos, investigando posteriormente llegue a la conclusi&oacute;n de probar el hosting de <a title="Site5" href="http://site5.com/">Site5</a>.</p>

<p>Lo siguiente en resolver era como rayos iba a correr mi aplicaci&oacute;n en el hosting una vez que estuviera terminada, por lo que me di a la tarea de investigar y comparto con ustedes la siguiente receta.</p>
	
<p>Los siguientes pasos son para correr una app de <strong>Rails 2.3.5</strong> en <strong>Site5</strong>. (Hace unos dias corrimos una en <em>Rails 3.0.0.beta4</em>, pero el procedimiento es ligeramente distinto debido a la participaci&oacute;n de <em>Bundler</em>)</p>
	
<p>1.- Tenemos nuestro proyecto local llamado <em>miapp</em></p>
	
<p>2.- Revisamos localmente que gemas tenemos instaladas en nuestro proyecto:</p>
<pre>
   $ cd miapp
   $ rake gems
</pre>
	
<p>Esto nos mostrara las gemas y sus dependencias</p>
	
<p>3.- Desempaquetamos las gemas necesarias dentro del folder <em>vendor</em> de nuestra aplicaci&oacute;n:</p>
<pre>
   $ rake gems:unpack:dependencies	
</pre>
	
<p>4.- En nuestro CPANEL de Site5 creamos una base de datos y un usuario con todos los permisos sobre ella.</p>
	
<p>5.- Modificamos la conexi&oacute;n de nuestro <em>config/database.yml</em> a MySQL:</p>
<pre>
   production:
      adapter: mysql
      encoding: utf8
      reconnect: false
      database: mibasededatos #nombre de nuestra base de datos
      pool: 5
      username: miusuario #nuestro usuario de base de datos
      password: mipassword #nuestro password de usuario
      host: localhost	
</pre>
	
<p>6.- En <em>config/enviroment.rb</em> agregamos el ambiente de producci&oacute;n:</p>
<pre>
   ENV['RAILS_ENV'] = "production"
   RAILS_ENV = ENV['RAILS_ENV']
</pre>
	
<p>7.- Nos conectamos via <em>SSH</em> a nuestro hosting en Site5:</p>
<pre>
   $ ssh user@domain.com
</pre>

<p>En este paso es el usuario del hosting arroba el dominio, y el password, ser&aacute; el mismo que el del hosting.</p>
	
<p>8.- Una vez que accesamos al hosting via <em>SSH</em>, creamos en la ra&iacute;z un folder llamado <em>apps</em>, que es donde estar&aacute; nuestra aplicaci&oacute;n e ingresamos a el.</p>
<pre>
    $ sudo mkdir apps
    $ cd apps
</pre>
	
<p>9.- Dentro de <em>apps</em> subimos completo nuestro proyecto local <em>miapp</em> via FTP.</p>
	
<p>10.- En la terminal v&iacute;a <em>SSH</em> removemos el folder <em>public_html</em> y redireccionamos el <em>public</em> de nuestro <em>miapp</em> virtualmente:</p>
<pre>
   $ rm public_html
   $ ls
   $ ln -s /home/username/apps/miapp/public public_html
   $ ls -l
</pre>

<p>Donde <em>username</em> es el usuario que utilizamos en nuestro acceso a <em>SSH</em>.</p>
	
<p>11.- ingresamos a <em>miapp</em>, al folder <em>public</em> para remover el <em>index.html</em> (paso opcional, se puede hacer localmente o v&iacute;a FTP)</p>
<pre>
   $ cd apps/miapp
   $ ls
   $ cd public
   $ ls
   $ rm index.html
   $ cd ..
</pre>
	
<p>12.- nos posicionamos dentro del folder <em>apps</em> donde se encuentra <em>miapp</em> y asignamos permisos:</p>
<pre>
   $ chmod -R 755 miapp/*
</pre>
	
<p>13.- Creamos un <em>.htaccess</em> para nuestra aplicaci&oacute;n dentro de <em>public</em> (en mi caso utilice el editor <strong>nano</strong>):</p>
<pre>
   $ nano miapp/public/.htaccess
</pre>
	
<p>Dentro del nuevo archivo escribiremos las siguientes l&iacute;neas y posteriormente lo salvamos:</p>
<pre>
   RailsEnv production
   PassengerEnabled on
   PassengerAppRoot /home/username/apps/miapp
</pre>

<p>Lo que hicimos en este fue declarar nuevamente el ambiente de <em>production</em>, habilitar <em>passenger</em> y fijar la ruta de la app, donde username es el usuario que mencione en el paso 10.</p>
	
<p>14.- En la terminal realizamos dentro de nuestra <em>app</em> un <em>rake</em> para el esquema de la base de datos.</p>
<pre>
   $ cd app
   $ rake db:schema:load
</pre>
	
<p>15.- hacemos <em>refresh</em> en nuestro browser para ver nuestra <em>app</em> funcionando online.</p>
	
<p>16.- Cada que se realice un cambio en el c&oacute;digo, es necesario reiniciar <em>passenger</em>, para esta tarea con la terminal hacemos lo siguiente:</p>
<pre>
   $ cd apps/miapp
   $ touch tmp/restart.txt
</pre>

<p>si hacemos un <em>$ cd tmp</em> y un <em>ls</em> para mostrar los archivos, debe aparecernos un <em>restart.txt</em> dentro. Este paso es necesario cada vez que se modifique algo dentro de nuestra aplicaci&oacute;n.</p>
	
<p>No es una receta definitiva, existen algunas variantes en los pasos, sin embargo lo comparto porque es la forma como me ha funcionado.</p>]]></description>
				<link>http://www.stanmx.com/post/503/como-subir-una-app-de-rails-en-site5/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/503/como-subir-una-app-de-rails-en-site5/</guid>
			   <pubDate>Fri, 20 Aug 2010 09:17:55 GMT</pubDate>
				<category>ruby-on-rails site5</category>
			</item>
					<item>
				<title>19 dias y contando</title>
            <description><![CDATA[<p>Siendo agosto el mes tenebroso  ininterrumpidamente durante los &uacute;ltimos 3 a&ntilde;os, es casi de esperarse que los pr&oacute;ximos  d&iacute;as ocurra algo catastr&oacute;fico, as&iacute; que mientras eso llega un resumen de lo que  ha acontecido estos d&iacute;as.</p>
<p>Recientemente con la colaboraci&oacute;n de <a title="Enrique Vidal" href="http://www.cloverinteractive.com/">personajes</a> <a title="Mario Chavez" href="http://mario-chavez.blogspot.com/">talentosos</a> sacamos a la luz un <a title="Repositorio" href="http://www.flickr.com/photos/stanmx/4907370621/">Repositorio</a> con muy buena pinta, hecho en <strong>Ruby on Rails 3</strong>, para cubrir una necesidad  laboral, sin embargo hemos visto cierto potencial en el, por lo cual lo continuaremos  modificando para poderlo liberar en un mes m&aacute;s.</p>
<p>Por otra parte he estado realizando  bastante dise&ntilde;o web en &uacute;ltimas fechas, algunos bien recibidos, otros con listas  de 100 cosas negativas en ellos, ja! Pero ha sido una labor divertida e  interesante que me gusta mucho desarrollar.</p>
<p>En el cine lo &uacute;nico bueno ha sido INCEPTION, una pel&iacute;cula que tengo ganas de volver a ver. En el caso de Stallone  y su pandilla de The Expandibles francamente no me gusto. Falta aun ver  Predators este mes, por lo que espero sea mejor que The Expandibles.</p>
<p>Y pronto ser&aacute; oficial la comunidad de <a title="Ruby on Rails en Tijuana" href="http://groups.google.com/group/tijuanarb">Ruby on Rails en Tijuana</a>, ignoro el nombre final, si ser&aacute; <strong>tjruby</strong> o <strong>tijuana.rb</strong>; por lo pronto los  interesados pueden darse de alta en el grupo de Google ya que de ah&iacute; partir&aacute; el  anuncio oficial.</p>
<p>Por &uacute;ltimo, <em>&iexcl;No olviden tomar mucha agua!</em></p>
]]></description>
				<link>http://www.stanmx.com/post/502/19-dias-y-contando/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/502/19-dias-y-contando/</guid>
			   <pubDate>Thu, 19 Aug 2010 10:03:58 GMT</pubDate>
				<category>general</category>
			</item>
					<item>
				<title>Como echar a perder un sitio en dos pasos</title>
            <description><![CDATA[<ol>
   <li>Olvidando para que te contrataron</li>
   <li>Dejando que el cliente te diga como hacer tu trabajo</li>
</ol>
]]></description>
				<link>http://www.stanmx.com/post/501/como-echar-a-perder-un-sitio-en-dos-pasos/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/501/como-echar-a-perder-un-sitio-en-dos-pasos/</guid>
			   <pubDate>Fri, 30 Jul 2010 23:41:57 GMT</pubDate>
				<category>maldiciones</category>
			</item>
					<item>
				<title>500</title>
            <description><![CDATA[<p>Han pasado 6 a&ntilde;os desde que inicie el blog y un poco mas desde que compre el dominio.</p>
<p>2002, acabada de terminar un fant&aacute;stico juego en mi emulador de SNES llamado <strong>Chrono Trigger</strong> y tambi&eacute;n por esos d&iacute;as surgi&oacute; la necesidad de comprar un dominio para un proyecto escolar.</p>
<p>Lo cierto es que no ten&iacute;a idea de c&oacute;mo llamarlo, recuerdo que mis primeras b&uacute;squedas fueron por  <q>maynardwebsite.com</q> ya que en ese tiempo ten&iacute;a un sitio en <strong>4mg</strong> con  ese nombre, otro nombre fue <q>radical-zone.com</q> por la segunda parte de Chrono Trigger llamada <q>Radical Dreamers</q>, pero quedo descartado a los segundos cuando lo pronuncie un par de veces, ja!</p>
<p>Sin ideas y con el tiempo encima, me fui  por el actual nombre, recuerdo que mi maestro me cuestiono el nombre al momento de indicarle el dominio que comprar&iacute;a: - <q>&iquest;Est&aacute;s seguro?</q> pregunto; -  <q>Si, estoy seguro</q> respond&iacute;. Y ese es <strong>el secret origin de stanmx.com</strong></p>
<p><q>Buscando la accesibilidad</q> es  otra historia que tal vez platique en el post 1000, ja!</p>
]]></description>
				<link>http://www.stanmx.com/post/500/500/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/500/500/</guid>
			   <pubDate>Wed, 14 Jul 2010 09:17:05 GMT</pubDate>
				<category>celebracion</category>
			</item>
					<item>
				<title>Inmortalizado por Google Maps en Tijuana</title>
            <description><![CDATA[<p>La ma&ntilde;ana de hoy el <a title="drbizarre.net" href="http://www.drbizarre.net/">Oscar</a> me comento  que ya hab&iacute;a nuevas partes de Tijuana dentro de la opci&oacute;n de <strong>Google Street View</strong> en <a title="Google Maps" href="http://maps.google.com/">Google Maps</a>, por  lo que me di a la tarea de echarle un ojo para ver que tanto se hab&iacute;a avanzado.</p>
<p>Se observa la mayor parte de la ciudad capturada (me atrevo a decir que un 80%). Como mencione en mi anterior post sobre el tema: <a title="Google Street View en Tijuana" href="http://www.stanmx.com/post/493/google-maps-street-view-en-tijuana/">Google Street View en Tijuana</a>, me puse a revisar el Blvd. S&aacute;nchez Taboada donde hab&iacute;a visto el veh&iacute;culo de Google el a&ntilde;o pasado y <em>&iexcl;oh sorpresa, ah&iacute; estoy, ja!</em></p>
<img class="photo-uno" alt="Stanmx en Google Maps" src="http://www.stanmx.com/photos/inmortalizado-por-google-maps.jpg" />
<p>Es interesante que a las tomas se les puede visualizar 360 grados a la redonda, hacer zoom a las im&aacute;genes y existen muchas tomas similares a cada paso que el veh&iacute;culo de Google avanzo.</p>
<p>As&iacute; que si tienen ganas de cuchichear como es Tijuana, es un buen momento para entrar a <a href="http://maps.google.com/">http://maps.google.com/</a>, buscar <strong>Tijuana</strong> y una vez sobre la ciudad, <strong>arrastrar el monito amarillo de la barra izquierda sobre la ciudad</strong>, para que el mapa comience a iluminar las zonas que cuentan con esta fascinante opci&oacute;n de <strong>Google Street View</strong>.</p>
<img class="photo-uno" alt="Stanmx en Google Maps" src="http://www.stanmx.com/photos/google-street-view-tijuana-dos.jpg" />
]]></description>
				<link>http://www.stanmx.com/post/499/inmortalizado-por-google-maps-en-tijuana/</link>				
           	<guid isPermaLink="true">http://www.stanmx.com/post/499/inmortalizado-por-google-maps-en-tijuana/</guid>
			   <pubDate>Sat, 17 Apr 2010 11:34:30 GMT</pubDate>
				<category>google</category>
			</item>
		    </channel>
</rss>