El ecosistema de las aplicaciones Ruby on Rails es bastante extenso, y puede generar problemas a la hora de mover la aplicación al servidor de producción o al actualizar el servidor. Rails ofrece una posibilidad: congelar la versión de una aplicación.
La base es muy simple: en una aplicación Rails, se usará la versión definida en RAILS_GEM_VERSION en config/environment.rb... salvo en el caso de que en el directorio /vendor de la aplicación exista un directorio /vendor/rails con el código del framework, en cuyo caso se usará este. Así, da igual la versión de Rails que exista en el servidor, la aplicación usará la versión incluida en su directorio /vendor.
¿Cómo congelamos la versión?
Una impresionante presentación de Yoshinori Matsunobu, uno de los mayores expertos en BBDD (Principal Infrastructure Architect en DeNA, MySQL Lead Consultant en MySQL/Oracle/Sun, Oracle ACE Director...) explicando todo lo que se necesita saber para la administración de bases de datos MySQL bajo Linux: SSD/HDD y cómo elegir el sistema de ficheros más adecuado, elegir la CPU más adecuada, el tamaño de swap, la configuración de red... aquí está el sumario de la presentación.
Estas son las diapositivas de un tutorial de 3 horas que impartió en la MySQL Conference and Expo 2011.
También se pueden descargar las diapositivas en formato PDF.
Simply Cover Simply Cover es sencilla una aplicación para ofrecer una portada para la web de un pequeño negocio durante el tiempo que tarda en publicar su web, o para que pequeños negocios que sólo requieren el dominio para email pero no van a tener web puedan mostrar algo a los usuarios.
En ambos casos el usuario sientre frustración al visitar una web que pone "En construcción" o peor aún, ver una web en blanco o un mensaje del proveedor, y esto genera un rechazo y mala imagen para la pequeña empresa o negocio. Con Simply Cover pequeños negocios, tiendas locales... pueden presentar una pequeña web con descripción, fotos, formulario de contacto, etc.
Además ofrece un sencillo gestor de contenidos para administrar la portada web. Sólo requiere 2MB de espacio de alojamiento y soporte para PHP, ni siquiera requiere base de datos, de forma que puede instalarse incluso en los planes de alojamiento más baratos (o en planes de sólo email).
Lo he liberado con una licencia GNU AFFERO GENERAL PUBLIC LICENSE. Más información en la sección sobre Simply Cover o directamente en el repositorio Simply Cover en GitHub.
Maxlen es un plugin para jQuery para tener un control adecuado y flexible sobre el número máximo de caracteres en un textarea.
Lo he liberado con una licencia MIT X11. Más información en la sección sobre Maxlen o directamente en el repositorio Maxlen en Github.
En la versión 5.3 de PHP se añadió soporte para una de las características típicas de otros lenguajes como C++ o Java: los namespaces.
Aparte de su uso habitual, los namespaces en PHP ofrecen una funcionalidad que puede ser usada a modo de pequeño truco para reducir los nombres de clase demasiado largos.
Antes de los namespaces las librerías, frameworks... debían asegurarse de no pisar los nombres de clases o funciones de otras librerías que el usuario estuviese usando, por lo que solían añadir prefijos. Por ejemplo, Worpress añade un 'WP_' a sus clases y funciones. Esto en ocasiones genera nombres excesivamente largos rozando el ridículo, siendo un ejemplo clásico el de la clase CaseInsensitive del motor Lucene en el Zend Framework: Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive.
El pequeño truco consiste en usar los namespaces como accesos directos para acortar el nombre de las clases que nos interesen:
use Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive as CaseInsensitive; $icase = new CaseInsensitive();
Un pequeño truco muy útil para hacer la vida más sencilla, que resulta obvio en cuanto te lo cuentan. Se puede ampliar información sobre los namespaces con un artículo de introducción a ello en: How to use PHP namespaces de Craig Buckler.
En muchas situaciones necesitamos una base de datos de países, con su código y nombre. Usando MySQL es muy sencillo conseguirlo, ya que una de las bases de datos de ejemplo de MySQL es, precisamente, una base de datos de países, que incluye tres tablas:
Para usarla basta con descargar el script SQL de http://dev.mysql.com/doc/index-other.html. Hay dos scripts preparados, uno para MyIsam (http://downloads.mysql.com/docs/world.sql.gz) y otro para InnoDB (http://downloads.mysql.com/docs/world_innodb.sql.gz) que son idénticos salvo que las tablas se crean con el motor especificado y en el caso de InnoDB con integridad referencial (y las claves ajenas necesarias).
Tras descargar el archivo y descomprimirlo, basta con conectarnos a MySQL e importar las tablas:
$ mysql -u root -p Enter password: mysql> source /path/al/archivo/world_innodb.sql
Estos datos tienen copyright de la Oficina de Estadística de Finlandia: http://tilastokeskus.fi/tup/kvportaali/index_en.html.
No se adaptará a todas las posibles situaciones donde necesitemos países e idiomas, pero para muchos casos, como mostrar un desplegable de países, nos vale de sobra.
Esta entrada es una pequeña continuación de Usando Git a mi manera. Entonces ya vimos como montar el entorno de desarrollo usando Git, y como comitear cambios y enviarlos al repositorio común del equipo. Ahora, anotaré algunos tips para recuperar versiones anteriores de archivos usando Git.
Cada vez está más cerca el día que podamos usar CSS3 y HTML5 en nuestros diseños, pero de momento nos tenemos que conformar con algunas pocas cosas para asegurar la compatibilidad entre navegadores actuales. Una de ellas es el uso de fuentes, que hasta ahora estaba restringido a las fuentes que el visitante tenía instaladas, por lo que al final, en la práctica, sólo se podía recurrir a las típicas comunes a todos los sistemas: Arial, Times... o a fuentes genéricas: serif y sans-serif.
Con HTML5 y CSS3 podemos emplear fuentes propias en nuestros diseños usando @font-face, lo que abre todo un nuevo abanico de posibilidades a los diseñadores. Sin embargo, estas tecnologías aún no están suficientemente implementadas como para usarlas a diario en diseños en producción, por lo que hay que usarlas con cuidado. Una forma muy sencilla de empezar a usar fuentes propias es emplear la Google Font API, que nos permite incrustar de forma muy sencilla algunas fuentes en nuestros diseños sin necesidad de tocar el código existente. Por ahora sólo hay disponibles 58 fuentes, aunque es de esperar que el número de fuentes vaya creciendo con el tiempo (cuando conocí Google Font API hace unos tres meses sólo había 18).
En este tutorial veremos como incrustar fuentes de forma compatible con todos los navegadores actuales y darles algún efecto agradable.
Esta web
http://alvaroremesal.net
, su contenido, texto e imágenes está licenciado bajo una
Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España.