Saltar al contenido Navegación Ir a buscar

Actualizaciones ocasionales en inglés, mayormente sobre programación, ocasionalmente de fútbol.

Agile Web Development With Rails - 2nd Edition

Hará cosa de un año y medio comentaba en esta web que había comprado el primer libro en beta de mi vida.

El libro salió de Beta, acabó por ganar algunos premios y, como Rails está vivo y su desarrollo continúa, comenzó la Beta de la segunda edición del libro.

La segunda edición de Agile Web Development With Rails ya no está en beta. Durante esta semana, he recibido mi copia en PDF actualizada del libro y, en un periodo no muy largo de tiempo, espero recibir la edición en papel – si, también en papel: por propia experiencia, los libros son lo único que resisten a mis arrebatos de reciclado.

Agile Web Development with rails, 2nd Ed.

El libro cubre la última versión de Rails en este momento – 1.2RC1 – por lo que ya es una lectura interesante para cualquiera que pretenda aprender a emplear el Framework de un modo didáctico.

Durante el transcurso de la beta de la nueva versión del libro, hemos podido disfrutar de capítulos que iban evolucionando conforme lo hacía el propio Rails, permanecer informados de las últimas novedades reseñables incluidas en el código fuente, comparar las diferencias en el modo de hacer ciertas cosas en contra el procedimiento empleado hace no más de un año …

Y, ¿sabeis?, uno está bastante ocupado como para poder permitirse estar atento al changelog del repositorio de rails cada día y un trabajo como el de Dave Thomas en la segunda versión del libro vale, en mi opinión, el dinero que he gastado en ella.

Absolutamente imprescindible para quien quiera aprender Rails y, para quienes ya saben, apuesto a que harán como yo en el caso en que alcancemos una tercera edición del libro ;-).

04/12/06 12:00 p.m. por Pedro Palazón Candel

Programar en PHP

Hace unos días, uno de los colaboradores más activos de Textpatern de cuantos hablan la lengua de Cervantes preguntaba, al hilo de la recomendación del libro de Ruby, por algún recurso on-line sobre PHP.

La respuesta es sencilla: el Manual de PHP – en inglés, que la versión en castellano suele tener el desfase temporal lógico de tener que esperar a tener la documentación en inglés para poder traducirla.

La cuestión es que he estado pensando en qué otros manuales, preferiblemente on-line, podría recomendar, y no se me ocurre ninguno. De hecho, creo que no he leído más que el manual, y es más que suficiente, siempre y cuando ya se sepa programar en algún otro lenguaje.

Libros un poco más avanzados

¿Libros?, bueno, mis recomendaciones irían más a cierto tipo de libros destinados a gente que no está empezando precisamente, y que tratan todos esos temas sobre PHP que la gente se suele dejar en el tintero y que, sin embargo, si que se incluyen en manuales de otros lenguajes de programación.

En concreto, merecen mención especial para mí los libros PHP Obects, patterns and practice de Matt Zandstra – del que hablaré largo y tendido antes o después – y la guía de PHP Unit, PHP Unit Pocket Guide, de Sebastian Bergmann, que se encuentra disponible para ser consultada on-line – aunque insisto una vez más en que si os gusta el libro, deberíais contribuir a que Sebastian lo mantenga actualizado y continúe desarrollando el que es, siempre para mí, el mejor paquete de PEAR, que debería estar incluido por defecto en PHP.

Para quienes empiezan: Programming PHP, 2nd Edition

Hay bastantes libros de PHP, ¿por qué precisamente éste?. En primer lugar, porque cumple su función de enseñar a programar en PHP, que es el objetivo que perseguimos.

En segundo, y más importante para mí, porque su principal autor es Rasmus Leedorf – exacto, el creador de PHP – y el libro es capaz de mostrarnos el modo de pensar subyacente al lenguage de programación que mejor ha sido capaz de adaptarse a la web.

Recalcar que, aunque algunas veces no merece la pena comprar la última edición de un libro, en este caso es prácticamente obligado, ya que se trata de la edición que cubre PHP5 y, puestos a aprender, estoy seguro de que nadie quiere empezar con el mantra de “Compatibilidad hacia atrás” martilleando en la cabeza.

Hay que tratar de aprender de verdad y ser estrictos con el código que escribimos.

Cosa que se da por supuesta …, ¡nahhh!.

Ayer me pasé 3 horas tratando de usar un plugin de Textpattern; horas en las que me dediqué, por completo, a corregir código que, habiendo recibido un poco más de cariño, funcionaría perfectamente.

La cuestión es que todas, absolutamente todas las mejoras que necesitaba, estaban en el manual de PHP, y se trataba, exclusivamente de leer con atención. A saber:

Las variables, en PHP, se pueden emplear sin asignar, pero si no se asignan, hay contextos en los que dan problemas, lanzando errores del tipo E_USER_NOTICE.

A mi modo de ver, y considerando el trabajo que cuesta definir una variable, es un lujo innecesario no hacerlo. Más si pensamos que en futuras versiones – o si nos ponemos E_STRICT – lo que ahora es un aviso, puede pasar a ser un error y, lo que es simple dejadez de un momento, pasa a ser un problema del que conocemos nombre y apellidos del responsable.

Además, como las variables se pueden emplear antes de asignar, para comprobar su valor, es conveniente tomar ciertas precauciones. Por ejemplo, suponiendo que tengamos un array $myarr:

Esto dará problemas:

if($myarr['foo']){...}

que podríamos evitar, simplemente, comprobando si la variable está fijada:

if(isset($myarr['foo']) && $myarr['foo']){...}

Del mismo modo, se pueden evitar otro gran número de mensajes E_USER_NOTICE si, en lugar de fijar una variable sólo si se cumple una condición, fijarla a la vez a su valor nulo, vacío o falso en caso contrario. Es decir, en lugar de emplear:

if($condition){$myvar = 'something';}

emplear el método reducido del condicional:

$myvar = ($condition)?'something':'';

De hecho, creo que he escrito exactamente los mismos caracteres ;-).

En resumen, con lo poquito que cuesta, merece la pena prestar atención a los detalles.

29/10/06 11:00 p.m. por Pedro Palazón Candel · Comentarios [3]

Aprender a programar con Ruby

Learn to Program, by Chris Pine

Hace unos años, motivado por mi teoría de que es bueno aprender un nuevo lenguaje de programación cada cierto tiempo, decidí que sería una buena idea echar un vistazo a Ruby, y dediqué parte de mis trayectos diarios entre Elche y Murcia – ida:lectura, vuelta:siesta – a leer un tutorial de Ruby escrito por Chris Pine.

Con los años, aprender Ruby resultó ser una buena idea y, tal vez por el tirón que ha supuesto Rails, el tutorial on-line de Chris acabó convertido en un libro de los Prags – de cuyos libros en beta soy fan empedernido.

La cuestión es que siempre me he considerado autodidacta – tal vez por el número de clases a las que dejaba de ir a la facultad no me quedó otro remedio – y siempre me ha preocupado la falta de conocimientos pedagógicos de quienes escriben libros para programadores y, muy especialmente, de quienes escriben libros para aprender a programar. ¡A veces esos libros parecen el manual de instrucciones de un acelerador de partículas!.

Afortunadamente no es el caso del libro de Chris. Llevo tiempo dándole vueltas a la posibilidad de escribir algo en serio – sobre otro lenguaje de programación – y recordaba que el libro era didácticamente reseñable; así que compré la edición en papel – no es lo mismo, en PDF no es lo mismo – y la he estado disfrutando estos días como libro de antes de irse a dormir.

Y me ha seguido pareciendo – ahora que no me preocupaba Ruby, sino la didáctica – un libro absolutamente recomendable para quienes quieran aprender a programar – un poquito, que se empieza por el principio.

De momento sólo está disponible en inglés, pero todo se andará.

P.D.: Suelo leer bastantes libros relacionados con la programación, asi que he pensado que os voy a dar la lata con mis opiniones al respecto con más frecuencia. Por supuesto, se admiten sugerencias y recomendaciones.

10/10/06 04:14 p.m. por Pedro Palazón Candel · ¿Sabes cuál es el ceroavo elemento? [3]