Viernes, 19 Enero, 2007

¿Es Page una palabra reservada en Rails?

Archivado en: RoR, Amigos, PageRankAlert — Jaime @ 1:47 pm

El otro día, reescribiendo parte de mi juguete on Rails Pagerankalert.com, una aplicación muy sencilla con la que llevo meses sin avanzar por falta de tiempo :) , me encontré con un error muy raro, de esos que el mensaje de error no te aclara nada sino que te quedas con cara de perdido…

Repasando el código con Juanjo Bazán, de KFLink, no encontrábamos dónde estaba el problema y llegamos a la conclusión de que quizá Rails se estuviera haciendo un lío porque el modelo que estaba manejando se llamaba Page, y por ejemplo cosas como la paginación podían resultar confusas… eso de paginar páginas roza lo metafísico… :)

Total, que probé a renombrar el modelo Page como Pagina, algo que me daba pereza ya que estamos hablando del modelo principal de esta aplicación dedicada a almacenar la evolución en el pagerank de las páginas… pero con una sencilla migración y cambios de código en las pocas líneas que componen la aplicación, media hora después ya lo tenía…

Efectivamente, tras este cambio, todo volvió a funcionar, como en el anuncio de 3 en 1. Sin duda, fué una mala elección usar Page como nombre de modelo. Y yo que en su día me sentí muy listo por usar address en lugar de URL para el campo…

Es este un tema a tener en cuenta a la hora de programar en Rails. Si bien se suele aconsejar usar nombres en inglés para aprovecharnos del tema de la pluralización automática, a veces podemos caer en trampas como ésta en la que coincida el nombre del modelo con alguna palabra reservada. Conviene pues, conocerlas, aunque en lo que he buscado hasta el momento no he visto que oficialmente, “Page” sea una palabra reservada a evitar:

Ruby on Rails cheatsheet

Ruby on Rails wiki: Reserved Words

Gotcha in Ruby on Rails

En esta última web, se aconseja ejecutar desde la aplicación Rails la siguiente línea para ver las palabras reservadas… tampoco allí aparece “Page”…

$ ./script/runner ‘print Object.constants.sort.join(”, “)’
ARGF, ARGV, ActionController, ActionMailer, ActionView, ActionWebService, ActiveRecord, ActiveSupport, ArgumentError, Array, BREAKPOINT_SERVER_PORT, Base64, BasicSocket, Benchmark, Bignum, Binding, Builder, CGI, CGIMethods, CROSS_COMPILING, Class, ClassInheritableAttributes, Comparable, ConditionVariable, Config, Continuation, DRb, DRbIdConv, DRbObject, DRbUndumped, Data, Date, DateTime, Delegater, Delegator, Dependencies, Deprecated, Digest, Dir, ENV, EOFError, ERB, Enumerable, Errno, Etc, Exception, FALSE, FalseClass, Fcntl, File, FileTest, FileUtils, FireRuby, Fixnum, Float, FloatDomainError, Forwardable, GC, Gem, HTML, Hash, HashWithIndifferentAccess, IO, IOError, IPSocket, IPsocket, Iconv, IndexError, Inflector, Integer, Interrupt, Kconv, Kernel, LoadError, LocalJumpError, Logger, MailHelper, Marshal, MatchData, MatchingData, Math, Method, Mime, MissingSourceFile, Module, Monitor, MonitorMixin, Mutex, Mutex_m, NIL, NKF, NQXML, NameError, Net, NilClass, NoMemoryError, NoMethodError, NotImplementedError, Numeric, Object, ObjectSpace, Observable, OpenSSL, OptionParser, OrderedHash, OrderedOptions, PLATFORM, PStore, ParseDate, ParseError, Pathname, Precision, Proc, Process, Queue, RAILS_CONNECTION_ADAPTERS, RAILS_DEFAULT_LOGGER, RAILS_ENV, RAILS_GEM_VERSION, RAILS_ROOT, RAILTIES_PATH, RELEASE_DATE, REXML, RUBY_PLATFORM, RUBY_RELEASE_DATE, RUBY_VERSION, Racc, Rails, Range, RangeError, Rational, RbConfig, Regexp, RegexpError, Reloadable, RuntimeError, SOAP, STDERR, STDIN, STDOUT, ScanError, ScriptError, SecurityError, Set, Signal, SignalException, SimpleDelegater, SimpleDelegator, SingleForwardable, Singleton, SizedQueue, Socket, SocketError, SortedSet, StandardError, String, StringIO, StringInput, StringOutput, StringScanner, Struct, Symbol, SyntaxError, SystemCallError, SystemExit, SystemStackError, TCPServer, TCPSocket, TCPserver, TCPsocket, TMail, TOPLEVEL_BINDING, TRUE, Text, Thread, ThreadError, ThreadGroup, Time, TimeZone, Timeout, TimeoutError, Transaction, TrueClass, TypeError, UDPSocket, UDPsocket, UNIXServer, UNIXSocket, UNIXserver, UNIXsocket, URI, UnboundMethod, VERSION, XMLRPC, XSD, XmlNode, XmlNodeList, XmlSimple, YAML, ZeroDivisionError, Zlib

Flowers in Space, allá voy!

Archivado en: Comunidades, conferenciarails2006, Amigos — Jaime @ 1:25 pm

Flowers in SpaceDurante la Conferencia Rails 2006 conocí a mucha gente interesante en el mundillo de Ruby on Rails, pero fácilmente los que más me llamaron la atención fueron Dani y Edu, de Flowers in Space.

Si bien la gente que programamos en Rails solemos compartir una visión alegre de nuestro trabajo, que se nota que nos gusta lo que hacemos porque no es un lenguaje más sino una forma de tomarse los proyectos y con ellos la vida en general. Dani y Edu transmiten verdadero y sincero entusiasmo por Rails.

Repartiendo chapas en lugar de tarjetas de visita y hablando de hacer proyectos propios en lugar de someterse a la tiranía de los clientes, y de programar cualquier idea que caiga en sus manos gracias a la agilidad que permite Rails para probar un proyecto y si funciona, bien, y si no, pues a otra cosa… (espero no haber terminado con estos bellos propósitos al pasarles clientes) :)
Pues nada, la semana que viene va a ser para mí la semana Flowers, ya que Dani me ha invitado a pasar unos días en su casa, conocer Sevilla y alrededores, y charlar acerca de nuestras experiencias con Rails y sobre la manera de trabajar en red que practicamos en Railes.net.

A la vuelta, fotos y reportaje.

Los trabajadores podrán consultar en internet los riesgos para la salud de 30.000 sustancias químicas

Archivado en: Railes.net, Noticias, Proyectos — Jaime @ 9:48 am

Los trabajadores podrán consultar en internet los riesgos para la salud de 30.000 sustancias químicas

Madrid, 19 de enero de 2006

Comisiones Obreras -a través del Instituto Sindical de Trabajo, Ambiente y Salud (ISTAS)- ha creado una base de datos (Risctox), accesible en internet, que contiene información sobre los riesgos para la salud y el medio ambiente de más de 30.000 sustancias químicas. Esta herramienta, la única de sus características en español, incluye datos de identificación y clasificación de sustancias, los efectos sobre la salud (cáncer, toxicidad reproductiva, neurotoxicidad, disrupción endocrina y sensibilización), sobre el medio ambiente (toxicidad acuática, persistencia, bioacumulación y daño a la atmósfera), límites de exposición profesional y enfermedades profesionales y normativa ambiental aplicable.

La creación de la base de datos Risctox forma parte de una campaña para la prevención del riesgo químico a través de nuevos canales de comunicación, como internet. La campaña cuenta además con otras dos herramientas de gran utilidad para evitar el riesgo químico: Evalúa lo que usas y la base de datos de Alternativas.

Con Evalúa lo que usas, los trabajadores podrán realizar una evaluación preliminar de los riesgos sobre la salud y el medio ambiente de un producto, comparar los riesgos y facilitar el proceso de sustitución de los más peligrosos.

La base de datos Alternativas complementa a las herramientas anteriores ya que contiene 300 documentos sobre opciones para reducir o eliminar el riesgo químico, clasificados por usos, procesos y sectores. Además, incluye cincuenta y tres casos prácticos de sustitución, un listado de sustancias y productos alternativos a agentes químicos de elevada toxicidad, así como un apartado que proporciona los vínculos hacia otras páginas de interés para sustituir los agentes peligrosos.

Cada año mueren en España 4.000 trabajadores por uso o exposición a sustancias químicas. Con esta campaña Comisiones Obreras pretende reducir el riesgo tóxico en los centros de trabajo. La campaña forma parte del proyecto ECOinformas, cofinanciado por la Fundación Biodiversidad y el Fondo Social Europeo.

La aplicación web ECOinformas ha sido realizada en colaboración por Dabne y Railes.net.

Más información:

Prensa Departamento Confederal de Medio Ambiente de CCOO

Javier Morales

El acceso a las herramientas puede hacerse a través de:

www.ecoinformas.com

www.istas.ccoo.es

Tel.: 91 702 80 64

Domingo, 14 Enero, 2007

Tutorial: Recetario Rails

Archivado en: Tutoriales, RoR, Software libre — Jaime @ 4:53 pm

Uno de los tutoriales más conocidos para comenzar con Ruby on Rails es Rolling with Ruby on Rails, de Curt Hibbs. Juan Lupión se encargó de hacer una estupenda traducción al castellano de este tutorial.

Repasándolo recientemente para tomarlo de base en las clases que imparto a gente que comienza en Rails, me pareció que era necesario reescribir este tutorial ya que la versión actual de Rails (1.1.6 mientras escribo estas líneas) incluye mucha funcionalidad que no estaba presente cuando se escribió el tutorial original. Estoy hablando por ejemplo de las migraciones, que nos hacen más sencilla la creación de las tablas en la base de datos, y del generador de scaffolds.

El tutorial revisado y reescrito está disponible, con licencia Creative Commons, en Railes.net:

http://www.railes.net/pages/docs/ruby-on-rails/recetario-rails.php

Existe también una versión en PDF en la sección de descargas de Railes.net.

Sábado, 13 Enero, 2007

www.ecoinformas.com

Archivado en: Proyectos — Jaime @ 3:16 am

Para poder prevenir los riesgos que ocasionan las sustancias químicas para la salud de los trabajadores y el medio ambiente es necesario conocer qué productos y sustancias están presentes en los lugares de trabajo, cómo gestionarlas, qué daños pueden ocasionar y cómo prevenirlos.

El proyecto ECOinformas pone a disposición de todo el mundo un conjunto de herramientas de acceso libre y gratuito sobre la prevención de riesgo químico. ECOinformas es una iniciativa de la fundación ISTAS, que lleva desde 1996 impulsando actividades de progreso social para la mejora de las condiciones de trabajo, la protección del medio ambiente y la promoción de la salud laboral.

Este ambicioso proyecto, desarrollado por Railes en colaboración con Dabne, tiene en su nucleo una base de datos centralizada con información detallada de las características de más de 30.000 sustancias químicas diferentes, que en los próximos meses será ampliada hasta más de 100.000 sustancias. Para cada sustancia se almacenan más de 100 datos distintos, desde su nombre y los sinónimos más comunes hasta su fórmula química exacta y cada una de las clasificaciones que los diferentes organismos de control de sustancias químicas de diferentes estados han ido estableciendo.

A partir de esta base de datos, accesible a través del apartado de prevención de riesgos químicos de la web de ECOinformas, se construye una serie de herramientas de uso público que permite buscar la información recogida sobre todas estas sustancias, saber qué alternativas existen al uso de estas sustancias tóxicas, leer documentos sobre casos reales de sustitución en la industria, y un largo etcétera.

La herramienta de evaluación es libre y gratuita, y se puede acceder desde:

http://www.ecoinformas.com