Blog 404 – Not Found! Blog 404 – Not Found!

No prometemos que vayas a encontrar lo que te gusta,pero esperamos que te guste lo que vas a encontrar.

Archivo de la categoría ‘Software Libre’

Una boca más que alimentar

El lanzamiento de Chrome, el nuevo navegador de Google, ha levantado un gran revuelo, como no podría ser de otra forma. La empresa estadounidense es, desde hace mucho tiempo, el centro de atención de la comunidad de internautas.

En el departamento ya somos algunos los que lo hemos instalado y probado. A bote pronto, el diagnóstico es el siguiente.

Puntos a favor:

  • Software libre, de codigo abierto, y (en principio) respetuoso con los estándares.
  • Un motor JavaScript muy rápido. Teniendo en cuenta que las aplicaciones web se basan cada vez más en esta tecnología, gran parte de los usuarios lo agradecerán.
  • Interfaz minimalista, es muy intuitivo ponerse a navegar.
  • Separación de las pestañas en distintos procesos. De esta forma, aumenta la estabilidad y la seguridad. Si una pestaña falla, no afectará al resto.
  • Modo de navegación «privado».

Puntos en contra:

  • Carencia de funcionalidades avanzadas, así como de la posibilidad de instalación de plug-ins. Será que los usuarios de Firefox estamos muy mal acostumbrados
  • Se ha descubierto un bug que, para colmo, ya estaba resuelto en Webkit (el motor que usa Chrome). Es extraño que se le haya colado a Google. Da la impresión de que el navegador se haya anunciado precipitadamente.
  • Sólo disponible para Windows.

Se han encontrado varias vulnerabilidades y un montón de bugs, lo cual parece refrendar la idea de que el lanzamiento ha sido precipitado:

Está claro que el producto evolucionará, así que estaremos atentos a próximas novedades.

En lo que compete a nuestro trabajo diario parece que, actualmente, el mercado de navegadores tiende hacia la fragmentación. Internet Explorer, Firefox, Opera, Safari, Chrome y algún otro se repartirán el pastel. Esperemos, por el bien de nuestra salud mental, que se respeten los estándares lo máximo posible. Cuando era cosa de dos, era asumible ignorar a un porcentaje marginal de usuarios. En este nuevo escenario, podríamos estar hablando de porcentajes del 10 ó 15% de la audiencia, para los que habría que preparar una versión de la web específicamente adaptada para cada navegador.

El futuro de PHP

Aunque la gran mayoría de los sitios web desarrollados en PHP siguen usando la versión 4, ya obsoleta, no debemos olvidar que la versión actual es la 5, y que ya se está trabajando en la versión 6.

Para no perderle la cara al futuro, es interesante conocer algunas de las mejoras que incorporará dicha versión 6:

Soporte Unicode mejorado

Se está trabajando mucho en dar soporte a cadenas Unicode en las funciones del núcleo de PHP, lo que redunda en una mayor facilidad para la internacionalización de las aplicaciones.

Espacios de nombres (namespaces)

Los espacios de nombres (namespaces) son la solución para evitar las colisiones entre nombres de funciones y clases. De esta forma, se pueden usar funciones y clases importadas sin temor a que se llamen igual que las que se hayan usado previamente.

Esta facilidad ayuda claramente a la modularidad del código, y lleva años siendo usada en otros lenguajes, como Java o C++.

Características Web 2.0

Las extensiones SOAP, ya incluidas en la versión 5, vendrán activadas por defecto en la versión 6. SOAP (Simple Object Access Protocol) es un protocolo que ayuda a la comunicación entre diferentes plataformas web. Lo mismo ocurrirá con las clases de manejo de datos XML (XMLWriter y XMLReader).

Algunas de estas mejoras serán llevadas también a la versión 5, a modo de backport, debido a su especial interés.

Elementos eliminados

También es importante conocer qué características serán eliminadas en la versión 6, ya que pueden afectar a las aplicaciones ya existentes y será necesario reescribirlas (con mayor o menor esfuerzo, dependiendo de cada caso): desaparecen register_globals, magic quotes, el modo seguro, las etiquetas cortas tipo ASP y el soporte a Freetype1 y GD1.

Fuente: IBM

¿Piensas migrar tus aplicaciones a PHP6 en cuanto salga, seguirás con PHP5 mientras se estabilice la nueva versión, o todavía estás con PHP4?

Juegos de los lectores

Son muchos los emails que recibimos para publicar en nuestro blog o en la página de 20minutos.es juegos programados por los lectores.

Muchos de ellos son los tradicionales juegos a los que todos hemos echado más horas que un reloj. Otros son de creación propia. Algunos con mejor diseño, otros con más jugabilidad.

Hemos decidido comenzar una serie de artículos en los que vamos a publicar los mejores juegos de entre todos los que nos vayáis mandando.

Si queréis enviarnos un juego contactad con nosotros por correo electrónico en blog404@20minutos.es, explicándonos el juego e incluyendo el material que debamos publicar.

Publicaremos los que sean jugables online, ya estén implementados en Java, JavaScript, Flash, etc.

Con todos ellos haremos una lista para saber cuáles son los que más os gustan a todos vosotros.

AutoIt: scripting para niños

Hace unos meses estábamos buscando un sistema para generar pequeños scripts para compactar directorios, limpiar archivos antiguos, rotar archivos, modificar registros, etc. Básicamente, todas esas pequeñas tareas que tenemos que hacer los departamentos de sistemas y que si, implicaran comprar nuevo software para resolver cada pequeña tarea, arruinarían a más de una empresa.

Probamos varios sistemas de scripts y macros hasta que dimos con AutoIt.

AutoIt es un lenguaje de scripting totalmente gratuito. Actualmente va por la versión v3.2.10.0.

Fundamentalmente nos viene bien porque:

  • Permite crear un ejecutable sin librerías ni archivos extras.
  • El sistema de compilación es muy sencillo.
  • Funciona en todas las versiones de Windows.
  • Tiene una sintaxis similar a Visual Basic, con lo que es muy fácil cogerle el punto.
  • Permite simular pulsaciones de teclas y eventos del ratón, incluso combinaciones complejas.
  • Se pueden crear de una forma sencilla GUIs complejos: viene con una librería de componentes muy grande.
  • Da acceso a la lista de procesos con distintas funciones para gestionar los mismos.
  • Posibilita la ejecución de procesos con usuario distinto al usuario que ejecuta el script.
  • Perfecta documentación con una muy buena librería de ejemplos.
  • Viene con un editor especial para generar de forma más cómoda los scripts y con autocompletado.

Estas, y otras muchas, son las ventajas que hicieron que nos decantáramos por el uso de AutoIt.

Ahora mismo lo estamos empleando para:

  • Gestionar scripts de backup automático de máquinas virtuales (usamos VMWare) con conexión SSH, parada de la máquina, gestión de la copia por FTP, rotado de copias y rearranque de la máquina.
  • Hotfolders para pequeños tratamientos de archivos y movimientos entre carpetas
  • Rotar logs con la periodicidad que necesitamos para cada caso concreto
  • Realizar y almacenar la captura de la portada de nuestra web cada 10 minutos
  • Consolidación de estadísticas
  • Control de tareas de usuarios

Actualmente estamos trabajando en un pequeño programa que, con un GUI sencillo, permita a nuestros redactores seleccionar un conjunto de imágenes, asignarles una información IPTC y colocarla en una estructura de carpetas basada en dicha información IPTC para su posterior incorporación automática en nuestro sistema documental.

Las posibilidades son enormes y más si lo utilizáis en unión con otros programas. Nosotros lo empleamos con conexión a MySQL a través de un servidor Apache mediante peticiones GET. También a la vez que Putty para toda la gestión de SSH y SCP.

¡Esperamos que os sea útil!

Sun Microsystems compra MySQL

La semana pasada, Sun Microsystems anunciaba la compra de MySQL AB, empresa propietaria y desarrolladora de uno de los motores de base de datos open source más popular. La compra se cerró finalmente en una cantidad cercana al billón de dólares (billón de los americanos, es decir, 1.000 millones de los castizos). Podemos encontrar un comunicado en la propia página web de MySQL, en su sección de prensa.

La operación ha pillado por sorpresa a todo el mercado y a muchos de los propios empleados de MySQL. Aparentemente es una excelente noticia para el mundo del software libre y, sobre todo, para Sun Microsystems que se pone a la cabeza con su lenguaje Java y el sistema operativo Solaris.

Todavía es pronto para saber en qué nos afectará a los usuarios de MySQL: el proceso de compra se completará entre el tercer y el cuarto trimestre de este año 2008.

Usos avanzados de GMail

Como ya hemos comentado anteriormente, algunos en el departamento somos fieles seguidores de los productos de Google y, en especial, de su servicio de webmail GMail.

La característica que vamos a comentar hoy no es nueva, y ya ha sido publicada con anterioridad en varios blogs y páginas web. Sin embargo, nos parece de bastante utilidad como para volver a insistir en su uso.

Todos hemos sufrido alguna vez el problema del SPAM. En la mayoría de los sitios que requieren registro de usuarios, se solicita una dirección de correo electrónico. Así que, es cuestión de tiempo que nos empiece a llegar correo no deseado a esa dirección con la que nos suscribimos, bien desde los sitios originales o bien de sitios de terceros (en muchos foros y páginas, al suscribirte, es obligatorio hacerlo a la vez a algún sitio de publicidad vía correo electrónico, tipo CanalMail o similar).

Una alternativa a este problema puede ser usar un servicio de direcciones de correo de «usar y tirar». Pero si ya somos usuarios de GMail, existe una alternativa: Podemos añadir «etiquetas» a nuestra dirección de correo, para poder discriminar los mensajes aplicando filtros.

Por ejemplo, si nos damos de alta en 20minutos.es, y nuestra dirección de correo habitual es usuario@gmail.com, podríamos darnos de alta con:

usuario+20minutos@gmail.com

Haciendo esto conseguimos:

1. Los correos que se envíen a usuario+20minutos@gmail.com llegarán a nuestro buzón en usuario@gmail.com. En general, podremos usar cualquier cadena como etiqueta diferenciadora (20minutos en el ejemplo).

2. Creando filtros en Gmail, buscando usuario+20minutos@gmail.com en el campo «para», podremos automáticamente etiquetar los correos que lleguen, moverlos al archivo, marcarlos como leídos, como destacados, reenviarlos a otra dirección de correo electrónico, borrarlos o cualquier combinación de las acciones anteriores. Lo cual nos permitirá clasificar nuestro correo entrante de forma eficiente y automática.

Más información (en inglés):

Swift Mailer: emails desde PHP

En nuestro artículo anterior, Por un debate en Internet, comentábamos la necesidad de enviar correos electrónicos desde una cuenta que no estuviera asociada a 20minutos, habiendo elegido una cuenta de GMail al efecto.

Investigando cómo enviar correos desde PHP contra el servicio SMTP de GMail, nos topamos con una librería (o biblioteca, para los más puristas) que tenía muy buena pinta: Swift Mailer. Llevamos años usando PHP Mailer, pero siempre hay que estar abierto a los cambios, así que decidimos darle una oportunidad a Swift Mailer en el microsite, principalmente porque da soporte a SSL y TLS (necesario para usar GMail).

Lo que nos ha gustado ha sido, por un lado, la facilidad de configuración (elección del servidor SMTP, adición de destinatarios, composición del cuerpo del mensaje) a la hora de enviar un simple email. Por otro lado, un vistazo rápido a la documentación da una idea de la potencia del producto. Potencia que esperamos poder aprovechar próximamente para otros menesteres (y contar por aquí qué tal nos ha ido).

Siguiendo con el caso que nos ocupa, para enviar emails usando el SMTP de GMail lo configuraremos de esta manera:

$smtp =& new Swift_Connection_SMTP($_CONF[‘SMTPHOST’], SWIFT_SMTP_PORT_SECURE, SWIFT_SMTP_ENC_TLS);

$smtp->setUsername(«usuario_gmail»);

$smtp->setpassword(«password_gmail»);

La sorpresa esta vez vino de la mano de GMail, que tiene un límite diario de 500 correos salientes. Por ese motivo, tuvimos que montar, con carácter urgente, un MTA para el dominio porundebateeninternet.es. Pero ésa es otra historia que deberá ser contada en otra ocasión. Afortunadamente, la configuración de Swift Mailer es tan sencilla que nos permitió hacer el cambio de MTA en un instante.

¿Qué métodos soléis usar para enviar correos electrónicos desde vuestras aplicaciones web?

Comentando el código fuente

Una de las normas básicas que aprende cualquier programador es que el código fuente no sólo ha de ser sintácticamente correcto (si no no podría ser compilado o interpretado), sino que también debe ser legible por cualquier ser humano.

Uno de los elementos que ayudan mucho a conseguir legibilidad son los comentarios. Mediante los comentarios podemos conseguir que, hasta alguien que no esté familiarizado con el lenguaje que estemos empleando, pueda saber cómo se comporta el código.

En definitiva, se trata de una forma muy válida de documentar para que, entre otras cosas, el que venga detrás a modificar el código no se vuelva loco intentando averiguar qué hace y, la mayoría de las veces, cómo y por qué lo hace de esa manera.

Pero, como en la vida real, todo tiene su uso bueno y su uso «no tan bueno». En este caso, y gracias a la herramienta Google Code Search, que permite hacer búsquedas en millones de líneas de código fuente público, podemos ver que los comentarios también son una vía de escape para el programador cuando se enfrenta, armado con su teclado, a una pantalla y un problema por resolver.

Probad en Google Code Search a buscar cualquier improperio que se os ocurra. Nosotros no vamos a dar ideas, seguro que vuestra imaginación es muy fértil en ese sentido.

Y felices fiestas a los que las celebren.

PD: Entrada original F*cking programming vista en Codeulate.

7Zip. Software Libre de compresión de ficheros

Resulta bastante común que los compañeros están acostumbrados a utilizar cierto software, bien en sus casas, bien en los centros donde cursaron sus estudios. Programas como WinZip, Dreamweaver, Nero o Photoshop han saltado del ámbito de lo técnico para estar en boca de, prácticamente, todo el mundo.

En ocasiones, es complicado hacer ver que el software no es gratuito (no todo) y que, por lo general, estas aplicaciones que todo el mundo conoce tienen un coste.

Afortunadamente, el Software Libre, del que somos unos fervientes defensores (algunos más que otros), viene en nuestra ayuda para ofrecernos alternativas que incluso llegan a superar en rendimiento y prestaciones al programa «original».

Precisamente, algo que casi todos hemos usado alguna vez son los compresores/descompresores de archivos. Aunque haya sido para abrir un adjunto que nos hayan enviado por correo electrónico. Desde los tiempos de los vetustos ARJ y LHA, mucho ha llovido. En la actualidad se puede decir que, en los sistemas Windows, hay dos formatos estándar: ZIP y RAR. Hay muchos programas que entienden dichos formatos, pero los más conocidos, WinZIP y WinRAR, son de pago.

Aunque ya tiene unos cuantos años de vida, hemos descubierto recientemente un programa con licencia LGPL que, aparte de implementar un formato propio (7Z) que ofrece mejores tasas de compresión que los anteriormente mencionaods, puede manejar dichos formatos y algunos más. Se llama 7Zip.

Instalarlo, aparte de permitir ahorrar en licencias y conseguir, con un único programa, manejar archivos de múltiples formatos, puede ser una buena forma de iniciarse en el uso del Software Libre.

En lo sucesivo veremos más ejemplos, tanto de Software Libre de «sustitución» que llevamos tiempo usando como los nuevos programas que vayamos incorporando al uso cotidiano en la plantilla de 20 Minutos.

No hemos hablado ni de GNUZip ni de BZip2, ambos también libres pero de un uso más restringido (a sus formatos nativos y entornos Linux, aunque existen ports para Windows).