October 9th, 2009 / No Comments » / by Paul M Dorr
Vía Web Resources Depot me enteré de la existencia de gRaphaël, una librería para la creación de gráficos, escrita en JavaScript y totalmente open source, basada en la librería gráfica Raphaël.
gRaphaël es capaz de crear gráficos de torta, barra, líneas y puntos, tanto estáticos como interactivos. Estos gráficos son generados mediante VML y soporta los browsers más populares, como Firefox 3.0+, Safari 3.0+, Opera 9.5+ e Internet Explorer 6.0+.
Como pueden ver en el siguiente código (extraído de la página de gRaphaël), es extremadamente sencillo de usar:
// Creates canvas 640 × 480 at 10, 50
var paper = Raphael(10, 50, 640, 480);
// Creates pie chart at with center at 320, 200, radius 100
// and data: [55, 20, 13, 32, 5, 1, 2, 10]
r.g.piechart(320, 240, 100, [55, 20, 13, 32, 5, 1, 2, 10]);
Pueden ver excelentes demos, como el gráfico de torta interactivo y el de puntos en la misma página de gRaphaël.
Posted in: Desarrollo Web, JavaScript
Tags: Desarrollo Web, gráficos, JavaScript, open source, soluciones
October 8th, 2009 / 7 Comments » / by Paul M Dorr
Para aquellos usuarios que se hayan visto intimidados por lo complicadas que pueden resultar algunas configuraciones en un Arch Linux instalado desde cero, o para aquellos que (como yo) no cuentan con el tiempo necesario para hacerlo, existe una alternativa muy buena, llamada Kahel OS.
Si bien en la web de Kahel OS nos dicen que se trata de de una distribución de Linux, en realidad no es más que una especie de “mod” de Arch (utiliza los repositorios de éste), pero que logra muy buenos resultados. La principal característica de este mod, es que tiene un instalador modificado, de forma que configura varias cosas automáticamente (sonido, pantalla, red, etc) y se encarga de instalar el entorno gráfico Gnome, con GDM incluído.

Si bien de momento sólo lo he probado sobre máquinas virtuales, la instalación es muy rápida y el rendimiento es excelente. Al terminar de instalar Kahel OS, nos encontramos con un Arch Linux listo para usar, con entorno gráfico, red, sonido, el plugin de Flash funcionando correctamente en el explorador (Epiphany por defecto), y seguramente muchas cosas más que aún no he tenido el tiempo de ver.
Así que aquellos que no se animaban a instalar Arch Linux por la dificultad inicial o por falta de tiempo, ya no tienen excusas, Kahel OS es la alternativa perfecta.
¿Probaste Kahel OS? ¡Contanos tu experiencia!
Posted in: Linux, Noticias, Software Libre
Tags: alternativas, Arch Linux, Linux, Software Libre
October 7th, 2009 / 2 Comments » / by Hallecsyz
Visto y considerando que hace tiempo que no se escribe sobre juegos de miércoles, seré yo quien lo haga esta vez. Porque a pesar de no ser un gran gamer, cada tanto me distraigo con algún juego, especialmente en el Touch. Y es para los usuarios de iPod/iPhone, como yo, que traigo buenas noticias: Tap Tap Revenge 3.
Más social que nunca, esta versión incluirá chats y avatares personalizables; además de canciones premiums y la posibilidad de hacer compras en el App Store directamente desde la aplicación.
El lado social es la principal característica del Tap Tap Revenge 3, con un chat y sistema de mensajes directos bastante parecidos a los primeros clientes de Twitter y cientos de items para personalizar nuestros avatares y hacerlos únicos.
Los temas premiums se conseguirán para descargar en packs de 6 y 2 canciones, por US$ 2.99 y US$ 0.99 respectivamente. Siendo la primer aplicación en aprovechar el App Store in-game commerce, que permite realizar compras directamente desde la aplicación, usando nuestra cuenta de iTunes.
Espero ansioso que liberen esta nueva versión para probarla y desperdiciar algunas horas (O aprovecharlas, según el caso).
Posted in: Juegos de miércoles
Tags: Apple, iPhone, iPod Touch, juegos, Tap Tap Revenge
October 5th, 2009 / 2 Comments » / by Paul M Dorr
Leo en Barrapunto un pedido de opiniones acerca de frameworks web, por parte de un usuario. En él solicita que le recomienden cuál de estos dos frameworks es mejor, y agrega que también le interesaría saber cuáles son las ventajas de cualquiera de estos sobre los más “tradicionales”, como son los basados en tecnologías J2EE (barf.)
De las respuestas que se fueron dando en forma de comentarios, se pueden sacar algunas conclusiones (basadas sólo en opiniones de los lectores):
- Django y RoR son más rápidos (en general) que cualquier framework basado en PHP
- Tanto Django como RoR tienen una curva de aprendizaje rápida, más aún comparándolos con frameworks como Struts, JSF, etc.
- Django es más rápido que RoR (yo no lo dije!!! =P)
- Ambos tienen la ventaja de tener muchísimas herramientas y aplicaciones “pluggables” ya desarrolladas (blogs, foros, redes sociales, etc.)
- Django tiene una documentación excelente (adhiero!)
- Faltan IDEs que se integren mejor con estos frameworks
- Muchos desarrolladores no tienen la más pálida idea de lo que hablan
- Algunos comparan la complejidad de RoR con J2EE+Spring+etc. (vamos rubyonrailistas ¡a desmentir esto!), por lo que recomiendan otros frameworks basados en Ruby, como Sinatra, Rack, Ramaze o Camping.
- Odio el sistema de comentarios de Barrapunto ¬¬
Si bien se puede apreciar que las opiniones son varias y algunas bastante polémicas, creo que un usuario dio en el clavo al decir algo como lo siguiente, con lo que estoy completamente de acuerdo:
Creo que hay que mirarlo de otra manera… no hay una solución definitiva, ni porque una sea mejor el resto pasan a ser malas.
Luego agregó que se debería trabajar con lo que ya se sabe (si sabes Java, entonces algo como JSF; si sabes PHP, quizás Symfony…), y llegado este punto ya dejamos de concordar.
Siempre es bueno aprovechar la oportunidad de aprender, de expandir nuestros horizontes, de generar un poco de movimiento en las neuronas para que no nos queden atrofiadas en un sólo lenguaje, en una sola tecnología, en una forma de pensar cerrada y sin posibilidad de cambio. Nuestro ambiente es algo que evoluciona constantemente; nuevos lenguajes, nuevas tecnologías, nuevas formas de enfrentar y solucionar los problemas. Tenemos que estar siempre atentos y listos para adaptarnos a lo que sea que se nos cruce en el camino. Si allá por los 50′s/60′s, los programadores se hubieran cerrado a su lenguaje sin aceptar nada de lo nuevo que vendría, hoy sólo programaríamos en FORTRAN.
¿Qué piensan ustedes? ¿Qué framework prefieren? ¿Cómo encaran los cambios en el ambiente de desarrollo de sistemas?
Posted in: Django, Python
Tags: Django, frameworks, Python
September 23rd, 2009 / No Comments » / by Hallecsyz
Como usuario de Software Libre creo que GIMP es una de las mejores alternativas a la hora de editar imágenes y fotografía, ya sea desde Linux o incluso Windows. Y una de las características más interesantes de este programa es la posibilidad de agregarle muchas funcionalidades que no vienen por defecto.
Desde PuntoGeek y Forat encuentro una completa colección de más de 100 scripts para poder agregar efectos a nuestras imágenes con sólo un par de clicks. Se trata de FX-Foundry, y la instalación es sencilla, simplemente hay que descomprimir el archivo en la carpeta scripts de nuestro GIMP. En Linux será en /usr/share/gimp/2.0/scripts y en Windows C:\Archivos de programa\GIMP-2.0\share\gimp\2.0\scripts.
Después de extraer los archivos y reiniciar GIMP, nos encontramos con una nueva sección en el menu y ya está listo para usar y lograr los mejores efectos en nuestras fotos, como en la imagen que acompaña este post.

Descargar el paquete de Scripts.
Posted in: Software Libre
Tags: descargas, efectos, gimp, Linux, scripts, windows
September 22nd, 2009 / No Comments » / by Paul M Dorr
Leo en On Software and Languages un interesante artículo en el que habla de lo “complejos” y difíciles de leer que se hacen actualmente los proyectos basadaos en Java, gracias a los archivos de compilación y configuración en XML usados por herramientas como Scripts Ant, Struts2, Spring, log4j, Hibernate, etc.
Para ilustrar este problema, el autor empieza comparando un Script de Ant en XML con un Ant-builder en Groovy:
Ant XML
<project name="prepareBookDirs" default="copy">
<property name="target.dir" value="target"/>
<property name="chapters.dir" value="chapters"/>
<target name="copy">
<delete dir="${target.dir}" />
<copy todir="${target.dir}">
<fileset dir="${chapters.dir}"
includes="*.doc"
excludes="~*" />
</copy>
</target>
</project>
Ant-builder en Groovy
TARGET_DIR = 'target'
CHAPTERS_DIR = 'chapters'
ant = new AntBuilder()
ant.delete(dir:TARGET_DIR)
ant.copy(todir:TARGET_DIR){
fileset(dir:CHAPTERS_DIR, includes:'*.doc', excludes:'~*)
}
Como pueden ver, es notablemente más legible el segundo código, no sólo porque es más corto y con menos caracteres superfluos, sino porque se usa el mismo lenguaje para escribirlo, en vez de XML. Como bien dice el autor de la entrada original, el creador de Ant admitió que usar XML es “…probablemente un error”.
Luego, el autor del artículo muestra una tabla donde compara números de código realizado en Java contra Ruby on Rails. Prestar especial atención a las líneas de configuración y al tiempo que lleva realizar el proyecto.
Metric Java + Ruby +
Spring/Hibernate Rails
Time to market 4 months, approx. 4 nights,
20 hours/week 5 hours/night
Lines of code 3,293 1,164
Lines of config 1,161 113
Number of classes/ 62/549 55/126
methods
Los archivos de configuración en Ruby ocupan el ¡10%! de líneas de lo que ocupan en Java, y el tiempo de desarrollo cambia de 4 meses en el lenguaje de los infames XMLs, a ¡4 noches! en el interpretado. Si bien no sé hasta que punto los números son acertados, por más que las líneas de configuración en ruby aumenten un 200%, aún serían muchísimas menos que las de Java.
En el artículo original, el autor señala la complejidad de frameworks como spring, que llevan a necesitar utilizar gráficas para poder entender la estructura interna de sus archivos de configuración XML. También cuenta lo siguiente, que me pareció ya excesivo, pero que a muchos compañeros de trabajo que conozco les encantaría:
But wait, it comes even better: some people are so enamoured with XML that they are using it as a programming languag, either doing patterns with Spring and XML configuration files, or even inventing an XML-based programming language and writing its interpterer in XSLT (I’m not joking!).
Lo que en español viene a ser algo parecido a esto:
Pero esperen, se pone mucho mejor: algunas personas están tan enamoradas de XML, que lo están utilizandon como un lenguaje de programación, ya sea haciendo patrones con Spring y archivos de configuración XML, o incluso inventando un lenguaje de programación basado en XML y escribiendo su intérprete en XSLT (No es broma!).
Sin comentarios. Creo que con el ejemplo ya sobra, hay gente para todo.
Conclusión
En la entrada original, el autor hace un análisis final que no me pareció necesario incluir en este post (lo van a tener que leer en inglés). Por mi parte, la conclusión es sencilla, XML es un recurso excelente, cuando es usado con moderación y no para cada problema que se cruza en nuestro camino. Prefiero usar archivos de configuración más pequeños, preferiblemente escritos en el mismo lenguaje en que estoy desarrollando (como es el caso de Python o PHP), o llegado el caso, algo más legible como JSON o YAML.
Y para terminar, coincido totalmente con la reflexión del autor de la entrada original:
I think that the loose coupling thing is overrated…
Posted in: Programación
Tags: Java, Programación, Python, Ruby, XML
September 18th, 2009 / 5 Comments » / by Hallecsyz
Una de las características de las últimas versiones de Ubuntu, es la creación de un backup automático del kernel de nuestro Linux cada vez que lo actualizamos. Una gran ventaja que nos permite regresar a una versión anterior en caso de que surja algún problema durante la actualización, o cuando lo modificamos y lo rompemos.
Pero después de varias actualizaciones, y más aún cuando nuestro espacio en disco no es muy generoso, la acumulación de backups empieza a ser una molestia. Más allá del espacio que ocupan, el GRUB empieza a llenarse de opciones y es realmente molesto cuando tenemos otros Sistemas Operativos instalados en la misma PC.
La solución para borrar los viejos kernels en desuso la encontré en Sin Windows y es muy sencilla, en terminal escribimos:
dpkg --get-selections | grep linux-image
Y obtenemos el listado de kernels instalados en el sistema, algo similar a esto:
linux-image-2.6.28-11-generic install
linux-image-2.6.28-13-generic install
linux-image-2.6.28-14-generic install
linux-image-2.6.28-15-generic install
linux-image-generic install
Claramente las versiones 11 y 13 ya no son necesarias, en caso de tener problemas con la última, se puede volver a la 14 y arreglarlo desde allí. Así que para desinstalar las viejas escribimos:
sudo apt-get purge linux-image-2.6.28-11-generic linux-image-2.6.28-13-generic
Posted in: Ubuntu
September 16th, 2009 / No Comments » / by Paul M Dorr
Si, sí, ya sé que debería ser Juego de miércoles y no Colecciones de martes, pero como ya la semana pasada no cumplimos con ese esquema, voy a postear colecciones cuando encuentre alguna interesante. Esta en particular me gustó porque recopila más de 800 iconos para RSS, para que podamos elegir el que mejor quede con la interfaz de nuestra página.
800+ Most Wanted Free RSS Icons
Posted in: Colecciones de martes, Diseño Web
Tags: colecciones, Diseño Web, iconos
September 15th, 2009 / 2 Comments » / by Paul M Dorr
InDefero es una aplicación basada en PHP, que nos brinda la posibilidad de tener en nuestro servidor las características de sistemas de administración multi-proyecto como Google Code o Sourceforge.
Entre sus funcionalidades se cuentan:
- Seguimiento de bugs
- Subida y descarga de archivos
- Documentación y vista general del código
- Cada usuario tiene su propio “tablero”
- Soporte para explorar código (git, Subversion y Mercurial)
- Línea de tiempo del proyecto
- Un motor de búsqueda poderoso
- Visualización de las diferencias en los commits
- Resaltado de la sintáxis online
- Facilidad de comunicación con el usuario final
- Y mucho más…
Requiere un servidor con PHP y soporte para bases de datos PostgreSQL, SQLite o MySQL 4.1+.
Posted in: PHP, Programación, Software, Software Libre
Tags: PHP, Programación, Software, Software Libre
September 15th, 2009 / 2 Comments » / by Paul M Dorr
Si bien Nautilus es uno de los exploradores de archivos que más me gusta, siempre eché en falta la posibilidad de tener doble panel para poder ver dos carpetas al mismo tiempo, como puede hacerse en otros exploradores. Me entero vía Ubuntu Life que esta característica está disponible en la última versión, la cual podemos instalar en Ubuntu Jaunty siguiendo los pasos que se indican en el post Activar vista de doble panerl en Nautilus
Posted in: Linux, Noticias, Software Libre, Ubuntu
Tags: Linux, Noticias, Software Libre, Ubuntu