Najaraba.com: Software libre, negocios y más.
Escenarios ante “SpringSource Application Platform”
Abril 30th, 2008 - [Enlace local]
Tenemos una nueva plataforma de aplicaciones JAVA: SpringSource Application Platform. Es una plataforma que no cumple JEE completamente, y de hecho no parece que lo vayan a hacer. Soportan los módulos web como WAR, pero no se asoman los EJBs. ¿Necesitamos otra plataforma de aplicaciones en el mundo JAVA? Creo que no. El punto fuerte de esta nueva plataforma parece que va a ser la utilización de
» Leer más, comentarios, etc...
Pensamientos ágiles
Spring Application Server!
Abril 30th, 2008 - [Enlace local]

Tenía que pasar. Recuerdo hace unos meses comentando con mi jefe que Spring había recibido capital de riesgo y que eso tenía que significar algo. Nadie pondría 10 millones de dólares en un proyecto basado únicamente en la formación. "- Lo más probable es que aprovechen el tirón de Spring y la inyección de dinero para crear su propio servidor de aplicaciones", comentaba. Aunque la opinión de mis compañeros era contraria, ya que eso sería ir en contra del "J2EE development without EJB" que tanto tiempo ha promovido Rod Johnson.
Y es que para una vez que me sale una predicción tengo que ponerlo por aquí!! Que esto (lo de la predicción) es para celebrarlo!! Aunque mis compañeros también tenían razón ya que el servidor se aparta bastante de lo que actualmente es JEE.
Bueno, el caso es que se puede leer ya en muchas publicaciones, y es que Spring ha lanzado la Spring Application Platform, que según Rod Johnson "is the "first proper Java application server product to appear for the enterprise in ten years" y de la que se puede ya obtener una beta.
La plataforma se construye sobre OSGi (otro enorme impulso también para esta tecnología) y Tomcat, y aunque se pueden desplegar WARs, no se pueden desplegar EARs y no soporta otras especificaciones de JEE como los EJBs. Interesante también lo que comentan en InfoQ sobre la definición de un nuevo formato de despliegue en esta plataforma (PAR) que facilite el trabajo con OSGi.
Quizás nos encontremos ante un punto de inflexión en el mundo de Java y los servidores de aplicaciones. Habrá que ver como evoluciona esta plataforma que además nos dará una idea del calado real de Spring en las empresas, ya que aunque en SpringSource comentan que es enorme y así lo muestran en sus estadísticas, la realidad es que mucha gente utiliza Spring para tareas simples. Queda también en abierto como puede afectar esto a las empresas que basan su stack tecnológico en una única plataforma como BEA, IBM, JBoss, etc. + Spring. ¿Se moverán estas empresas a Spring? ¿Se quedarán con lo que tienen y empezarán a temer el coger cosas de Spring?
El tiempo nos lo dirá. Yo por si acaso voy a dejar de predecir cosas que creo que con una acertada ya es suficiente :)
» Leer más, comentarios, etc...
Picando Código
¿Se puede rescatar OLPC de Windows? - Richard Stallman
Abril 30th, 2008 - [Enlace local]
Habrán leído la controversial notica, donde Nicholas Negroponte dijo que parte del fracaso de OLPC se debe a que usan Software “Open Source” (Más info en Alternaria TV).
La comunidad del software libre en general y la gente involucrada con el proyecto paró las orejas! Windows XP ha sido “adaptado” a estos aparatos, por lo que existe un gran peligro de que todo el proyecto sea ensuciado y pierda la base de todo lo que pretende ser, al involucrarse una empresa destructiva y con intereses tan opuestos al proyecto como Microsoft.
Richard Stallman escribe en su blog una declaración al respecto.
El siguiente texto está traducido libremente desde el blog de RMS:
Leí la declaración de Negroponte presentando la XO de OLPC como una plataforma para Windows en las circunstancias más irónicas posibles: durante una semana de preparación, con una fecha límite, para migrar personalmente a una XO.
Tomé esta decisión por una razón específica: libertad. Las IBM T23s que he usado por muchos años son adecuadas en práctica, y el sistema y aplicaciones que corren en ellas son totalmente software libre, pero la BIOS no lo es. Quiero usar una laptop con un BIOS software libre, y la XO es la única.
El software usual cargado no es 100% libre; tiene un programa firmware no-libre para correr el chip inalámbrico. Eso significa que no puedo promover la XO totalmente como es, pero fue facil para mí resolver ese problema para mi propia máquina: simplemente borré ese archivo. Eso hizo inoperativo al chip inalámbrico interno, pero puedo sin él.
Como siempre pasa, saltaron los problemas, los cuales demoraros la migración hasta la semana pasada. El viernes, cuando discutí algunos problemas técnicos con el staff de OLPC, también discutimos sobre cómo salvar el futuro del proyecto.
Algunos entusiastas del sistema GNU/Linux están extremadamente desilucionados por el hecho de que la XO, si es un éxito, no será una plataforma para el sistema que aman. Aquellos que han apoyado el proyecto OLPC con su esfuerzo o su dinero, pueden bien sentirse traicionados. Sin embargo, esas preocupaciones son empequeñecidas por lo que se apuesta acá: ya sea que la XO sea una influencia para la libertado o una influencia para el sometimiento.
Desde que se anunció la OLPC por primera vez, la hemos imaginado como una forma de llevar a millones de niños alrededor del mundo a una vida en la cual hagan su computación en libertad. El proyecto anunció sus intenciones de dar a los niños un camino para aprender sobre computadoras, permitiéndoles estudiar y tocar el software. Puede aún hacer eso, pero hay un peligro de que no lo va a hacer. Si la mayoría de las XOs que se usan actualmente corren Windows, el efecto en general va a ser el contrario.
El software propietario mantiene a los usuarios divididos e indefensos. Su funcionamiento es secreto, así que es incompatible con el espíritu del aprendizaje. Enseñar a los niños a usar un sistema propietario (no-libre) como Windows no hace del mundo un lugar mejor, porque los pone bajo el poder del desarrollador del sistema — tal vez de forma permanente. Pueden de la misma forma presentar a los niños a una droga adictiva. Si la XO se transforma en una plataforma para propagar el uso de software propietario, su efecto en general en el mundo será negativo.
También es superfluo. El OLPC ya ha inspiraco otras computadoras baratas; si la meta es solo hacer disponibles computadoras baratas, el proyecto OLPC ha triunfado se construyan o no más XOs. Así que, ¿porqué más XO? Entrega de libertad sería una buena razón.
La decisión del proyecto no es final; la comunidad del software libre debe hacer todo lo posible para convencer a OLPC de continuar siendo (aparte de ese paquete de firmware) una fuerza para la libertad.
Parte de lo que podemos hacer es ofrecer ayuda con el software libre propio del proyecto. OLPC esperó contribución de la comunidad a su interface, Sugar, pero esto no ha pasado mucho. En parte eso es porque OLPC no ha estructurado su desarrollo como para llegar a la comunidad por ayuda — lo que significa, cuando es visto en términos constructivos, que OLPC puede obtener más contribución empezando a hacer esto.
Sugar es Software Libre, y contribuir a él es una cosa buena. Pero no se olviden la meta: las contribuciones útiles son aquellas que hacen mejor a Sugar en sistemas operativos libres. Portearla a Windows está permitido por la licencia, pero no es algo bueno.
Estoy tipeando éstas palabras en la XO. Mientras viajo y hablo en las próximas semanas, hablaré de esto en los discursos para incrementar éste asunto.
Copyright 2008 Richard Stallman
Verbatim copying and distribution of this entire article are permitted worldwide without royalty in any medium provided this notice is preserved.
» Leer más, comentarios, etc...
Pwned's blog
Entradas recientes
Abril 30th, 2008 - [Enlace local]
- Codigo fuente de Windows Vista revelado
Asi como dice el titulo, el tan apreciado codigo de Windows Vista ha salido a relucir en algunos sitios de internet - caja negra para humanos
asi es amigos lectores como lo han leido ... SenseCam, un proyecto de investigación desarrollado en los laboratorios de Microsoft en Cambridge, pueda quizás encontrar una utilidad en el tratamiento de la dura enfermedad de Alzheimer. - Nvidia SLI para portatiles
NVIDIA y 20 fabricantes redefinen el concepto del juego en el portátil al introducir, por primera vez en el mercado - SYNC Microsoft
hoy viendo la televisión me sorprendi de ver un comercial donde mostraba como los reproductortes de música y los celulares pueden se manipulados por la persona que va manejando el vehiculo - MP3 acuático de Speedo
El MP3 acuático es un reproductor MP3 que seguro que es uno de los que más éxito tiene entre todos esos fans de la música que no pueden estar sin ella ni en el agua. - Intalar iPod Linux
Lo prometido es deuda en este post les mostrare como instalar Linux en su iPod, para el iPodLnux
» Leer más, comentarios, etc...
niko's mini factory
Links for 2008-04-29 [del.icio.us]
Abril 30th, 2008 - [Enlace local]
- Web Applications and OSGi
Spring-DM supports not just vanilla wars (available since 1.1.0 M1) but also Spring-MVC applications running inside OSGi.
» Leer más, comentarios, etc...
Najaraba.com: Software libre, negocios y más.
Patrones y mejores prácticas
Abril 29th, 2008 - [Enlace local]
Una de las ideas que me rondaba la cabeza hace tiempo es cómo aprendemos, y cómo enseñamos. Los últimos libros que he leido plantean estas cuestiones en base al concepto de patrones. Y me gusta. Patrones de cómo hacer las cosas en determinados contextos, proponiendo determinadas soluciones. También puedes aprender las tareas a realizar para resolver algo, si alguien te dice qué pasos debes dar,
» Leer más, comentarios, etc...
Programacion, literatura y otras artes menores
La voluntad es lo más importante
Abril 29th, 2008 - [Enlace local]
Es sabido que en Cuba la velocidad de internet, o incluso de la red nacional deja mucho que desear, por lo que la distribución de software libre o no libre, aquí hablamos de SL, debe ser mayormente de mano en mano; pues bien, los muchachos de linux-l ha tenido la excelente idea de crear un directorio sobre donde están los recursos… cuando no se puede por las buenas… se buscan alternativas ![]()
» Leer más, comentarios, etc...
Variable not found
Chuleta de librerías en cliente de ASP.NET Ajax
Abril 29th, 2008 - [Enlace local]
De nuevo en ASP.NET Resources encuentro una magnífica recopilación, en forma de chuletas de consulta rápida, de las librerías javascript disponibles en cliente usando ASP.NET Ajax. Puedes descargar el archivo pulsando sobre la imagen:
El archivo distribuido, un zip, contiene siete chuletas en formato PDF:
- Extensiones a los tipos
StringyObject - Extensiones a los tipos
NumberyError - Referencia del tipo
DomEvent - Extensiones al tipo
DomElement - Extensiones a los tipos
DateyBoolean - Eventos del ciclo de vida en cliente
- Extensiones al tipo
Array
Publicado en: www.variablenotfound.com.
» Leer más, comentarios, etc...
Arragonán
Tipos de libros sobre programación
Abril 29th, 2008 - [Enlace local]
Leyendo el post Programmers Don’t Read Books — But You Should en Coding Horror. Me ha hecho pensar dos cosas:
Que no conozco muchos programadores que lean libros técnicos y en qué tipos de libros resultan más útiles.
Principalmente encuentro dos tipos de libros, los de lenguajes/frameworks específicos y los de hablan sobre lo menos técnologico del desarrollo.
Aunque parece que Jeff Atwood no acaba de ver futuro a los libros sobre lenguajes/frameworks, a mi sí que me resultan realmente útiles y les veo un largo futuro. En mi opinión si quieres conocer ya sea un lenguaje, herramienta o framework una de las mejores formas de hacerlo es cogiendo un libro sobre el tema.
Sin ir más lejos hace un tiempo que estoy leyendo el libro POJOS in Action - Developing Enterprise Applications with Lightweight Frameworks, que toca diferentes frameworks Java de los que llaman(¿o llamaban?) ligeros y cómo utilizarlos en una aplicación empresarial. Que me está ayudando a refrescar la memoria sobre algún framework, profundizar un poco en algunos otros y conocer otros tantos; y, sobre todo, en cómo y cuándo utilizarlos.
Anteriormente me leí The Pragmatic Programmer, enfocado más hacia buenas prácticas de programación generales. Dentro del tipo de libros menos técnicos podrían entrar además temas de diseño de software, usabilidad, trabajo en equipo…
Para mi cada tipo de libro resulta útil en su contexto:
Unos para cuando quiero conocer algo concreto a nivel técnico, que leeré una vez y luego lo dejaré como referencia para dudas concretas.
Y los otros cuando quiero aprender temas más orientados a buenas prácticas, a diseño de software o a posibles formas de manejar situaciones fuera de lo puramente técnico; que podré leer varias veces con el tiempo para refrescarlo, y que también puede quedar como referencia para algo en concreto.
Por cierto, ¿alguien me recomienda algún buen libro sobre HTML+CSS para añadirlo a mi lista en amazon?
» Leer más, comentarios, etc...
Navegapolis
Herramienta para gestión Scrum, open source: iceScrum
Abril 29th, 2008 - [Enlace local]
La nueva versión de iceScrum tiene muy buena pinta. Quizá un pelín inestable, con algún error esporádico, pero no parece nada serio y apunta ya muy buenas maneras.
Hoy es la mejor herramienta para Scrum open source que conozco, y aunque la comunicación directa y la pizarra física pueden ser la mejor opción, en equipos distribuidos, o como herramienta de registro y respaldo en la intranet de la oficina, es para tener en cuenta.
» Leer más, comentarios, etc...
Navegapolis
Herramienta para gestión Scrum, open source: iceScrum
Abril 29th, 2008 - [Enlace local]
La nueva versión de iceScrum tiene muy buena pinta. Quizá un pelín inestable, con algún error esporádico, pero no parece nada serio y apunta ya muy buenas maneras.
Hoy es la mejor herramienta para Scrum open source que conozco, y aunque la comunicación directa y la pizarra física pueden ser la mejor opción, en equipos distribuidos, o como herramienta de registro y respaldo en la intranet de la oficina, es para tener en cuenta.
» Leer más, comentarios, etc...
soft·in·spain
Probando Ubuntu 8.04
Abril 29th, 2008 - [Enlace local]
Este post lo estoy escribiendo desde el firefox 3 que lleva por defecto el Ubuntu 8.04. Lo malo del FF3 es que no hay todavía muchas extensiones compatibles.
Lo he instalado en un Dell Inspiron 6400 con 1GB de RAM, en una partición de 40GB.
El único problema serio que he tenido ha sido con la tarjeta WiFi, pero conectando por cable al router, buscando un poco y aplicando todas las actualizaciones se ha solucionado satisfactoriamente. Incluso hace uso del led WiFi del portátil y de las combinaciones de teclas Fn que lleva.
He instalado el controlador propietario de la tarjeta ATI que lleva el portátil, y se ha notado la velocidad de las ventanas. Para probar he activado el máximo de efectos y aunque espectaculares, no le encuentro utilidad, por lo que he vuelto a poner lo mínimo; prefiero velocidad a apariencia.
No puedo decir mucho más, porque apenas hace unos minutos que lo tengo.
Mi intención no es otra que aprender, porque por mi trabajo cada vez me tengo que pegar más con el Linux, aunque en los otros equipos son servidores, siempre ayudará.
» Leer más, comentarios, etc...
Yet Another Programming Weblog
Generación automática de exploits aprovechando los parches
Abril 29th, 2008 - [Enlace local]
La idea, hay que reconocerlo, es buenísima: crear automáticamente el programa que explotará la vulnerabilidad que trata de solucionar un parche mediante la información del mismo parche. La generación se realiza a través de la comparación entre el programa parcheado y el original. El artículo que desarrolla las posibles técnicas es Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications. Parece que la cosa últimamente va de diferencias binarias :) (como en Actualizando el kernel Linux sin reiniciar )
Más comentarios en Bruce Schneier: Reverse-Engineering Exploits from Patches, programming reddit: Automatic Patch-Based Exploit Generation y LtU: Automatic Patch-Based Exploit Generation.
Actualización: Como Apunta Drizzt en las publicaciones de la gente de bindiff se examina más detenidamente el tema de la comparación binaria. En la misma entrada Drizzt también aporta algún enlace más al respecto.
La misma entrada y más comentarios en Generación automática de "exploits" aprovechando los parches en barrapunto
» Leer más, comentarios, etc...
programania
Zend_Form: donde generar el HTML
Abril 29th, 2008 - [Enlace local]
Uno de los mayores dilemas a la hora de usar el Zend_Form es gestionar la generación de HTML en la propia clase de Zend_Form. Como principio general dentro del MVC, el HTML debería generarse dentro de la vista. Nunca en un controller y menos en un Model (aunque sea un model de formulario y no de acceso a datos, eso da igual).
Mi solución es decidir qué decorators se aplicarán al formulario en la propia vista, mediante el uso de un helper. Veámoslo.
Código del formulario:
class DatosForm extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('Datos de facturación');
$this->setAttrib('id', 'datosfac');
$Nombre = new Zend_Form_Element_Text('Nombre');
$Nombre->setLabel('Nombre')
->setRequired(true)
->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Actualizar');
$this->addElements(array($Nombre, $submit));
}
}
Código del controller/action:
$form = new DatosForm();
/*
Aquí iría una gestión de validación del formulario, get, post, bla bla bla que no interesa para éste ejemplo
*/
$this->view->form = $form;
Código de la vista:
<? echo $this->sic_decorateForm($this->form,'label_noerrors');?>
Como puede verse, hasta aquí el Zend_Form sólo se encarga de definir qué campos, de qué tipos y con qué validaciones. El controlador sólo se encarga de gestionar el flujo de envío del formulario y la vista de mostrarlo. Cada uno tiene sus responsabilidades perfectamente definidas.
Clave está en el decorador “sic_decorateForm” al que se le pasan dos parámetros. El primero, el propio formulario, y el segundo una configuración de decorators llamada “label_noerrors” (que en éste caso significa que se decorará con labels, y que no se sacarán los errores).
El código del helper sería:
class Zend_View_Helper_Sic_decorateForm
{
public function sic_decorateForm(Zend_Form $form,$config)
{
$form->clearDecorators();
$form->setAttrib('class',$config);
$decorators = Zend_Registry::get('DECORATORS');
$decorators = $decorators[$config];
$form->addDecorators($decorators['form']);
$form->setElementDecorators($decorators['elements']);
return $form;
}
}
Como puede verse es el helper, llamado desde la vista, el que aplica los decorators al form. Y los decorators que se aplican los hemos decidido en la propia vista (¡bien!) . Además, se asigna la clase $config (en éste caso “label_noerrors”) al formulario. Lo que nos permitirá crear una clase de css con el mismo nombre que la configuración de decorators para controlar la apariencia del formulario no sólo a nivel de html, sino también a nivel de css.
Por último, ¿de dónde salen las configuraciones de decorators? Yo las he puesto en un fichero a parte, que cargo durante el bootstraping. Sería el siguiente:
$decorators = array();
$decorators['lista_ul']['elements'] = array(
array('ViewHelper'),
array('Description'),
array('Errors'),
array('Label', array('tag' => null, 'separator'=>' ')),
array('HtmlTag', array('tag' => 'li', 'class'=>'element-group')),
);
$decorators['lista_ul']['form'] = array(
array('FormElements'),
array('HtmlTag', array('tag' => '<ul>')),
array('Form'));
$decorators['label_noerrors']['elements'] = array(
array('ViewHelper'),
array('Label', array('tag' => null, 'separator'=>' '))
);
$decorators['label_noerrors']['form'] = array(
array('FormElements'),
array('HtmlTag', array('tag' => null)),
array('Form'));
Como puede verse existen dos configuraciones de decorators: label_noerrors y lista_ul. Hacerlo de ésta manera tiene otra ventaja: si quisiéramos cambiar la apariencia html del formulario sólo tendríamos que cambiar el parámetro $config con el que llamados al helper. Además, si a lo largo de nuestra aplicación tenemos varios formularios con la apariencia label_noerrors y queremos cambiar esa apariencia, con cambiar la definición de esa decoración cambiará en todos los formularios que la usan a la vez.
¿Qué os parece ésta solución? Yo por ahora no le he encontrado ninguna desventaja. ¿le veis alguna?
» Leer más, comentarios, etc...
Cerebro en la Sombra
Urchin vs. Analytics, la batalla se libra en casa
Abril 29th, 2008 - [Enlace local]
Webalizer (con su excelente fork continuado awffull) y awstats han tenido históricamente fama de contar visitas y páginas de más, sobre todo desde que Google abrió al público su Analytics y ya nada volvió a ser lo mismo. Hace años tuvimos alguno de nuestros proyectos auditado por OJD y la diferencia con webalizer era mínima, sin embargo las distancias con Analytics son abismales.
Analitycs surge de la compra de Urchin por parte de Google en 2005, otro clásico del software para estadísticas web. Analytics se lanzó primero en beta muy cerrada y bastante después la abrieron completamente al público. Desde el primer día todos nos hemos dado cuenta de las enormes diferencias de datos que había entre lo que contaban nuestros analizadores de logs y lo que contaba Analytics.
Recientemente necesitaba valorar las estadísticas de acceso a distintos proyectos móviles y la única herramienta de la que disponía era el querido webalizer, pero ¡cómo fiase de sus datos!. Analytics no es una opción en este entorno ya que la inmensa mayoría de terminales no soportan Javascript, con lo cual no va a funcionar la contabilización de páginas. Se me ocurrió entonces probar Urchin Software, la última versión del software comprado por Google y que ellos mismos distribuyen y en el que, se supone, se basa Analytics. Aunque el precio de la licencia sea posiblemente prohibitivo para la mayoría, tenemos una versión de prueba de 3 meses, así que dicho y hecho, la descargamos la instalamos y comenzamos a monitorizar nuestros sites móviles. La sorpresa fue mayúscula al cabo de un par de días cuando comprobamos que el resultado es prácticamente el mismo que con webalizer. No nos lo podíamos creer, así que decidimos monitorizar sites también controlados por Analytics para comparar, comenzando por el blog Restaurantes en Madrid. Al cabo de unos días volvimos para comparar el resultado y nos sorprendimos de nuevo. Resultados semejantes a webalizer y completamente distantes de Analytics. Pero ahora la diferencia era enorme, estamos hablando del doble con creces de visitas y páginas que nos muestra Urchin respecto a Analytics.
Urchin (o webalizer, o awstats) se basa en el análisis de logs de acceso del servidor web, mientras que Analytics lo hace a través de Javascript. No cabe duda alguna de que el primer método ha de ser, por fuerza, mucho más creíble y eficaz ya que se basa en peticiones HTTP recibidas de verdad, mientras que el segundo método confía en que el cliente tenga Javascript. Pero ¿qué ocurre con clientes sin Javascript?, más aún, ¿qué pasa con los accesos a feeds?, ¿son visitas no contabilizadas y perdidas? Pues sí. Osea, la herramienta de estadísticas web por excelencia está contabilizando, al menos, un 20% (según he leído en algún sitio) de tráfico menos de lo que en realidad tienes y aún así se ha convertido en el estandar, no lo puedo entender. ¿Los que te leen por RSS no son visitantes también? Se ve que no… La única razón que se argumenta en favor de Analytics es que así no cuenta tráfico proveniente de los robots de los buscadores, pero no dicen nada de los efectos colaterales.
Las críticas que se puedan aplicar a webalizer o a awstats son exactamente las mismas que puedes echar sobre Urchin, con la diferencia de que este último cuesta la nada desdeñable cifra de 3.000 euros. Sin embargo te habrás gastado este dineral para obtener unas cifras nada parecidas a Analytics. Cuando vayas a vender tus espacios publicitarios qué datos vas a enseñar, los de Urchin o los de Analytics, o mejor aún, cuales te van a pedir tus anunciantes?.
» Leer más, comentarios, etc...
xailer.info (esp)
Súper descuento en Xailer
Abril 29th, 2008 - [Enlace local]
Súper descuento en Xailer para usuarios no europeos.
Debido a la fuerte revalorización del euro frente al dolar hemos decidido realizar una campaña promocional de Xailer para nuevos usuarios no europeos que pretende eliminar esa gran diferencia de paridad entre ambas monedas. Durante sólo 15 días (8-Mayo-2008) podrá acceder a cualquier versión de Xailer con más de un 37% de descuento.
No deje pasar esta gran y única oportunidad.
» Leer más, comentarios, etc...
Buayacorp
Realidad (¿ligeramente?) distorsionada de un bug
Abril 29th, 2008 - [Enlace local]
Un fenómeno que últimamente noto en relación a WordPress — al menos en bloggers hispanos, es que cada vez existe menos tolerancia a los errores que se presentan en cada versión. En mi opinión, estos errores se deben principalmente a que el proceso de desarrollo de este CMS y el código en si, son en cierta forma desordenados; pero por otro lado, la comunidad tampoco ayuda mucho en el reporte de errores, me pregunto ¿cuántos de los que lo usan y usualmente se quejan han tomado parte de su tiempo para reportar algún fallo o comportamiento erróneo en el lugar adecuado?.
He leído también por ahí a un blogger que comentaba que con usar y darle “publicidad” (léase enlaces) a WordPress era más que suficiente para de cierto modo “pagar” por el uso de éste, pero particularmente creo ese comportamiento se aleja de lo que debería ser y/o hacerse en una verdadera comunidad de un proyecto de Software Libre.
En fin, todo este desvarío de ideas se debe a un curioso caso que empezó con una entrada que publicó Héctor titulada “Bug grave en WordPress 2.5.1“, a lo cual — probablemente por el título — otros bloggers escribieron entre otras cosas (negritas intencionalmente resaltadas):
Un gran problema de seguridad presenta la ultima versión de Wordpress 2.5.1, gracias a la ayuda de sigt tenemos una simple y rápida solución. S recomienda modificar estos archivos ya que el bug no estara resuelto hasta la proxima version de WP 2.5.2
Pues sí, salió la actualización WordPress 2.5.1, y ya han descubierto un bug de seguridad. Además, si usaban el plugin XML Sitemaps actualícenlo ya a la última versión si no quieren que su servidor eche humo.
[…] Por otro lado, apenas salió la actualización, se encontró un nuevo error bastante crítico, como explican en SigT y Bitperbit, el cual ya tiene solución. […]
Ahora, supongo que a cada uno le corresponde determinar que tan grave es no poder resetear la contraseña de sus propios blogs, “afortunadamente” para mi, hasta el momento no tuve la necesidad de hacer eso ni una sola vez.
Finalmente, me gustaría acotar que este “gravísimo” error se produjo porque había que corregir un problema de seguridad real y el que hizo la corrección no se percató del código que dependía de dicha funcionalidad — posiblemente si se usaran pruebas unitarias y de integración se evitarían este tipo de casos.
» Leer más, comentarios, etc...
Picando Código
Entrada nº 300
Abril 29th, 2008 - [Enlace local]
Éste post es a forma de celebración, ya que llevo 300 posts publicados en el blog! Éste es el número 300… Y qué mejor que poner una foto de tan espectacular película (300).
Tonight, we dine in hell!
¡Gracias a los lectores, “comentadores”, y demás amigos y conocidos que motivan la evolución y crecimiento del blog!
» Leer más, comentarios, etc...
Pensamientos ágiles
Opinión sobre Spring Batch
Abril 28th, 2008 - [Enlace local]

Tenía pendiente desde hace unos días escribir algo sobre uno de los componentes de Spring más desconocidos: Spring Batch. Desde luego, Spring Batch ni suena, ni es uno de los componentes más sexies o excitantes con los que uno se vaya a encontrar en su vida laboral, a fin de cuentas los batches son una de esas cosas que cuando te la nombran ya se te ponen los pelos como escarpias; pero el caso es que es uno de esos frameworks oscuros que hacen su labor.
Hace unas semanas, tuve la oportunidad de jugar, no dejó de ser un juego, con esta librería durante unos días, y la verdad es que tengo que reconocer que quedé mucho más satisfecho de lo que me experaba. Me explico. Cuando uno se enfrenta a la página principal y de features del framework, uno se queda con el sabor de boca de que está delante de algo en los que sus creadores se han pasado de rosca. "Overengineered para lo que quiero hacer", es lo primero que pensé yo.
Aún así, conforme vas adentrándote en su documentación, y vas comprendiendo sus conceptos, y sobre todo conforme vas implementando algo de código, te das cuenta de su modularidad. En especial en un mundo, el de los batches, donde literalmente "vale todo", y los programas tienden a ser los más monolíticos, sucios, incomprensibles y difíciles de mantener por lo general que uno se pueda encontrar. Que conste que esto que pongo se basa única y exclusívamente en mi experiencia laboral (que no es realmente muy amplia), pero es que siempre que me ha tocado lidiar con algún proceso batch, siempre ha sido la parte que a todos nos daba miedo tocar. Tanto da que sea un proceso que realiza un cálculo de gestión de costes cada mes, o un proceso que cierra cuentas de traders y envía informes a medianoche en Java, o un proceso que extrae noticias de fuentes cada cinco minutos y las va procesando. Siempre es lo mismo. No sé que pasa que con este tipo de procesos periódicos, la cosa siempre se lía.
Por eso uno, después de desarrollar un pequeño batch con Spring Batch se da cuenta de que mmmm, quizás el diseño no sea excesivo, es más, por fin creo que tengo delante de mi un batch realmente mantenible.
Si estáis pensando que Spring Batch es una librería cuyo uso sólo se aplica a aplicaciones bancarias que procesen enormes cantidades de registros a medianoche, estáis equivocados. Esta es una herramienta realemente aplicable a un amplio número de procesos ya que se basa en unas abstracciones muy generales. En mi opinión, Spring Batch no es realmente un framework si no un esqueleto de aplicación de procesado de datos. Y como tal, se puede aplicar a muchos entornos y problemas.
Describiéndolo muy rápidamente, Spring Batch define lo que son Trabajos que a su vez están definidos en tareas:
<bean id="footballJob"
class="org.springframework.batch.core.job.SimpleJob">
<property name="steps">
<list>
<!-- Step Bean details ommitted for clarity -->
<bean id="playerload" parent="simpleStep" />
<bean id="gameLoad" parent="simpleStep" />
<bean id="playerSummarization" parent="simpleStep" />
</list>
</property>
<property name="restartable" value="true" />
</bean>
Spring Batch se encargará de ejecutar estos trabajos y tareas y de repetirlos si se ha producido un error y cosas así, pero también de lo que quizás sea más importante: de guardar contabilidad de todo lo que ha pasado con estos trabajos y tareas en base de datos.
| JOB_EXECUTION_ID | JOB_INSTANCE_ID | START_TIME | END_TIME | STATUS |
| 1 | 1 | 2008-01-01 21:00:23.571 | 2008-01-01 21:30:17.132 | FAILED |
Así, por ejemplo si nuestro proceso batch fuera un demonio que lee noticias RSS de diferentes sitios web (por poner algo diferente a bancos y todo esto) y las almacena en base de datos. Tendríamos un trabajo (o varios) con diferentes tareas que se encargarían de recoger las noticias y almacenarlas. Lo genial de Spring Batch es que podríamos configurar estas tareas como repetibles en caso de error, y que Spring Batch iría rellenando la tabla que veis arriba con los resultados de las diferentes ejecuciones. Sin ningún esfuerzo estamos obteniendo una enorme transparencia y monitorabilidad en nuestra aplicación.

Bueno, para mi esto que he explicado es lo más importante. A mayores Spring Batch ofrece muchas más cosas. Por ejemplo, cada trabajo podrá utilizar diferentes Writers, Readers o Transformers. Spring Batch viene por defecto con diferentes tipos de Readers para leer ficheros planos, XML o datos de base de datos. Estos Readers se configuran con una especie de mapeo entre registros y objetos de modo que algo en principio complicado como:
ID,lastName,firstName,position,birthYear,debutYear
"AbduKa00,Abdul-Jabbar,Karim,rb,1974,1996",
será traducido en:
public class Player implements Serializable {
private String ID;
private String lastName;
private String firstName;
private String position;
private int birthYear;
private int debutYear;
por obra y gracia de Spring Batch. Esos datos podrían por ejemplo ser transformados con cadenas de transformadores en base a diferentes reglas y posteriormente almacenados utilizando un Writer a base de datos con su correspondiente mapeo entre los diferentes campos y las columnas de una tabla que recoja esos datos.
En fin, que no quiero aburriros mucho, que realmente creo que la gente de Spring ha hecho un buen trabajo al recopilar patrones comunes en las aplicaciones de manejo de datos, ofreciento artefactos para leer, tratar y almacenar estos datos, para ejecutar, parar, saltarse o repetir tareas sobre estos datos, y para monitorizar el estado de las ejecuciones del proceso sobre estos datos. Todo este trabajo nos permite hacer aplicaciones de tratamiento de datos, es decir aplicaciones batch, realmente mantenibles, aunque tenga el coste inicial de comprender y acostumbrarse al framework.
¿Alguno tiene alguna experiencia con Spring Batch que quiera compartir?
» Leer más, comentarios, etc...
Picando Código
Comentario negativo sobre el FLISOL en Uruguay
Abril 28th, 2008 - [Enlace local]
Recibí el siguiente comentario en el post sobre el FLISOL:
La FLISOL en Uruguay es una autentica burla, comparada con la que hacen en otros países. La gente aca en Uruguay no encara nada y son una manga de vagos. No saben ni lo que es compiz, ni anaglyph plugin ni slackware, y lo peor son instaladores o gente de alto porte :O Si siguen así, lo único que les queda es la ruina y la humillación de la gente que realmente encara en Uruguay. Ponganse las pilas, es en serio.
Por momentos dudé, si borrarlo y dejarla pasar, o escribir algo al respecto. Para empezar, el opinólogo no dejó su nombre o e-mail, simplemente asumió una identidad falsa:
h4×0r
http://linux.net.uy(dead) | h4×0r@hotmail.com | 190.134.2.170
Miren, se cree re “l337″ porque escribe “h4×0r”. En vez de sacar algo negativo del tema, vamos a convertirlo en algo positivo. Aprovechar la oportunidad para RECONOCER y AGRADECER el esfuerzo y dedicación de todas las personas que hicieron posible el FLISOL 2008 en Uruguay. Gente que se reunió durante varias noches, que coordinó lugar, recursos, que probablemente tomó mucho café y mate para contrarestar el sueño, que se debió cansar, seguramente hasta frustrarse más de una vez, para que las cosas salieran.
Ahora, gente como éste que comentó, hay siempre. Siempre que alguien haga algo bien, va a haber gente envidiosa, mala leche, o como quieran llamarlos, tratando de ensuciar. No sé con qué recursos cuente el FLISOL en otro países de Latinoamérica, y sinceramente, no me interesa. Nosotros somos cuatro gatos locos, un país chiquito e insignificante. Sin embargo, éste año el FLISOL se realizó en 7 de 19 departamentos con buenos resultados. Además, el objetivo de ésto es la unión, así que aunque sea con 4 personas y 2 máquinas, el FLISOL de cualquier ciudad es bienvenido.
Yo asistí en Montevideo, no puedo hablar por los demás. Y me parece que no fué ni una burla ni humillante. Al contrario, había gente que sabe mucho, gente que sabe un poco menos, y gente que no había tocado GNU/Linux en su vida. La organización fue excelente. No se necesita tener el apoyo de empresas, ni de miles de personas, como dijo Christian Serrón en su charla: “Es más importante un novato con ganas de aprender que un genio introvertido”.
Yo ví mucha gente con ganas, lo vengo viendo siguiendo la lista de noticias de comunidad, los blogs de algunos organizadores, todos con una dedicación tremenda a que esto saliera bien. Seguramente vos te considerás un genio, ¿no? Digo, porque sos mejor que todos los que hicieron el FLISOL.
Ahí tenés, querías atención, lo lograste, estamos todos atentos a lo que dijiste. Siempre es más fácil hablar que hacer. Hay una canción de unos amigos (NadaQueHacer - Frágil) que dice:
“Pensar no es fácil, mover la lengua no tiene dificultad”.
¿Ganaste algo? Como persona, ese comentario, ¿ayudó a tu crecimiento personal? ¿A tu satisfacción? ¿Te descargaste? Si te sentís fuera de todo este movimiento, es por tu culpa. Si querés formar parte, no hay más que unirse, poner un poco de ganas, y colaborar. Eso sí, el movimiento del Software Libre es constructivo, vos no vas a llegar lejos con tu pensamiento destructivo.
A los lectores en general disculpen éste post, pero la verdad que me indigna ésta gente que le encanta hablar y criticar, pero al momento de actuar, no hacen nada. El FLISOL estuvo buenísimo, los de afuera son de palo!
» Leer más, comentarios, etc...
MadeInFlex
Oferta Laboral: Kimberly Clark
Abril 28th, 2008 - [Enlace local]
Descripción de la Empresa:
Kimberly Clark Services S.A. es una empresa Argentina que provee servicios informáticos para Kimberly Clark Corp.
Kimberly Clark se dedica a la manufactura de productos de consumo derivados del papel, entre otros: Kleenex, Kotex, Cottonelle, Huggies, etc.
Descripción de la plaza:
2 posiciones de Analista Programador RIA Sr. / S.Sr. en Flex 2.0/3.0 con conocimientos de Cairngorm u otra implementación de MVC y experiencia comprobable con ActionScript y desarrollo web.
Requisitos y conocimientos:
AS2, AS3, Web Services, Flex 2.0, Flex 3.0, Cairngorm
Localidad y tipo de contrato:
Buenos Aires, Argentina. Trabajo por contrato, full time (9am – 6pm), por el periodo del proyecto (4 meses).
Salario bruto:
En función de los conocimientos del candidato.
Contacto
Jonatan Urfalino
Teléfono +54 (11) 5355-5524
jonatan.urfalino@kcc.com
» Leer más, comentarios, etc...
Yet Another Programming Weblog
Entrevista a Mario Bunge
Abril 28th, 2008 - [Enlace local]
Nota: Si eres lector de planeta código y sólo te interesa el desarrollo, sáltate esta entrada. Pero es un enlace que me parece de interés general :)
Vía Cuchitril Literario me encuentro con una buena pero breve entrevista a Mario Bunge. En ella se dice de la filosofía de Heidegger:
[...] se aprovechó de la tradición académica alemana según la cual lo incomprensible es profundo.
[...] fenomenología, existencialismo, esas cosas abstrusas que nadie entiende pero si usted dice que no entiende, pasa por tontoO dicho de otro modo: no todas las veces que no entiendes algo es porque tú seas limitado. Plantéate que quizás no tenga ningún sentido...
Mario Bunge en la wikipedia
La misma entrada y más comentarios en Entrevista a Mario Bunge en barrapunto
» Leer más, comentarios, etc...
Picando Código
FLISOL 2008 - Montevideo, Uruguay.
Abril 27th, 2008 - [Enlace local]
Volvimos del FLISOL!
En el día de ayer, Latinoamérica se unió para celebrar el software y la cultura libre. a través del Festival Latinoamericano de Instalación de Software Libre. Uruguay participó en varias ciudades.
Me junté con Jorge, Franciso y su novia, y salimos para Montevideo. En verdad salimos más tarde de lo que habíamos planeado, pero lo importante era asistir!
Llegamos a la Fundación de Cultura Informática en la tarde, y nos registramos en la entrada. En el lugar, habían afiches de software y cultura libre, muchos colaboradores y voluntarios ofreciendo orientación y ayuda, burn stations, demos, etc.
Una lástima la cantidad de charlas que nos perdimos, pero bueno, para la próxima organizamos mejor!
La pasamos muy bien y asistimos a unas pocas charlas, pero resultaron interesantes. Les dejo con las reflecciones de Fernando Da Rosa y Christian Serrón, dos de los oradores, y parte de la organización:
Fernando Da Rosa - FLISOL 2008
Christian Serrón - Reflexión final FLISOL 2008 Montevideo - Uruguay.
Se siente bien haber participado con un evento tan grande y tan internacional como lo es el FLISOL. Un continente entero se organiza para llevar a cabo un mismo festival. Increíble…
Como anécdota, los 4 que fuimos desde Maldonado, ganamos en un concurso final. En él sorteaban cd’s de Ubuntu y Kubuntu, pegotines varios, y el libro “Guía práctica sobre Software Libre”, de Fernando Da Rosa y Federico Heinz, que ya comenté en su momento. Ahora sí, a leerlo y difundirlo.
Me tomé el atrevimiento de tomar prestada la siguiente foto del blog de Fernando Da Rosa, donde me encontré:
» Leer más, comentarios, etc...
Picando Código
Novedades en el Foro - Semana 2
Abril 27th, 2008 - [Enlace local]
En ésta semana, tenemos como novedad la inclusión de nuevos miembros al foro. Algunos ya se han animado a presentarse en el foro de Presentación.
En el animado foro de Flamewars, han surgido algunas viejas peleas: KDE vs. GNOME (y XFCE), GNU vs. Linux (RMS vs. Linus), y repasamos la Definición: Flamer, flame war, guerra santa. Importante recalcar que tomamos los flamewars de forma no muy seria, y lo usamos como una descarga.
En el área de Programación, esta semana se movió un poco más, y tenemos un par de temas bastante interesantes. Tenemos una “encuesta”: Encuesta de Lenguajes de Programación, donde expresamos nuestros puntos de vista respecto al futuro de los lenguajes. Diego nos pregunta Con que lenguaje empiezo??, y le respondemos varios puntos de vista distintos.
En el foro de Software Libre, más específicamente en Distribuciones GNU/Linux, el destacado de la semana es Ubuntu 8.04, que inicia discusiones en los siguientes temas:
- Se acerca una Garza Resistente…
- Publicado Ubuntu 8.04 Hardy Heron Final
- Características de Ubuntu 8.04
- Hardy Heron viene con “mucho envoltorio”
Además, tenemos también el foro de Ayuda con GNU/Linux, donde hemos intentado ayudarnos en los siguientes temas:
Además, JSanches nos explica cómo setear tu propio password de root en Ubuntu.
Ésto es parte de lo que se ha movido nuestro foro en ésta semana. Animate a darte una vuelta, y compartí con nuestra comunidad.
» Leer más, comentarios, etc...
Cerebro en la Sombra
Excursiones de fin de semana: Culla
Abril 27th, 2008 - [Enlace local]
Creo que ya todos os habéis dado cuenta que me gusta el interior de la provincia de Castellón. En contraste con el turismo de playa de su costa (Benicassim, Oropesa del Mar, Peñíscola…), dispone de una impresionante colección de pueblos en su interior montañoso.
Hoy nos vamos a Culla. Situada a unos 130km de Valencia, Culla es el típico pueblo medieval bien conservado y con mucho encanto. Para llegar a Culla hemos de pasar por varios pueblos de la geografía castellonense donde puedes hacer parada y no te arrepentirás. Nosotros hicimos dos paradas:
- La Pobla Tornesa, para almorzar y comprar pan, ¡pan de verdad! Es una vieja costumbre que tengo, comprar pan cuando voy a los pueblos, es lo más auténtico que puedes encontrar y nada que ver con el que comes a diario en las ciudades :).
- Benassal, con parada en el balneario Font d’En Segures donde puedes aprovechar para beber y llevarte algo de agua. Íbamos con unos conocidos de allí y nos llevaron a conocer la zona.
Durante el camino tendrás casi siempre a la vista el Penyagolosa, el segundo techo montañoso más alto de la Comunidad Valenciana con 1813m y declarado Parque Natural por la Generalitat Valenciana en 2006.
Y llegamos a Culla, declarado conjunto histórico artístico y con su casco antiguo rehabilitado, pertenece, al igual que Morella, a la zona conocida como El Maestrazgo.
Enclavada en la base de un antiguo castillo árabe, Culla pasa a dominación cristina en 1233. Las ruinas actuales del Castillo son fruto de las Guerras Carlistas. Culla conserva restos de murallas, torreones y palacetes. Puedes apreciar bastantes escudos heráldicos a lo largo de las calles del pueblo.
Desde lo alto del castillo tendrás unas impresionantes vistas de la zona.
Continuando por la carretera de Culla a Torre Embesora nos encontramos con La Carrasca de Culla, considerada la encina más grande de España y Europa y declarada Árbol Monumental de la Comunidad Valenciana. Creedme que impresiona. La tradición popular dice que bajo su copa se pueden sentar mil personas.
Justo al lado del árbol nos encontramos con el Restaurante La Carrasca, donde haremos parada para comer. Posiblemente todo estará impresionante, pero nosotros íbamos directos y con las mandíbulas babeando a por una gran torrà de chuletas de cordero y embutidos acompañados de ajoaceite. No hay fotos del momento, no tengo costumbre de fotografiar los platos, prefiero dejar esos menesteres a los chicos de Cucharete, pero os puedo decir que nadie salió defraudado. La gastronomía de Culla, al igual que toda la zona, se basa en carnes a la brasa y embutidos.
Para finalizar la ruta siempre puedes terminar después de comer con un paseo por Morella.

