<?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"
	>

<channel>
	<title>ABECEDATA</title>
	<atom:link href="http://www.abecedata.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abecedata.com</link>
	<description>Desarrollo Web con Ruby on Rails</description>
	<pubDate>Fri, 04 Apr 2008 22:04:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Cargando fixtures en la base de datos</title>
		<link>http://www.abecedata.com/2008/01/28/cargando-fixtures-en-la-base-de-datos/</link>
		<comments>http://www.abecedata.com/2008/01/28/cargando-fixtures-en-la-base-de-datos/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 22:55:03 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[fixtures]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/28/cargando-fixtures-en-la-base-de-datos/</guid>
		<description><![CDATA[Cómo cargar las fixtures en el entorno en el que nos encontramos
rake db:fixtures:load
Cómo cargar las fixtures en un entorno diferente al que nos encontramos
rake db:fixtures:load RAILS_ENV=development
rake db:fixtures:load RAILS_ENV=test
rake db:fixtures:load RAILS_ENV=production
Cómo cargar sólo unas determinadas fixtures en la base de datos
rake db:fixtures:load FIXTURES=users,products
]]></description>
			<content:encoded><![CDATA[<p>Cómo cargar las fixtures en el entorno en el que nos encontramos</p>
<pre>rake db:fixtures:load</pre>
<p>Cómo cargar las fixtures en un entorno diferente al que nos encontramos</p>
<pre>rake db:fixtures:load RAILS_ENV=development
rake db:fixtures:load RAILS_ENV=test
rake db:fixtures:load RAILS_ENV=production</pre>
<p>Cómo cargar sólo unas determinadas fixtures en la base de datos</p>
<pre>rake db:fixtures:load FIXTURES=users,products</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/28/cargando-fixtures-en-la-base-de-datos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>El paradigma MVC (Model-View-Controller)</title>
		<link>http://www.abecedata.com/2008/01/15/el-paradigma-mvc-model-view-controller/</link>
		<comments>http://www.abecedata.com/2008/01/15/el-paradigma-mvc-model-view-controller/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 21:12:00 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/15/el-paradigma-mvc-model-view-controller/</guid>
		<description><![CDATA[MVC son las siglas de Modelo, Vista y Controlador (Model, View, Controller). Es un patrón de diseño de software muy común en programas interactivos orientados a objetos.
Bajo el patrón de diseño MVC, los objetos se dividen en tres partes diferenciadas:

El Modelo. Es una representación lógica de objetos. Define los objetos como usuarios, productos, empleados etc, [...]]]></description>
			<content:encoded><![CDATA[<p>MVC son las siglas de Modelo, Vista y Controlador (Model, View, Controller). Es un patrón de diseño de software muy común en programas interactivos orientados a objetos.</p>
<p>Bajo el patrón de diseño MVC, los objetos se dividen en tres partes diferenciadas:</p>
<ul>
<li><strong>El Modelo</strong>. Es una representación lógica de objetos. Define los objetos como usuarios, productos, empleados etc, las relaciones entre ellos y los procesos que ocurren. En Rails, los modelos están basados en ActiveRecord. Lo más importante sobre los modelos de una aplicación Rails es que te dan la información correcta cuando el controlador se la pide.</li>
</ul>
<ul>
<li><strong>La Vista</strong>. La vista es responsable de generar la interfaz de usuario (lo que vemos en el navegador), basándose en los datos del modelo. En Rails la vista se genera usando RHTML (HTML con código Ruby) o RXML (XML con código Ruby). El controlador elige qué vista usar, y hace disponible los datos que necesita.</li>
</ul>
<ul>
<li><strong>El Controlador</strong>. El controlador une el modelo y la vista. En una aplicación web el controlador recibe la petición del usuario, interactúa con el modelo para procesar los datos y hace disponible esos datos a la vista. Los controladores son la única parte del MVC que deben ser definidos. El controlador puede procesar los datos y mostrarlos, es autosuficiente.</li>
</ul>
<p>Una de las ventajas del sistema MVC es que, al aplicar esta separación, se hace posible crear más de una vista para el mismo modelo (una vista abreviada, una vista detallada o una vista en XML), y reutilizar el modelo y el código que guarda el modelo de manera permanente, para escribir librerias relacionadas, o incorporar datos del dominio original en programas más grandes.</p>
<p>En la jerarquia de directorios de una aplicación Rails se ve que esta estructura está bien diferenciada, y que para cada modelo existe un directorio donde colocar los archivos correspondientes. Esto facilita la programación ya que se suelen tener pequeños archivos con poco código donde se ve claramente que función desempeñan y que son más fáciles de mantener.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/15/el-paradigma-mvc-model-view-controller/feed/</wfw:commentRss>
		</item>
		<item>
		<title>10 malentendidos sobre interacción persona-ordenador</title>
		<link>http://www.abecedata.com/2008/01/13/10-malentendidos-sobre-interaccion-persona-ordenador/</link>
		<comments>http://www.abecedata.com/2008/01/13/10-malentendidos-sobre-interaccion-persona-ordenador/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 15:44:28 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Diseño de Interacción]]></category>

		<category><![CDATA[Usabilidad]]></category>

		<category><![CDATA[HCI]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/13/10-malentendidos-sobre-interaccion-persona-ordenador/</guid>
		<description><![CDATA[
Si diseño cosas usables, hago Diseño Centrado en el Usuario
(usabilidad ≠ DCU)
Pues no. El Diseño Centrado en el Usuario consiste en diseñar mediante metodologías que involucren activamente a usuarios reales y futuros en el proceso. Al principio, para investigar necesidades, características y limitaciones; y más tarde para evaluar directamente que el diseño se ajusta a [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li><strong>Si diseño cosas usables, hago Diseño Centrado en el Usuario</strong><br />
<em>(usabilidad ≠ DCU)</em></p>
<p>Pues no. El Diseño Centrado en el Usuario consiste en diseñar mediante metodologías que involucren activamente a usuarios reales y futuros en el proceso. Al principio, para investigar necesidades, características y limitaciones; y más tarde para evaluar directamente que el diseño se ajusta a sus requisitos de usabilidad, funcionalidad, etc.<br />
Diseñar objetos usables es algo muy loable, pero NO ES necesariamente Diseño Centrado en el Usuario.</li>
<li><strong>Usabilidad es diseñar algo para que cualquiera pueda usarlo</strong><br />
<em>(diseño universal ≠ usabilidad)</p>
<p></em>No es correcto. La usabilidad es la facilidad de uso que representa un objeto (sistema, interfaz…) para sus usuarios. Y estos no serán, muy probablemente, el mundo entero. Hay aplicaciones que van a ser usadas por un grupo de usuarios inmensamente amplio, y que necesitan de un enfoque universalista. Sin embargo, la mayoría de los sistemas interactivos se hacen para públicos muy específicos. Cuanto más adaptados estén a ellos (y por ende más desadaptados al resto), más usables serán.</li>
<li><strong>El diseño que se adapta a los estándares tecnológicos es diseño usable</strong><br />
<em>(estándares ≠ usabilidad)</em></p>
<p>Falso. El diseño que se adapta a los estándares tecnológicos… se adapta a los estándares. Punto. Otra cosa es que se adapte a los usuarios (algo muy distinto). Podríamos diseñar algo que “validara” con los estándares de la W3C, los ISO o la Convención de Ginebra, y sin embargo podría ser la cosa más inútil e inusable del mundo. Si algo funciona como debe.. ¡a quién le importa la tecnología!Evidentemente, que se adapte a los estándares tiene muchas ventajas en muchos aspectos, pero no es correcto asociar los estándares tecnológicos con la usabilidad.</li>
<li><strong>Un diseño usable suele ser conservador y poco innovador</strong><br />
<em>(creatividad ≠ usabilidad)</p>
<p></em>Mentira. Para conseguir que algo se adapte al máximo a los usuarios hace falta tener buenas ideas, y a menudo inventar formas nuevas de hacer las cosas. Evidentemente, a veces la solución ya existe; y como es conocida, pues se adopta más fácilmente que la desconocida.</li>
<li><strong>Un diseño minimalista es un diseño usable</strong><br />
<em>(minimalismo ≠ usabilidad)</em></p>
<p>Incorrecto. El minimalismo visual no tiene por qué ser sinónimo de usabilidad. De hecho, si el minimalismo afecta a aspectos necesarios de la interacción, el efecto puede ser catastrófico (elementos importantes con tamaños milimétricos). No debemos confundir el minimalismo con el deconstructivismo (eliminar todo lo superfluo), que sí es una aproximación válida a la usabilidad.</li>
<li><strong>Si diseño pensando en los usuarios, estoy haciendo diseño centrado en el usuario</strong><br />
<em>(DCU ≠ diseño orientado al usuario)</em></p>
<p>Falso. Una cosa es el diseñar enfocado al usuario, y otra es la me-to-do-lo-gía de Diseño Centrado en el Usuario. Se pueden hacer cosas muy usables y muy adaptadas sin contar con usuarios reales en el proceso de diseño, pero no será DCU. ¿La diferencia? Pues que la metodología de DCU es más fiable, precisamente porque no basamos las decisiones en suposiciones, sino en hechos.</li>
<li><strong>La arquitectura de información es parte de la usabilidad</strong><br />
<em>(AI ≠ usabilidad)</em></p>
<p>No. La arquitectura de información comprende una serie de técnicas para estructurar información a muy distintos niveles, pero su fin no es asegurar la facilidad de uso de un sistema, sino la recuperación eficiente de información.Una buena arquitectura de información puede hacer que un sistema sea más usable cuando se trate de contenidos. Pero hay muchos otros sistemas interactivos que tienen poco que ver con la arquitectura de información y sí mucho con la usabilidad.</li>
<li><strong>Un diseño accesible es un diseño usable</strong><br />
<em>(accesibilidad ≠ usabilidad)</em></p>
<p>Error. Un diseño accesible es aquel que no pone barreras de acceso a su público objetivo, lo cual no significa que ese diseño vaya a ser fácil de usar, sino que se PUEDE usar. Para más inri, a menudo se asocia accesibilidad con invidentes. En realidad, el publico objetivo al que se destinen ciertas medidas de accesibilidad pueden ser los invidentes, los sordos, los usuarios de PDA, los que navegan con Netscape, los que no tienen un plugin instalado… La accesibilidad tiene que ver con eliminar barreras, no con la facilidad de uso.</li>
<li><strong>Respetar los estándares tecnológicos garantiza un diseño accesible</strong><br />
<em>(estándares ≠ accesibilidad)</em></p>
<p>Tampoco. Respetar los estándares puede ayudar mucho a que un diseño sea accesible, pero hay muchos elementos de accesibilidad que no son sólo tecnológicos. La forma en que una persona sorda procesa la información textual (palabras como signos) no tiene nada que ver con que valide o no. La forma en que interpretará ciertos gráficos una persona con deficiencias de percepción del color no tiene que ver con la versión de su navegador, etc.Respetar los estándares asegura cierta accesibilidad en aspectos de formato, pero no elimina barreras cognitivas.</li>
<li><strong>La estética juega en contra de la usabilidad</strong><br />
<em>(estética vs. usabilidad)</p>
<p></em>¡MENTIRAAAA!. La estética no sólo no va en detrimento de la usabilidad sino que puede jugar a su favor, incrementando su percepción. Un buen ejemplo es el experimento de los cajeros, donde se demuestra que un cajero automático con una estética cuidada se percibe como más usable que otro con la estética más descuidada pero que objetivamente es más fácil de usar.Otra cosa muy distinta es el styling, la ornamentación. El styling SÍ es añadir elementos superfluos. Y esos elementos a menudo van en detrimento de la usabilidad. Pero la estética no. La estética es una necesidad del hombre.</li>
</ol>
<p>Este es un artículo original de <a href="http://www.programavostok.com/" target="_blank">Javier Cañada</a> publicado en <a href="http://www.terremoto.net/x/archivos/000060.html" target="_blank">Terremoto.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/13/10-malentendidos-sobre-interaccion-persona-ordenador/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vídeos de la Conferencia Rails 2007</title>
		<link>http://www.abecedata.com/2008/01/10/videos-de-la-conferencia-rails-2007/</link>
		<comments>http://www.abecedata.com/2008/01/10/videos-de-la-conferencia-rails-2007/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 22:37:58 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Conferencia Rails 2007]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/10/videos-de-la-conferencia-rails-2007/</guid>
		<description><![CDATA[Se han estado recopilando los vídeos de las ponencias de la Conferencia Rails Hispana 2007 celebrada el pasado 22 y 23 de noviembre. En estos momentos se pueden descargar de
http://www.amaiac.net/conferenciarails2007/
ftp://hades.udg.edu/conferenciarails2007
http://www.conferenciarails.org/archivo/2007/12/4/videos_de_las_ponencias_por/ 
También se pueden consultar en Google Video
]]></description>
			<content:encoded><![CDATA[<p>Se han estado recopilando los vídeos de las ponencias de la Conferencia Rails Hispana 2007 celebrada el pasado 22 y 23 de noviembre. En estos momentos se pueden descargar de</p>
<p><a href="http://www.amaiac.net/conferenciarails2007/" target="_blank">http://www.amaiac.net/conferenciarails2007/</a></p>
<p><a href="ftp://hades.udg.edu/conferenciarails2007" target="_blank">ftp://hades.udg.edu/conferenciarails2007</a></p>
<p><a href="http://www.conferenciarails.org/archivo/2007/12/4/videos_de_las_ponencias_por/ " target="_blank">http://www.conferenciarails.org/archivo/2007/12/4/videos_de_las_ponencias_por/ </a></p>
<p>También se pueden consultar en Google Video</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/10/videos-de-la-conferencia-rails-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Recursos anidados (o no) en REST</title>
		<link>http://www.abecedata.com/2008/01/08/recursos-anidados-o-no-en-rest/</link>
		<comments>http://www.abecedata.com/2008/01/08/recursos-anidados-o-no-en-rest/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 21:57:35 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/08/recursos-anidados-o-no-en-rest/</guid>
		<description><![CDATA[La filosofía REST permite relacionar los recursos entre ellos de manera que los podamos anidar para que únicamente tengan sentido en un contexto determinado. Supongamos que tenemos un blog multiusuario donde hay &#8220;users&#8221;, &#8220;posts&#8221; y &#8220;comments&#8221;. No tiene demasiado sentido acceder a un comentario directamente con una url del tipo /comments/34, ya que un comentario [...]]]></description>
			<content:encoded><![CDATA[<p>La filosofía REST permite relacionar los recursos entre ellos de manera que los podamos anidar para que únicamente tengan sentido en un contexto determinado. Supongamos que tenemos un blog multiusuario donde hay &#8220;users&#8221;, &#8220;posts&#8221; y &#8220;comments&#8221;. No tiene demasiado sentido acceder a un comentario directamente con una url del tipo /comments/34, ya que un comentario no tiene sentido sin un post, y lo mismo pasa con los posts. Lo ideal sería disponer de una url para acceder a los recursos con un formato como este:</p>
<p>/users/4/posts/34/comments/10</p>
<p>Lo que devolvería el comentario 10 que pertenece al post 34 que a su vez pertence al usuario 4. Una de las ventajas de anidar los recursos es que podemos hacer esto:</p>
<p>/users/30/posts</p>
<p>y nos devuelve todos los posts del usuario 30.</p>
<p>Como véis tiene mucho sentido anidar los recursos para relacionarlos entre ellos. Si queréis saber más sobre recursos anidados podéis consultar:</p>
<p><a href="http://www.norellana.com/2007/07/28/recursos-anidados-en-rails/" target="_blank">http://www.norellana.com/2007/07/28/recursos-anidados-en-rails/</a></p>
<p><a href="http://www.jaimeiniesta.com/2007/12/22/tutorial-recursos-anidados-con-rest-y-rails-2/" target="_blank">http://www.jaimeiniesta.com/2007/12/22/tutorial-recursos-anidados-con-rest-y-rails-2/ </a></p>
<p>Bien, el problema aparece cuando necesitamos tener un recurso que sea anidado en algunas ocasiones y que no lo sea en otras. Me explico. Supongamos una aplicación con empresas que publican ofertas de empleo. Las ofertas de empleo están anidadas a los usuarios ya que una oferta pertenece a una empresa. Así podremos acceder a las ofertas de la siguiente manera</p>
<p>/companies/34/jobs/889</p>
<p>¿Pero que pasa cuando queremos mostrar un listado de todas las ofertas? O lo que es lo mismo, hacer la petición</p>
<p>/jobs</p>
<p>Rails nos va a dar un error ya que necesita saber el id de la empresa para poder listar las ofertas de trabajo. Para poder crear un recurso anidado (o no) según nos convenga hay que hacer lo siguiente:</p>
<p>En el routes.rb crear las rutas</p>
<pre>
map.resources :companies do |company|
   company.resources :jobs
end

map.resources :jobs</pre>
<p>Cambiamos el método index del controlador</p>
<pre>
def index
   @jobs = target.find(:all)
end</pre>
<p>y añadimos los siguientes métodos</p>
<pre>protected
def target
   @user ? @user.jobs : Job
end

def get_user
    return if params[:user_id].blank?
    @user = User.find(params[:user_id])
    rescue ActiveRecord::RecordNotFound
    redirect_to jobs_url
  end

def get_job
    @job = Job.find(:all)
end</pre>
<p>De esta manera si se accede a una oferta de empleo se ejecutará el método get_user que devolverá el id del usuario para poder acceder al recurso anidado, si se está accediendo directamente al listado de ofertas de empleo, get_user hará un return y se ejecutará el código de get_job, de manera que  obtendremos el listado de ofertas de empleo.</p>
<p>De esta manera podemos disponer de un recurso anidado cuando lo necesitemos, pero también accesible directamente para realizar ciertas funciones.</p>
<p>Otro ejemplo es éste que propuso <a href="http://www.hashref.com/" title="Xavier Noria" target="_blank">Xavier Noria</a> en la lista de Rails:</p>
<p>Hay que tener presente que las URLs que dan acceso a un mismo recurso<br />
pueden ser multiples, por ejemplo</p>
<pre>/releases/my-app-1.1.tar.gz

/releases/latest.tar.gz</pre>
<p>Las URLs con caminos que indican jerarquía pueden indicar nesting (pertenencia), scope, y en general lo que tenga sentido en la aplicacion.</p>
<p>Pero supongamos ahora que estás en una central de reservas de hoteles. Para hacer una reserva puede quedar bien una URLS así:</p>
<pre>POST /chains/sol-melia/hotel/54/bookings</pre>
<p>Eso daría una reserva. En una aplicación web podrías ir al show de esa reserva despues. Si estuvieramos en un web service devolveríamos un 201 Created con una cabecera Location a la dirección de ese recurso nuevo. Esa dirección puede perfectamente ya no reflejar la jerarquia (aunque podría hacerlo y se pueden ofrecer ambos accesos):</p>
<pre>GET /bookings/789123</pre>
<p>Por ejemplo, cancelar una reserva es más fácil que se ofrezca como</p>
<pre>DELETE /bookings/789123</pre>
<p>a no ser que el cliente deba añadir la jerarquía que es redundante y puede que le suponga un GET previo. La reserva ya sabe a quien pertenece.</p>
<p>En una API así, BookingsController ha de estar preparado para servir peticiones con scope y sin scope. Si las consultas y las cancelaciones solo son accesibles con URLs directas entonces show y destroy no han<br />
de lidiar con el scope opcional. Si index se publica con y sin scope entonces la acción debe entender ambas llamadas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/08/recursos-anidados-o-no-en-rest/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Palabras reservadas en Ruby on Rails</title>
		<link>http://www.abecedata.com/2008/01/03/palabras-reservadas-en-ruby-on-rails/</link>
		<comments>http://www.abecedata.com/2008/01/03/palabras-reservadas-en-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 19:37:32 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/03/palabras-reservadas-en-rails/</guid>
		<description><![CDATA[Esta es la lista de palabras que no puedes utilizar ya que están reservadas por Ruby o Ruby on Rails.

ADDITIONAL_LOAD_PATHS
ARGF
ARGV
ActionController
ActionView
ActiveRecord
ArgumentError
Array
BasicSocket
Benchmark
Bignum
Binding
CGI
CGIMethods
CROSS_COMPILING
Class
ClassInheritableAttributes
Comparable
ConditionVariable
Config
Continuation
DRb
DRbIdConv
DRbObject
DRbUndumped
Data
Date
DateTime
Delegater
Delegator
Digest
Dir
ENV
EOFError
ERB
Enumerable
Errno
Exception
FALSE
FalseClass
Fcntl
File
FileList
FileTask
FileTest
FileUtils
Fixnum
Float
FloatDomainError
GC
Gem
GetoptLong
Hash
IO
IOError
IPSocket
IPsocket
IndexError
Inflector
Integer
Interrupt
Kernel
LN_SUPPORTED
LoadError
LocalJumpError
Logger
Marshal
MatchData
MatchingData
Math
Method
Module
Mutex
Mysql
MysqlError
MysqlField
MysqlRes
NIL
NameError
NilClass
NoMemoryError
NoMethodError
NoWrite
NotImplementedError
Numeric
OPT_TABLE
Object
ObjectSpace
Observable
Observer
PGError
PGconn
PGlarge
PGresult
PLATFORM
PStore
ParseDate
Precision
Proc
Process
Queue
RAKEVERSION
RELEASE_DATE
RUBY
RUBY_PLATFORM
RUBY_RELEASE_DATE
RUBY_VERSION
Rake
RakeApp
RakeFileUtils
Range
RangeError
Rational
Regexp
RegexpError
Request
RuntimeError
STDERR
STDIN
STDOUT
ScanError
ScriptError
SecurityError
Signal
SignalException
SimpleDelegater
SimpleDelegator
Singleton
SizedQueue
Socket
SocketError
StandardError
String
StringScanner
Struct
Symbol
SyntaxError
SystemCallError
SystemExit
SystemStackError
TCPServer
TCPSocket
TCPserver
TCPsocket
TOPLEVEL_BINDING
TRUE
Task
Text
Thread
ThreadError
ThreadGroup
Time
Transaction
TrueClass
TypeError
UDPSocket
UDPsocket
UNIXServer
UNIXSocket
UNIXserver
UNIXsocket
UnboundMethod
Url
VERSION
Verbose
YAML
ZeroDivisionError

Más información en http://wiki.rubyonrails.org/rails/pages/ReservedWords
]]></description>
			<content:encoded><![CDATA[<p>Esta es la lista de palabras que no puedes utilizar ya que están reservadas por Ruby o Ruby on Rails.</p>
<ul>
<li>ADDITIONAL_LOAD_PATHS</li>
<li><span class="caps">ARGF</span></li>
<li><span class="caps">ARGV</span></li>
<li>ActionController</li>
<li>ActionView</li>
<li>ActiveRecord</li>
<li>ArgumentError</li>
<li>Array</li>
<li>BasicSocket</li>
<li>Benchmark</li>
<li>Bignum</li>
<li>Binding</li>
<li><a href="http://wiki.rubyonrails.org/rails/pages/CGI" class="existingWikiWord"><span class="caps">CGI</span></a></li>
<li><span class="caps">CGI</span>Methods</li>
<li><span class="caps">CROSS</span>_COMPILING</li>
<li>Class</li>
<li>ClassInheritableAttributes</li>
<li>Comparable</li>
<li>ConditionVariable</li>
<li>Config</li>
<li>Continuation</li>
<li>DRb</li>
<li>DRbIdConv</li>
<li>DRbObject</li>
<li>DRbUndumped</li>
<li>Data</li>
<li>Date</li>
<li>DateTime</li>
<li>Delegater</li>
<li>Delegator</li>
<li>Digest</li>
<li>Dir</li>
<li><span class="caps">ENV</span></li>
<li><span class="caps">EOF</span>Error</li>
<li><span class="caps">ERB</span></li>
<li>Enumerable</li>
<li>Errno</li>
<li>Exception</li>
<li><span class="caps">FALSE</span></li>
<li>FalseClass</li>
<li>Fcntl</li>
<li>File</li>
<li>FileList</li>
<li>FileTask</li>
<li>FileTest</li>
<li>FileUtils</li>
<li>Fixnum</li>
<li>Float</li>
<li>FloatDomainError</li>
<li>GC</li>
<li>Gem</li>
<li>GetoptLong</li>
<li>Hash</li>
<li>IO</li>
<li>IOError</li>
<li>IPSocket</li>
<li>IPsocket</li>
<li>IndexError</li>
<li>Inflector</li>
<li>Integer</li>
<li>Interrupt</li>
<li>Kernel</li>
<li>LN_SUPPORTED</li>
<li>LoadError</li>
<li>LocalJumpError</li>
<li>Logger</li>
<li>Marshal</li>
<li>MatchData</li>
<li>MatchingData</li>
<li>Math</li>
<li>Method</li>
<li>Module</li>
<li>Mutex</li>
<li>Mysql</li>
<li>MysqlError</li>
<li>MysqlField</li>
<li>MysqlRes</li>
<li><span class="caps">NIL</span></li>
<li>NameError</li>
<li>NilClass</li>
<li>NoMemoryError</li>
<li>NoMethodError</li>
<li>NoWrite</li>
<li>NotImplementedError</li>
<li>Numeric</li>
<li><span class="caps">OPT</span>_TABLE</li>
<li>Object</li>
<li>ObjectSpace</li>
<li>Observable</li>
<li>Observer</li>
<li>PGError</li>
<li>PGconn</li>
<li>PGlarge</li>
<li>PGresult</li>
<li><span class="caps">PLATFORM</span></li>
<li>PStore</li>
<li>ParseDate</li>
<li>Precision</li>
<li>Proc</li>
<li>Process</li>
<li>Queue</li>
<li><span class="caps">RAKEVERSION</span></li>
<li><span class="caps">RELEASE</span>_DATE</li>
<li><span class="caps">RUBY</span></li>
<li><span class="caps">RUBY</span>_PLATFORM</li>
<li><span class="caps">RUBY</span>_RELEASE_DATE</li>
<li><span class="caps">RUBY</span>_VERSION</li>
<li>Rake</li>
<li>RakeApp</li>
<li>RakeFileUtils</li>
<li>Range</li>
<li>RangeError</li>
<li>Rational</li>
<li>Regexp</li>
<li>RegexpError</li>
<li>Request</li>
<li>RuntimeError</li>
<li><span class="caps">STDERR</span></li>
<li><span class="caps">STDIN</span></li>
<li><span class="caps">STDOUT</span></li>
<li>ScanError</li>
<li>ScriptError</li>
<li>SecurityError</li>
<li>Signal</li>
<li>SignalException</li>
<li>SimpleDelegater</li>
<li>SimpleDelegator</li>
<li>Singleton</li>
<li>SizedQueue</li>
<li>Socket</li>
<li>SocketError</li>
<li>StandardError</li>
<li>String</li>
<li>StringScanner</li>
<li>Struct</li>
<li>Symbol</li>
<li>SyntaxError</li>
<li>SystemCallError</li>
<li>SystemExit</li>
<li>SystemStackError</li>
<li><span class="caps">TCP</span>Server</li>
<li><span class="caps">TCP</span>Socket</li>
<li>TCPserver</li>
<li>TCPsocket</li>
<li><span class="caps">TOPLEVEL</span>_BINDING</li>
<li><span class="caps">TRUE</span></li>
<li>Task</li>
<li>Text</li>
<li>Thread</li>
<li>ThreadError</li>
<li>ThreadGroup</li>
<li>Time</li>
<li>Transaction</li>
<li>TrueClass</li>
<li>TypeError</li>
<li><span class="caps">UDP</span>Socket</li>
<li>UDPsocket</li>
<li><span class="caps">UNIX</span>Server</li>
<li><span class="caps">UNIX</span>Socket</li>
<li><span class="caps">UNI</span>Xserver</li>
<li><span class="caps">UNI</span>Xsocket</li>
<li>UnboundMethod</li>
<li>Url</li>
<li><span class="caps">VERSION</span></li>
<li>Verbose</li>
<li><a href="http://wiki.rubyonrails.org/rails/pages/YAML" class="existingWikiWord"><span class="caps">YAML</span></a></li>
<li>ZeroDivisionError</li>
</ul>
<p>Más información en <a href="http://wiki.rubyonrails.org/rails/pages/ReservedWords" target="_blank">http://wiki.rubyonrails.org/rails/pages/ReservedWords</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2008/01/03/palabras-reservadas-en-ruby-on-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Directorios de plugins para Rails</title>
		<link>http://www.abecedata.com/2007/12/29/directorios-de-plugins-para-rails/</link>
		<comments>http://www.abecedata.com/2007/12/29/directorios-de-plugins-para-rails/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 17:13:16 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2008/01/11/directorios-de-plugins-para-rails/</guid>
		<description><![CDATA[Aquí os dejo los enlaces a los lugares que consulto normalmente para descargar los plugins que utilizo:
http://railsify.com/
http://svn.techno-weenie.net/projects/plugins/
http://agilewebdevelopment.com/plugins/rails_rcov 
]]></description>
			<content:encoded><![CDATA[<p>Aquí os dejo los enlaces a los lugares que consulto normalmente para descargar los plugins que utilizo:</p>
<p><a href="http://railsify.com/" target="_blank">http://railsify.com/</a></p>
<p><a href="http://svn.techno-weenie.net/projects/plugins/" target="_blank">http://svn.techno-weenie.net/projects/plugins/</a></p>
<p><a href="http://agilewebdevelopment.com/plugins/rails_rcov" target="_blank">http://agilewebdevelopment.com/plugins/rails_rcov </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2007/12/29/directorios-de-plugins-para-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Publicada la versión 2 de Rails</title>
		<link>http://www.abecedata.com/2007/12/08/publicada-la-version-2-de-rails/</link>
		<comments>http://www.abecedata.com/2007/12/08/publicada-la-version-2-de-rails/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 15:05:08 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2007/12/08/publicada-la-version-2-de-rails/</guid>
		<description><![CDATA[Hace poco Obie Fernández nos ponía al día en la Conferencia Rails de las novedades que incorporaría Rails 2 y la pregunta que nos hacíamos todos era: &#8220;¿Para cuando?&#8221;. Pues parece que nos han escuchado porque ayer se anunció la aparición de Rails 2.
Incorpora muchas mejoras que por lo que he visto nos van a [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco <a href="http://obiefernandez.com/" target="_blank">Obie Fernández</a> nos ponía al día en la Conferencia Rails de las novedades que incorporaría Rails 2 y la pregunta que nos hacíamos todos era: &#8220;¿Para cuando?&#8221;. Pues parece que nos han escuchado porque <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done" target="_blank">ayer se anunció</a> la aparición de Rails 2.</p>
<p>Incorpora muchas mejoras que por lo que he visto nos van a hacer la vida aún más fácil. Si queréis más detalles en el blog de RoR está el <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done" target="_blank">anuncio</a> con un resumen. Para saber exactamente cuáles son las novedades os recomiendo el <a href="http://peepcode.com/products/rails2-pdf" target="_blank">PDF de Peepcode sobre Rails 2 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2007/12/08/publicada-la-version-2-de-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Datos sobre el comercio electrónico en España en el 2006</title>
		<link>http://www.abecedata.com/2007/12/01/datos-sobre-el-comercio-electronico-en-espana-en-el-2006/</link>
		<comments>http://www.abecedata.com/2007/12/01/datos-sobre-el-comercio-electronico-en-espana-en-el-2006/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 19:28:32 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Comercio Electrónico]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/2007/11/12/datos-sobre-el-comercio-electronico-en-espana-en-el-2006/</guid>
		<description><![CDATA[El Observatorio de las Telecomunicaciones y la Sociedad de la Información de Red.es, ha publicado un estudio sobre el comercio electrónico B2C en España durante el 2006. Aquí va un resumen.
La cifra de negocio B2C en 2006 ha sido de 2.778 millones de euros, un 29,6% (635 millones) más que el año anterior. Cabe destacar [...]]]></description>
			<content:encoded><![CDATA[<p>El <a href="http://observatorio.red.es/index.html" target="blank">Observatorio de las Telecomunicaciones y la Sociedad de la Información</a> de <a href="http://red.es" target="blank">Red.es</a>, ha publicado un <a href="http://observatorio.red.es/estudios/documentos/b2c.pdf" target="blank">estudio</a> sobre el comercio electrónico B2C en España durante el 2006. Aquí va un resumen.</p>
<p>La cifra de negocio B2C en 2006 ha sido de 2.778 millones de euros, un 29,6% (635 millones) más que el año anterior. Cabe destacar la progresión desde el año 2000 al 2006, donde la cifra de negocio se ha multiplicado por más de 13, pasando de los 204 millones en el 2000 a los citados 2.778 millones el año pasado.</p>
<p>Más de 5 millones de personas compraron por Internet en el 2006, esto representa un 13,6% del total de la población mayor de 15 años. En numeros relativos a internautas, el 27,3% realizo alguna compra el año pasado.</p>
<p>Entre los datos del perfil del comprados cabe destacar que el 59% son hombres, el 67% tiene entre 25 y 49 años y el 50% reside en ciudades de más de 100.000 habitantes.</p>
<p>En cuanto al tipo de compra. El numero medio de compras por usuario es de 4,7 compras al año, con un gasto medio de 523,6€ (un 8% más que el año anterior). Entre los tipos de productos comprados destacan: transporte (36,5%), entradas para espectáculos (16,9%), libros (13,9%), reservas para alojamiento (14,4%) y ropa y complementos (10,1%).</p>
<p>En lo que se refiere a los pagos, se sigue imponiendo el uso de tarjeta de débito o crédito (60,9%) frente al contrareembolso (25,7%) y la transferencia bancaria (8,4%). Otros medios (principalmente Paypal) se usaron en el 5% de las compras.</p>
<p>El 64,4% de los compradores declararon que las compras por Internet cubrieron siempre sus expectativas, y el 34,4% declararon que casi siempre. Con lo cual el índice de compradores satisfechos es del 98,7%.</p>
<p>Un dato interesante, que ha cambiado respecto al 2005, son las razones que dan los no compradores para no realizar sus compras en Internet. El 36% declara que prefiere comprar en un tienda física, el 24,6% tiene miedo a dar sus datos personales, el 23% desconfía de las formas de pago y el 15,9% cree que no lo necesita o que no es interesante.</p>
<p>El 72,8% de los compradores considera que en España hay una oferta suficiente para la adquisición de productos o servicios por Internet.</p>
<p>De estas cifras se desprende que el comercio electrónico en España sigue evolucionando, creo que no lo rápido que debería hacerlo para estar al nivel de otros paises de Europa (no digo ya de Estados Unidos), y es bueno que cada vez haya más gente que considere las compras por Internet como algo totalmente normal y seguro. En esto han tenido mucho que ver la venta de billetes de avión, reservas de hotel y entradas de espectáculos, que han introducido y normalizado el uso de Internet para adquirir los productos que están buscando los usuarios, y han abierto la puerta a otros productos o servicios.</p>
<p>Si queréis más detalles os podéis descargar el <a href="http://observatorio.red.es/estudios/documentos/b2c.pdf" target="blank">estudio completo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2007/12/01/datos-sobre-el-comercio-electronico-en-espana-en-el-2006/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Introducción a la Accesibilidad</title>
		<link>http://www.abecedata.com/2007/11/29/introduccion-a-la-accesibilidad/</link>
		<comments>http://www.abecedata.com/2007/11/29/introduccion-a-la-accesibilidad/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 13:58:40 +0000</pubDate>
		<dc:creator>Emili</dc:creator>
		
		<category><![CDATA[Accesibilidad]]></category>

		<guid isPermaLink="false">http://www.abecedata.com/?p=3</guid>
		<description><![CDATA[La definición de accesibilidad según la Wikipedia es: &#8220;La accesibilidad es el grado con el que algo puede ser usado, visitado o accedido por todas las personas, independientemente de sus capacidades técnicas o físicas.&#8221; La definición es mas larga, pero creo que con esto es suficiente para intentar aclarar qué es la accesibilidad.
No estoy de [...]]]></description>
			<content:encoded><![CDATA[<p>La definición de accesibilidad según la Wikipedia es: &#8220;La accesibilidad es el grado con el que algo puede ser usado, visitado o accedido por todas las personas, independientemente de sus capacidades técnicas o físicas.&#8221; La definición es mas larga, pero creo que con esto es suficiente para intentar aclarar qué es la accesibilidad.</p>
<p>No estoy de acuerdo del todo con esta definición, para mí debería ser &#8220;[&#8230;] independientemente de sus medios técnicos y de sus capacidades físicas.&#8221; La expresión &#8220;[..] independientemente de sus capacidades técnicas [&#8230;]&#8221; para mí está más relacionada con la usabilidad, el problema es que a veces, ambas disciplinas se solapan.</p>
<p><strike>La tendencia es considerar un sitio accesible si cumple las normas de la WAI y pasa los numerosos validadores que existen. Nada más lejos de la realidad</strike>. Es común considerar que el resultado positivo de los validadores automáticos de la accesibilidad es equivalente a cumplir con la norma WAI y por extensión, que el sitio es 100% accesible, pero no siempre es así (gracias Jorge por la matización). Veamos un ejemplo: supongamos que yo soy un discapacitado visual con una reducción de visión del 50% y utilizo Linux y Ópera. Accedo a una web que es accesible según los validadores automáticos, perfecto, pero resulta que está optimizada para Internet Explorer 6 o superior  y en Ópera (más aún en Linux) se ve todo descuadrado, se solapan textos, imágenes&#8230; Teniendo en cuenta mi discapacidad, aún contando con ayuda, voy a ser incapaz de navegar por este sitio.  ¿De que sirve que la web pase el test de la WAI si no se ve bien en mi navegador?, ¿consideráis que esta web es accesible?</p>
<p>El primer paso para conseguir una web accesible es asegurarnos de que cualquier usuario, independientemente de sus medios técnicos, puede visualizar e interactuar correctamente con nuestro sitio web. Debe ser indiferente si utiliza IE 7, o IE 6, o Firefox, o Safari, o Linux, o Windows, o Mac OSX, u otro sistema operativo, o si tiene Javascript deshabilitado, o si utiliza codificación iso, o si tiene el plugin de flash instalado&#8230;Una vez conseguido este propósito y la web sea accesible por cualquiera, es cuando debemos centrarnos en hacerla accesible, además, a los usuarios con discapacidades físicas. Sólo de esta manera tendremos una web accesible para todo el mundo.</p>
<p>Hay casos en los que parece imposible conseguir esto, pero siempre hay alternativas. Otra cosa es que no queramos o no podamos adoptarlas, en este caso se tiene que encontrar un punto de equilibrio. Si nos piden que realicemos una web en Flash, está claro que no va a ser accesible por todo el mundo. Podemos dejarlo así o hacer una versión en HTML del sitio y entonces sí lo será.</p>
<p>Hace pocos días estaba consultando una web de reservas de Hotel para ir a Madrid. Realicé una búsqueda y me devolvió este mensaje: &#8220;Opción no disponible para Safari&#8221;. Está claro que esta web no es accesible, pero al menos te indican que no soportan tu navegador, cosa que la mayoría no hace. Hay que informar siempre al usuario. Cómo deben ser los mensajes de error, es algo que corresponde más a la usabilidad. Con este ejemplo podéis ver, como decía más arriba, que las dos disciplinas a veces se solapan.</p>
<p>Hay que promover la accesibilidad y tenerla siempre en cuenta en nuestros proyectos, pero no lo olvidemos, primero hacer la web accesible a todo el mundo independientemente de sus medios técnicos, y sólo luego, hacer la web accesible a todo el mundo independientemente de sus capacidades físicas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abecedata.com/2007/11/29/introduccion-a-la-accesibilidad/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
