miércoles, diciembre 17, 2008

Utiliza software libre

Les dejo un video que me compartió mi amigo personal JuanCri en Google Reader. Es una ilustración interesante, y que incluye varias enseñanzas.


martes, diciembre 09, 2008

Seguridad Bancaria

Vamos, que todos nos preocupamos de la seguridad al momento de usar un cajero automático; cuidamos que nadie vea nuestra clave, limpiamos el teclado antes de tipear, por si nos han puesto alguna sustancia extraña que marque nuestras huellas dactilares, miramos hacia atrás y a todos lados, para detectar si alguien nos ha estado siguiendo o nos vigila, etc.

Todo lo anterior corre por nuestra cuenta. Pero... ¿qué tan seguro es el sistema operativo que corre en la computadora del cajero automático? Ustedes dirán.

jueves, junio 26, 2008

Aplicaciones de 16-bits en Wine (Ubuntu hardy)

En Ubuntu 8.04, se incluye la versión 0.9.59 de Wine. Al intentar ejecutar una aplicación de 16-bits (las clásicas de DOS) recibimos el siguiente error:
err:dosmem:load_winedos Could not load winedos.dll, DOS subsystem unavailable
winevdm: unable to exec '--app-name': 16-bit support missing

Este es un bug generado al intentar evitar problemas de seguridad protegiendo los primeros 64k de memoria del kernel.

La versión 1.0 de Wine tiene este problema solucionado. Sin embargo, hasta que Ubuntu no ponga a nuestra disposición la versión final de la implementación OpenSource de la API de Windows, podemos usar el siguiente work-around:
sudo sysctl -w vm.mmap_min_addr=0

Esto nos dará una solución temporal, que perderá sus efectos luego de reiniciar el sistema.

miércoles, mayo 21, 2008

Google Treasure Hunt 2008

Treasure Hunt es un concurso diseñado para probar las habilidades en la solución de problemas de ciencias de la computación, redes, y programación de bajo nivel.

Me enteré sobre este concurso hace poco más de una hora, de "letras" de mi amigo Ramiro Rebolledo. Lamentablemente el concurso se encuentra en su segunda fase, pero de todas maneras me inscribí y, con la ayuda de ramrebol en las matemáticas, resolví el puzzle correspondiente a esta semana, disponible en http://treasurehunt.appspot.com/.

El problema consistía en, a partir de un archivo zip descargado del sitio del concurso, sumar ciertas cifras contenidas en diversos archivos que compartían un patrón determinado, ya sea en su ruta o en su nombre.

Una modesta solución, que se puede mejorar con un buen script en bash, es la siguiente:
find . | grep abc | grep .rtf

Lo anterior, ejecutado en el directorio que contiene los archivos entregados por Google, produce un resultado con todos los archivos que, en su ruta o en su nombre, contienen abc, y que su extensión sea .rtf. Luego ya se puede usar more para ver el contenido de cada archivo. Como dije anteriormente, esta última parte se puede automatizar con un script, o un pequeño programa en algún lenguaje "a gusto del consumidor".

Estos fueron mis resultados:

Your question: 2 sums from 5760622739378519484.zip: line 2 in *zzz*.js, line 4 in *abc*.rtf
Your answer: 2024665362
Time received: 2008-05-21 04:03:03.258807 UTC

Correct answer: 2024665362
Your answer was: Correct


El próximo puzzle aparecerá 936266827 segundos antes de Y2K38, para los que estén interesados en participar.

lunes, abril 28, 2008

PRADO Component Framework para PHP

Hace mucho tiempo que no "posteaba" (175 días). Es momento de ponernos al día.

Durante el verano estuve haciendo algunas cosas en PHP, y utilicé un framework del cual no les había hablado (si recuerdo bien), y aprovecho el release de la versión 3.1.2 para comentarles al respecto.

Se trata de PRADO, un framework para PHP basado en componentes y eventos. Su nombre es una sigla en inglés para PHP Rapid Application Development Object-oriented.

En efecto, acelera bastante el desarrollo, sobre todo por el uso de eventos, que nos facilita la creación y procesamiento de formularios, enlaces y botones de todo tipo.

Por supuesto, los componentos son otro factor importante al momento de desarrollar, ya que nos evita decenas (quizás cientos) de lineas de código, en especial HTML, y todos sabemos que es tiempo valioso que podemos ahorrar.

Quienes han usado ASP.NET o Java están familiarizados con esto, y concordarán conmigo que el trabajo es mucho menos, al momento de construir aplicaciones grandes y complejas.

Una lista más detallada de sus características es la siguiente:
  • Orientado a objetos y código altamente reusable.
  • Programación dirigida a eventos.
  • Separación de la presentación y la lógica.
  • Arquitectura modular configurable, con soporte de plugins.
  • Completo espectro de soporte de bases de datos.
  • Componentes Web: controles de input HTML, validadores, grillas de datos, etc.
  • Componentes Web con AJAX.
  • Soporte de internationalización (I18N) y localización (L10N)
  • Manejo de errores y excepciones personalizable.
  • Filtrado y logging de mensajes.
  • Medidas de seguridad: prevención de XSS, protección de cookies, etc.
  • Ajustado a estándares XHTML.
Además, posee una excelente documentación (Manuales, tutotiales, API, etc.) y soporte de usuarios en foros y listas de correo.

Quizás una de las mayores necesidades es la de un buen IDE para Linux, ya que para Windows ya existen, aunque privativos.

Es mucho más lo que podría decir acerca de PRADO, pero les invito a averiguar más por ustedes mismos, ya sea en el sitio Web oficial, o en nuestro querido buscador Google.

Saludos!