jueves, 31 de diciembre de 2009

Eliminar trabajos de impresión en Windows


"¿Quién no ha querido alguna vez eliminar documentos de la cola de impresión, con la opción de "Cancelar todos los documentos", y no ha sido posible? suele ser algo molesto y, normalmente, al final acabamos solucionándolo teniendo que reiniciar el equipo, pero a veces ni con esto es suficiente..."


Así empieza este post de APDJSoft que explica de forma clara como iniciar una pelea con el spooler de impresión de Windows y salir victoriosos.


¡Feliz 2010!

miércoles, 30 de diciembre de 2009

Alumnos para prácticas

Estamos buscando alumnos para prácticas. Normalmente siempre necesitamos a alguien más y tenemos una convocatoria abierta continuamente. Las prácticas nos sirven como herramienta para evaluar a posibles futuros empleados y además los alumnos pueden tomar contacto con la realidad empresarial además de llevarse una perrillas que siempre vienen bien. Si estudias en la ULPG algo que tenga que ver con la programación o el diseño a lo mejor puede interesarte.

Cartel alumnos para prácticas

Gestores de la Innovación

El servicio Canario de Empleo y La Agencia Canaria de Investigación, Innovación y Sociedad de la Información han puesto el marcha El Programa Gestores de la Innovación en la Empresa.

Se trata de una iniciativa dirigida a personal de PYMES y microempresas, incluyendo autónomos con personal contratado laboralmente.

Se pretende aumentar la capacidad para generar y mantener empleo, aumentando la competitividad de la empresa y sus posibilidades de negocio, rentabilidad y supervivencia.

Está cofinanciado en un 85% por el Fondo Social Europeo y desarrollado por el Instituto Tecnológico de Canarias.

El Programa va dirigido a:
  • Empresarios y Directivos
  • Mandos Intermedios y Encargados
  • Responsables Técnicos y Jefes Administrativos
Se dará formación práctica a un máximo de 1200 trabajadores/as, que deberán ser inscritos por las empresas en las que trabajen. El personal participante identificará una innovación concreta de interés específico para la empresa en la que trabaja, debiendo preparar un proyecto de innovación que contenga un plan de implantación, un plan de financiación y un plan de explotación.

Estas actuaciones formativas serán prestadas, de forma gratuita para la empresa participante y para su personal inscrito, por formadores consultores con reconocida solvencia y experiencia, disponibles en la Bolsa de Proveedores que ha habilitado el ITC y que podrá ser consultada por las empresas participantes en el Programa.

Puede obtener más información en las página oficial del programa:

http://www.itccanarias.org/gie/

Nosotros por nuestra parte hemos creado un blog donde pondremos las últimas noticias relevantes al respecto:

martes, 29 de diciembre de 2009

Virtuemart 2.0

Parece que la tan esperada por nosotros versión 2.0 del Virtuemart no termina de llegar.

Virtuemart es un componente de comercio electrónico para el gestor de contenidos Joomla. Hace tiempo que venimos usando la actual versión para los proyectos de tiendas virtuales. Se trata de un software bastante completo y útil. Y además GNU.

El problema viene cuando le pides un poco más. Cuando el cliente quiere hacer algún cambio o personalización te la tienes que ver con un código muy muy ofuscado. Hemos leido en algunos foros que planeaban realizar la nueva versión 2.0 desde cero usando un framework, ya sea el del propio Joomla 1.5, o incluso otro como el Nooku Framework. Pero parece que no llega. Hemos leido en los foros de Virtuemart en http://forum.virtuemart.net/index.php?topic=56528.msg184829
que no tienen muchos recursos humanos y que primero están terminando de corregir bugs.

Es una pena porque la estructura de datos del componente es bastante versátil pero el código no acompaña. Nosotros incluso estabamos pensando en usarlo como Framework para desarrollar otros componentes para Joomla pero en su estado actual es un infierno cualquier intento de meterle mano.

martes, 22 de diciembre de 2009

CNAE

La lista de códigos CNAE puede consultarse en la página web del Instituto Nacional de Estadística en:

Comprobar lotería del Gordo de Navidad

El País tiene una página para comprobar la lotería de Navidad.

Si quieres comprobar si te ha tocado la lotería de navidad y conocer los resultados puedes hacerlo en la dirección:

http://www.elpais.com/sorteo/loteria-navidad/lista-numeros-premiados/#

O buscar en Google cualquiera de estas palabras clave:

loteria nacional, sorteo navidad, loteria navidad, lotería 2009, sorteo navidad, comprobar loteria, numeros loteria, sorteo loteria nacional, loteria del estado.

domingo, 20 de diciembre de 2009

miércoles, 16 de diciembre de 2009

Bonos Tecnológicos Canarias

Inaguramos un nuevo blog para informar acerca de las últimas novedades de las suvenciones de Bonos Tecnológicos en Canarias.

En este blog pondremos las nuevas resoluciones, así como artículos que contribuyan a que las empresas conozcan mejor estas subvenciones. Iremos añadiendo respuestas a preguntas como:

¿Qué son los Bonos Tecnológicos?
¿Cómo se solicitan?
¿Cuanto dinero conceden cómo máximo?
Etc.






No obstante si tiene alguna duda sobre los Bonos Tecnológicos en Canarias y no aparece en el blog puede ponerse en contacto con nosotros en:

Conversor de monedas con Google

Google ofrece un servicio rápido de conversión de moneda, usando directamente el buscador, aunque dicen que no se hacen responsables del cambio.

Ejemplos:

1 EUR to USD convierte de euros a dólares

1 USD to EUR convierte de dólares a euros

martes, 15 de diciembre de 2009

Resolución de 27 de Noviembre de 2009 de Concesión de Bonos

Con fecha 15 de diciembre ha sido publicada en el Boletín Oficial de Canarias la Resolución de 27 de noviembre de 2009 de Concesión de Bonos en la que aparece una nueva
relación de empresas beneficiarias de bonos tecnológicos solicitados antes del
31 de Julio de 2009.

En lo que respecta a proyectos de iQ Ingenieros han sido aprobadas las subvenciones para:

- Carpintería Metálica Víctor (3 bonos)
- Balaños (19 bonos)
- Tembleque Producciones (2 bonos)
- CanariasSocial.com (7 bonos)

Seguimos esperando una nueva resolución para el resto de proyectos presentados.


Bonos Tecnológicos Canarias (nueva convocatoria)

Ha salido la nueva convocatoria para las subvenciones de Bonos Tecnológicos en Canarias.

Bonos Tecnológicos Canarias BOC. Convocatoria 2009 2010

lunes, 14 de diciembre de 2009

Bucle infinito al iniciar sesión en Windows XP

Un amigo me ha dado un toque porque cuando intentaba iniciar una sesión en Windows XP ésta se le cerraba automáticamente, por lo que no podía acceder al sistema operativo.



El problema es que algún tipo de malware cambia en el registro el nombre de la aplicación responsable del inicio de sesión, por lo que ésta nunca se produce.

No podemos acceder al registro de Windows XP porque no tenemos acceso a la sesión, por lo tanto tenemos dos posiblidades para modificarlo, o realizar una instalación paralela en nuestro equipo o utilizar otro equipo con Windows XP instalado.

Sea cual sea nuestra decisión el proceso para reparar el problema es el siguiente:

A. Utilizando otro equipo con Windows XP instalado
  1. Arrancar desde el CD de Windows en el equipo infectado.
  2. Enchufar un pendrive tras arrancar para que se cargue el driver y lo reconozca el símbolo del sistema.
  3. Seleccionar (R) Reparar una instalación existente.
  4. Copiar el fichero C:\Windows\System32\config\software al pendrive.
  5. Abrir el registro de Windows (regedit) en el otro equipo con Windows XP.
  6. Hacer click encima de HKEY_LOCAL_MACHINE.
  7. Pulsar sobre Archivo -> Cargar subárbol.
  8. Seleccionar el fichero software que hemos guardado en el pendrive.
  9. Escribir RamaAuxiliar y pulsar Aceptar.
  10. Acceder a la rama HKEY_LOCAL_MACHINE\RamaAuxiliar\Microsoft\Windows NT\CurrentVersion\Winlogon. En esta carpeta el valor Userinit debe existir y ser de tipo REG_SZ. Su contenido debe ser "C:\WINDOWS\system32\userinit.exe," (atención a la coma). Si no existiera la clave debes crearla. (Esta es la clave que modifica el malware poniendo algún otro valor).
  11. Pulsar sobre RamaAuxiliar y sobre Archivo -> Descargar subárbol, cerrar el Editor del Registro.
  12. Volver a ejecutar los pasos 1, 2 y 3, esta vez para copiar el fichero software reparado a la carpeta C:\Windows\system32\config.
  13. Reiniciar el sistema e iniciar sesión en el sistema que estaba dañado.
B. Instalación paralela
  1. Instalar Windows XP en paralelo a la instalación existente.
  2. Arrancar el equipo desde la instalación paralela y abrir el registro de Windows (regedit).
  3. Hacer click encima de HKEY_LOCAL_MACHINE.
  4. Pulsar sobre Archivo, Cargar subárbol.
  5. Seleccionar el fichero C:\Windows\system32\config\software (o dondequiera que esté ese fichero de la copia de Windows infectada).
  6. Escribir RamaAuxiliar y pulsar Aceptar.
  7. Acceder a la rama HKEY_LOCAL_MACHINE\RamaAuxiliar\Microsoft\Windows NT\CurrentVersion\Winlogon. En esta carpeta el valor Userinit debe existir y ser de tipo REG_SZ. Su contenido debe ser "C:\WINDOWS\system32\userinit.exe," (atención a la coma). Si no existiera la clave debes crearla. (Esta es la clave que modifica el malware poniendo algún otro valor).
  8. Pulsar sobre RamaAuxiliar y sobre Archivo, Descargar subárbol, cerrar el Editor del Registro.
  9. Reiniciar el sistema e iniciar sesión en el sistema que estaba dañado.
Con esto queda reparado el sistema y podrás entrar de nuevo en tu sesión, instala un buen antivirus y pásalo porque algún bicho tienes.

viernes, 11 de diciembre de 2009

¿Qué son los QRcode o Códigos QR?

La Wikipedia define los Código QR como:

"Un código QR (Quick Response Barcode) es un sistema para almacenar información en una matriz de puntos o un código de barras bidimensional creado por la compañía japonesa Denso-Wave en 1994; se caracterizan por los tres cuadrados que se encuentran en las esquinas y que permiten detectar la posición del código al lector. La sigla "QR" se derivó de la frase inglesa "Quick Response" pues el creador aspiraba a que el código permitiera que su contenido se leyera a alta velocidad. Los códigos QR son muy comunes en Japón y de hecho son el código bidimensional más popular en ese país."

En pocos palabras se trata de una forma de almacenar información de forma visual como los códigos de barras para ser tratada automáticamente por un aparato.

Actualmente se están usando para guardar enlaces de Internet mostrados en documentos impresos o en formato digital.

Tambien se están usando, un uso que estamos haciendo nosotros, para guardar enlaces a vcard, es decir, para automatizar la incorporación de los datos de contacto de una empresa o persona a una agenda electrónica. ¿Qué quiere decir esto? Que si le haces una foto con tu móvil a la imagen de este post y tienes una aplicación adecuada instalada en él puedes añadir los datos de contacto de nuestra empresa automáticamente en tu agenda sin tener que meterlos a mano.


miércoles, 9 de diciembre de 2009

Windows 7 y Ubuntu 9.10 en arranque dual

Acabo de comprar mi primer portátil, sí, ya lo sé, tengo 32 años y soy informático y hasta ahora no he tenido portátil propio, cosas de la vida, uno va reciclando lo que otros van dejando.
Mi idea es empezar a utilizar Ubuntu, siempre he utilizado Windows y creo que es hora de iniciarme en Linux, así que preguntando me ha dicho un amigo que lo mejor es que empiece con esta distribución.
Como en toda mudanza uno está un tiempo con cosas en dos sitios así que se me hace necesario que convivan Ubuntu 9.10 y Windows 7 un tiempo en mi nuevo portátil, y como no tenía ni idea de cómo hacerlo pues hice lo que cualquiera, buscar información en Internet. Buscando, buscando, encontré este tutorial visual de imvo2, que explica de manera muy inteligible como hacerlo, así que aquí se los dejo.



martes, 8 de diciembre de 2009

red social twenty

Hoy me ha llamado la atención que aún 880 personas (según Google) al mes buscan "red social twenty" supongo que para llegar a Tuenti.

¿Quiénes serán? ¿Nuevos usuarios de la red social?

Alrededor de unas 400 hacen lo mismo: "red social facebook" para llegar a Facebook.

Redes sociales en España en Internet

Mapa visual de las redes sociales en España.

sábado, 5 de diciembre de 2009

Virus Daonol alias Gumbral

Ayer detectamos un virus en alguno de los dominios que mantenemos. Ya ha sido corregido.

Su nombre es Daonol o Gumbral.

Se trata de un virus que ataca a las conexiones que se hacen mediante FTP.

Para eliminarlo solo hay que eliminar el código malicioso que añade en los ficheros index.php e index.html.

Puede obtener más información en:

miércoles, 2 de diciembre de 2009

Firmas HTML para Gmail en Chrome

Recientemente, y tras una larga reflexión sobre privacidad o conveniencia, me he decidido definitivamente a migrar a Gmail, por lo que ya no utilizo cliente de correo local.

Aprovechando la utilidad que ofrece para gestionar varias cuentas, ahora lo utilizo para atender tanto las cuentas de correo personales como las profesionales.

El uso de estas cuentas profesionales es lo que ha generado mi necesidad de incluir una firma con código HTML en los correos. Entre otras cosas, la LOPD, últimamente tan presente tras la reciente aprobación de su reglamento definitivo, exige que se incluyan cláusulas en los correos electrónicos, por lo que adjuntar una firma se hace imprescindible.

En resumen, que buscando en la red he encontrado GeekFG's web services & applications, una página que nos permite adjuntar una firma personalizada a nuestros correos cuando utilizamos Gmail y Chrome.

Es muy sencillo. Primero creamos la firma en el editor, luego la aplicación se encarga de generar un enlace a código javascript que podemos incluir en nuestra barra de marcadores y que al pulsarlo desde Gmail añade la firma a los correos.



martes, 1 de diciembre de 2009

Nuevo modelo de presupuesto web

Hemos actualizado el modelo de presupuesto web que ofrecemos a nuestros potenciales clientes para que se hagan una idea de que van a obtener cuando nos soliciten un presupuesto para una web corporativa títpica.

Puedes descargarlo en nuestra web en: Modelo Presupuesto Web

o ehcarle un vistazo aquí directamente.

viernes, 27 de noviembre de 2009

Cassandra DB: ¿Qué tienen Facebook, Twitter y Digg en común?

Cassandra DB: ¿Qué tienen Facebook, Twitter y Digg en común?
Conferencia Rails 2009: Pablo Delgado

Probablemente a la charla a la que le he sacado mayor partido ha sido a la de Pablo Delgado sobre Cassandra, el motor de bases de datos key-value desarrollado por dos ingenieros de Facebook para gestionar su ingente cantidad de datos repartidos entre 140 servidores.

De entre la gran cantidad de cosas que ofrece podemos resaltar que almacena los registros de forma continua y ordenados en column families, de forma que se consigue aunar las ventajas de acceso del almacenamiento por filas con el de columnas.

Este modelo de datos te permite definir supercolumns, es decir, columnas de columnas, para guardar datos ordenados y simplificar búsquedas muy comunes, con un precio, eso sí, el de tener que saber a priori cual es esa búsqueda para poder almacenar los datos ordenados en base a las keys que nos interesen.

El balanceo entre consistencia y latencia es configurable según nos interese más integridad en nuestros datos o alto rendimiento en las peticiones, ¿qué quieres potenciar, rápidez o seguridad?

Pero lo que más me ha impresionado es su alta escalabilidad y la gestión distribuida de los datos entre servidores. Cassandra permite añadir nodos a la base de datos de forma horizontal, es decir, lo añado y se acopla, sin más, se añade un nodo al cluster y ya se encarga el sistema de replicar los datos y mantener la consistencia. Si pasa lo contrario, que quitamos o perdemos un nodo de un cluster también se recompone automáticamente para sostener la caída de ese servidor.

Consistent Hashing, así gestiona el uso de nodos para grabar u obtener datos y seleccionar el nodo que almacenará la información en primer lugar, para luego replicar los datos al resto de servidores. La idea consite en que se sitúan todos los nodos en el perímetro de una circunferencia en la que la posición la define un valor entre 0 y 1, y a partir del valor devuelto por una función que calcula valores en este rango, y que puede ser aleatoria o no, se decide que nodo va a atender la lectura o escritura solicitados. Una vez escrito el registro, el nodo se sincroniza con el siguiente, y éste a su vez con el siguiente, así hasta que todos han sido actualizados.

Si nos obsesiona la pérdida de datos en las escrituras podemos definir factores de replicación que indican el número de nodos que utilizaremos para grabar claves replicadas concurrentemente, esto nos permite sostener la caída de algún nodo que se ha modificado pero que no ha tenido tiempo de sincronizar sus actualizaciones con el siguiente, ya que existen otros que también almacenaron el dato que se evaporó con el servidor caído.

En esta línea también soporta autoreparado de datos inconsistentes tras una consulta. Esto es, devuelvo lo que me piden y aviso al resto para que me sincronicen, si el dato estaba mal se corrige, con lo que los datos más consultados siempre son consistentes.

En resumen, una herramienta poderosísima y OpenSource, no cabe duda de que hay que probarla.

Alternativas a Rails para sitios y servicios web ultraligeros

Alternativas a Rails para sitios y servicios web ultraligeros
Conferencia Rails 2009: Raúl Murciano


Muy interesante charla sobre herramientas alternativas a Rails para sitios y servicios ligeros.

Uno de los principales problemas de Rails es el alto consumo de memoria que tiene, por lo que no es apropiado para servicios rápidos o sitios de funcionalidad simple. Su sistema de dispatching es demasiado costoso, es el precio de la facilidad de desarrollo.

Como solución aparecen frameworks ligeros que actúan como filtros sobre el controlador de acciones de Rails para responder peticiones sin tener que pasar por él.

Para implementar filtros existe Rack, un componente de Rails que define un interfaz para que cualquier clase que la cumpla actue saltando el controlador del framework y devuelva directamente una respuesta a una petición, esto permite la creación de frameworks ligeros.

Existe una utilidad llamada Rails Metal para generar filtros basados en Rack.

Un ejemplo de framework ultraligero basado en Rack es Sinatra, pensado para aplicaciones pequeñas, casi de bolsillo, algunas incluso de un único fichero, lo que se busca es la velocidad de respuesta y mínimo consumo de recursos.

Como conclusión, no hay herramientas definitivas, cada necesidad tiene un forma óptima de solucionarse, usa la herramienta adecuada para cada cosa.

jueves, 26 de noviembre de 2009

Key Value Stores. Conviértete en Jedi Master

Key Value Stores. Conviértete en Jedi Master
Conferencia Rails 2009: Pablo Delgado, Antonio Garrote y Mauro Pompilio


Charla sobre bases de datos clave-valor, en las que podemos almacenar estructuras variables de datos, es decir, no se basa en registros definidos por campos estáticos, sino que nos permite almacenar lo que queramos en la forma clave y valor de la clave.

Existen varias herramientas que soportan este tipo de almacenamiento de datos, algunas son:

CouchDB: es un motor key-value orientado a almacenamiento de documentos y pensada para aplicaciones web. Soporta control de versiones entre documentos de varias instancias. Es simple de usar aunque tiene un problema serio de velocidad, provocado porque es mucho más que una base de datos, permite incluso definir aplicaciones sencillas.

Redis: Proyecto bastante reciente, aunque ya existe una versión disponible aún está en desarrollo. Funciona como memcache pero persistente en disco.

Cassandra: DB nacido en Facebook. Es un híbrido entre Dynamo (Amazon) y Bigtable (Google). Es un sistema todoterreno que ofrece un rendimiento muy aceptable para distintos tipos de situaciones.

Las bases de datos key-value no se plantean como sustitutos de las bases de datos relacionales, sino como alternativa a problemas que no solucinan estas últimas, como el almacenamiento de objetos con atributos variables dinámicamente. Lo que sí ofrecen es una solución a la replicación y distrubución de gran cantidad de datos.


Flying Robot: Vehículos Aéreos Autónomos hechos con Ruby y Arduino


Flying Robot: Vehículos Aéreos Autónomos hechos con Ruby y Arduino
Conferencia Rails 2009: Ron Evans

El espectáculo comenzó con un globo en forma de zeppelin con cámara incorporada dando vueltas por el salón de actos y controlado a distancia por Ron Evans desde su Mac, desde donde también mostraba las imágenes del recinto que enviaba el ingenio aéreo.


El globo está gobernado por un circuito de hardware libre conocido como Arduino y en el que reside una aplicación Ruby generada con Flying Robot, un framework de desarrollo de aplicaciones para vehículos aéreos autónomos.

Es tan sencillo de utilizar que Ron Evans generó una aplicación durante la exposición, la envió al circuito y mostró como podía gestionar el aparato con ella.

Muy fresca y amena charla sobre aplicaciones del software y hardware libre, en este caso a la gestión autónoma de vehiculos.





Rubyspec y el largo camino hacia Ruby 1.9

Rubyspec y el largo camino hacia Ruby 1.9
Conferencia Rails 2009: David Calavera

Rubyspec ha sido presentado por David Calavera. Es un formato para definir especificaciones basado en el framework para definición de especificaciones Mspec. Ha sido concebido para poder crear una especificación de la funcionalidad de Ruby, principalmente para saber que el lenguaje cumple efectivamente las especificaciones que se le definen, pero con el doble objetivo de mostrar claramente al programador qué hace Ruby en cada comando de cada versión. En definitiva se trata de evitar la ingeniería inversa para saber cómo funciona el lenguaje.

Aún queda mucho trabajo de especificación por hacer, así que si te apetece puedes animarte a hacerlo.

Respecto de la nueva funcionalidad que aporta Ruby 1.9 no voy a comentar mucho, básicamente porque no conozco Ruby ni en sus versiones anteriores. Resaltar simplemente, y porque lo resalta David, que el soporte de encoding está muy mejorado.


La herramienta de desarrollo definitiva

La herramienta de desarrollo definitiva
Conferencia Rails 2009: Javier Ramírez

Javier Ramírez plantea que Rails no es la herramienta definitiva para el desarrollo de proyectos, sino el programador y
su actitud y capacidad a la hora de encarar un proyecto, independientemente de la herramienta que se utilice, algo que
como desarrollador de PHP se agradece oir de alguien que usa Rails. Somos de la misma idea, un mono usando Rails
sigue siendo un mono, por muy cool que sea decir que lo usas, al igual que no dejaría de ser mono por usar PHP o Java.

Nos muestra como ha evolucionado la forma de abordar proyectos hasta llegar al Manifiesto Agil.

Javier comenta el problema del desfase entre la Universidad y las técnicas actuales de desarrollo que se usan en el día
a día. Además insiste en que no se enseña a interpretar si un código es bueno o malo, a ver qué y cómo hacen las cosas
otra gente, y solo se basan en las reglas para programar. El valor importantísimo del autoaprendizaje y el reciclaje
personal, el interés propio en ver que se cuece por ahí afuera.

Comparto su idea de especialización, en actualizarte continuamente en lo que seas bueno, en intentar llegar a un punto
en el que seas capaz de aportar valor, como programador, analista o cualquier perfil que tengas.

En cuanto a Rails, Javier lo ve como una herramienta que tiene un factor humano enorme porque su código es legible y
abordable, y ha aprendido de sus errores y facilita la contribución externa. Como curiosidad, de cada 7 personas en
la Conferencia Rails 2009 una ha contribuido a Rails, el framework es de los que lo usan.

Una exposición brillante, clara, directa y pedagógica tanto para la comunidad Rails como para cualquier desarrollador
sea cual sea la tecnología que use.

Rails 3

Rails 3
Conferencia Rails 2009: Yehuda Katz

Continuamos en la Conferencia Rails 2009, este segundo día, al igual que el tercero se compone de charlas de 45 minutos.

En la primera Yehuda Katz ha presentado un keynote sobre lo que será Rails 3. Esta nueva versión nace del reencuentro entre Merb y Rails, por lo que ambos vuelven a caminar juntos.

Como principal novedad nos presenta mucha más modularidad en cuanto a los distintos componentes del framework. Algo de lo que carecía Rails hasta ahora era la posiblidad de sustituir distintos componentes que venían integrados, esta nueva versión acaba con esa limitación, incluyendo un core básico al que se le pueden "enchufar" módulos según gustos, como por ejemplo el motor de persistencia que nos interese.

Otra mejora considerable está en el rendimiento de todos los actores: render, dispatch de acciones, querys y persistencia, en general todo ha experimentado una importante disminución en los tiempos de ejecución, lo que no queda claro es si también lo ha hecho en consumo de memoria, algo de lo que se quejan los desarrolladores que usan Rails.




miércoles, 25 de noviembre de 2009

Taller de testing sin escribir tests con Cucumber y MundoPepino

Taller de testing sin escribir test con Cucumber y MundoPepino
Conferencia Rails 2009: Raimond García y Fernando García Samblas









Último taller del día, y vamos cuatro, en este caso sobre testing, la verdad es que se agradece lo ameno que lo han hecho Raimond y Fernando, ambos García, curioso que cuatro de los cinco ponentes del día se apelliden García.

Cucumber es una herramienta de testing para Ruby, es decir, de generación de test para aplicaciones, o lo que es lo mismo scripts de prueba automática para aplicaciones. La idea es que sean legibles en lenguaje natural para facilitar la comprensión de lo que realmente hace el test.

El problema del testing es que existen múltiples formas de llamar a las accciones en lenguaje natural, o simplemente se dice de forma distinta en idiomas distintos, lo que hace muy tedioso la construcción de test. MundoPepino trata de solucionar el problema "acabando con la democracia", como dice Raimond, o lo que es lo mismo proporcionando una normalización y estandarización a partir de convenciones en la creación de test.

Muy buen taller, aunque en algún momento se ocupó mucho tiempo en crear el código de la aplicación a testear. Ha sido una estupenda iniciación al mundo del testing.

Taller de HAML y SASS

Taller de HAML y SASS
Conferencia Rails 2009: Pedro Villalba


Continuamos en los talleres de la Conferencia Rails 2009.

En la sesión de tarde hemos empezado con el taller del gestor de plantillas html HAML, el equivalente en Ruby a los gestores para PHP Smarty o HTML_Sigma.

Dispone de helpers, al estilo de los que se usan en los View Templates de CakePHP, que ofrecen funciones para generación de tags html. Facilita la legibilidad de las vistas html, bueno básicamente ofrece lo mismo que cualquier gestor de plantillas html pero para aplicaciones Ruby.

Como curiosidad comentar que existe una utilidad Html2Haml, que como su nombre indica convierte HTML a código HAML.



SASS es al CSS lo que HAML al HTML. Proporcionando nueva funcionalidad como la definición de variables o incorporación de código, por ejemplo, para cálculo dinámico de colores o tamaños.

Al igual que HAML hace con los ficheros html, SASS genera dinámicamente los ficheros css a partir de los ficheros con código SASS que hayamos definido.

También permite modularidad. Para evitar la duplicidad y redefinición de tags es posible definir para qué acción de qué página queremos aplicar un estilo.

Taller de Capistrano


Taller de Capistrano
Conferencia Rails 2009: Rafael García

El segundo taller del día es sobre Capistrano una herramienta que comentamos antes. Capistrano es un desplegador de aplicaciones con control de versiones.


Proporciona múltiples comandos para definir la estructura de nuestra aplicación y cómo queremos que se despliegue en la máquina host.

Soporta git y subversion por lo que nos permite volver a versiones anteriores del código en caso de catástrofe o simples bugs en nuestra aplicación. Una cosa, he dicho versiones anteriores del código, no piensen que lo aguanta todo, como bien apunta Alberto Perdomo, como hagas una actualización de la BBDD y luego reviertas el código prepara café porque la noche será larga. Así que tenemos que tomar algunas medidas preventivas antes de utilizar el rollback, y una de ellas es hacer copia de la base de datos si su envergadura lo permite, para poder restaurarla si necesitamos acudir a un release anterior de nuestra aplicación.

Hay quien lo usa para tareas de sistemas pero no está concebido para eso, ya existen otras herramientas como Puppet o Chef bastante más eficientes para esas tareas.

Taller de Chef

Taller de Chef: Administra sistemas como Ferrán Adriá cocina
Conferencia Rails 2009: Jacobo García

Comienza mi incursión en el mundo
Ruby On Rails con un taller sobre Chef, un framework para configuración y automatización de instalaciones de servidores Linux, al estilo Puppet, pero escrito en Ruby.

Ist1_11021441-chef-being-showered-with-flour

"Administra sistemas como Ferrán Adriá cocina", así de presuntuoso es el título de la charla, y la verdad es que puede serlo.

Imagínense 60 servidores cada uno con sus particularidades, unos compartiendo configuraciones de herramientas con otros, algunos con configuraciones exclusivas y otros exactamente iguales entre sí, pero todos administrados desde la misma herramienta, eso es Chef.

Chef tiene estructura cliente-servidor, como no, necesitamos instalar un servidor de Chef en el que definimos nuestras recetas de configuraciones de instalaciones, p.e., la receta para instalar PHP, MySQL, PostgreSQL, Apache o un servidor de correo. Estas recetas se agrupan en roles que podemos aplicar a nuestros clientes. De forma que desde nuestra máquina cliente en la que previamente hemos instalado un cliente Chef, solicitamos un rol al servidor y éste se aplica, instalando todas las recetas que definen el rol solicitado.

Una curiosidad que tiene es que el mismo cliente está incluido por defecto como recetas del servidor, por lo que se puede instalar solicitándoselo a éste último.

Una de las funcionalidades más reseñables de Chef es que él se encarga de identificar la máquina y la distribución de Linux que tengamos instaladas y selecciona los paquetes apropiados para cada herramienta que hayamos definido en las recetas.

Otra cosa a valorar es su integración con Capistrano, un desplegador de aplicaciones muy usado en el mundillo.

No soy administrador de sistemas, pero no dudaría un segundo en meterle el diente a Chef si tuviera que administrar máquinas virtuales con servidores personalizados según las necesidades de la aplicación o aplicaciones anfritionas.

Como siempre atomizar permite personalizar y, sobre todo, automatizar las tareas, en este caso de instalación de herramientas para servidores web.