Martes, 6 Marzo, 2007

JaimeIniesta.com

Archivado en: Railes.net, Amigos — Jaime @ 10:37 am

¿Es un pájaro? ¿Es un avión? ¿Es un freelance? ¿Es una empresa? ¿Es un blog? ¿O son dos? ¿Es el Capitán Planeta, o un electroduende?
Damos la bienvenida al nuevo blog de Jaime Iniesta, o sea, mi nuevo blog principal donde iré volcando mis aventuras e impresiones. Las razones: me estaba dando una esquizofrenia galopante dividirme entre mis aventuras como Capitán Planeta y mis desventuras como desarrollador web, o al revés, y para qué andar con jaleos si al final soy yo el que está aquí detrás de todo este tinglado.

Podéis seguirme leyendo (o no), en www.jaimeiniesta.com

Nos leemos!

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.