Archivo de la categoría ‘software’

Plan Ceibal, o la apuesta decidida por la educación

Plan Ceibal UruguayEl Plan Ceibal uruguayo es una inicativa inspirada en la filosofía OLPC (One Laptop per Child) que se basa en establecer un programa educativo alrededor de estos portátiles baratos, dotando a profesores y alumnos con estos equipos y estableciendo algunos programas de software educativos y de trabajo en equipo para ellos. Estos días por Uruguay he podido constatar que no sólo es un plan, es una realidad en toda regla y se ven chavales por la calle con el portátil, llamado XO, vichando cosas.

Me resulta sorprendente que en un país como Uruguay, de tan sólo 3 millones de habitantes y una renta per cápita de menos de la mitad de la Española se haya puesto en marcha esta iniciativa mientras que en otros países, como España mismo, veamos que las disputas absurdas por la educación hagan que la calidad baje. Si el centro del debate está en asignatura de religión sí o religión no como hasta ahora, nos podemos hacer una idea de lo claro que lo llevamos.

El futuro de un país es la educación y el conocimiento de sus ciudadanos, por encima incluso de otros factores como los recursos naturales que pueda tener. ¿Dónde estarán dentro de 15 años los chavales que vichan su laptop en Montevideo y los que pasan de todo en España? Yo lo tengo clarísimo.

Friday, November 13th, 2009

PHP tercero en ránking de lenguajes de programación

70881947v1_350x350_front_color-blackwhiteMe he enterado de esto vía VivaPHP y me ha pillado totalmente de sorpresa. PHP iba subiendo últimamente en la lista TIOBE, que hace una medición de los lenguajes de programación más populares, a pesar de lenguajes de programación modernos como Ruby o Python, con características muy interesantes y en muchos casos superiores a lo que puede ofrecer PHP.

La razón de esta subida para mí es clara. Es un lenguaje con una curva de aprendizaje muy rápida (sencillo, vamos) con el que se pueden hacer cosas más que suficientemente potentes en web (está diseñado para este entorno), gracias a su flexibilidad. La orientación a objetos ha mejorado en los últimos tiempos, atrás quedaron los proyectos desordenados gracias a Frameworks como Symfony, Zend, Cake PHP o Code Igniter y ya hay IDEs muy completos que lo soportan como Netbeans o Eclipse. También tenemos ORMs muy activos como Doctrine o Propel.

Además, como bien apuntan en VivaPHP, los dos lenguajes que le preceden no son exclusivamente Web, por lo que posiblemente PHP se ha confirmado como lenguaje Nº1 para la construcción de Sitios Web.

Tuesday, October 27th, 2009

Relación Cliente Proveedor en Software (con humor)

Hace no mucho mencionaba que hace falta un divulgador de desarrollo de software como Punset es a divulgador científico. Muchas veces el desconocimiento de lo que es, cómo se afronta y se planifica, lleva a situaciones como las de este vídeo, de los mejores que he visto en mucho tiempo (mejor activando subtítulos en castellano abajo a la derecha)

Sunday, October 25th, 2009

El Arte del Desarrollo de Software

Me he revuelto en mi asiento leyendo un par de posts acerca del Desarrollo de Software o Ingeniería de Software y su control y gestión a propósito de una publicación de Tom DeMarco, un antiguo gurú en esto del Software, que se retracta de la visión sobre la gestión de los proyectos de software que escribió hace muchos años, especialmente en la parte de control y medición.

El Control de Software, dice Tom DeMarco, cuesta dinero y esfuerzo. Para un proyecto de 1 millón de dólares que va a producir 1.1 millones de facturación, el control es importatisimo. Para un proyecto de parecido coste que va a producir 50 millones, el control no es tan importante. Entonces: deberíamos enfocarnos sólo en el segundo tipo de proyectos. No dice que el control y la medición no sean necesarios, pero es cierto que en la mayoría de los proyectos, sobretodo en los mejores, el control, teniendo en cuenta el coste que tiene en todos los sentidos, puede no ser importante.

Es evidente que el control es necesario en el mundo actual, los proyectos de software se integran en el mundo empresarial… pero hay que saber qué hay que controlar, y cuanto menos sea necesario ese control, mejor.

Quizá está en los genes del ser humano querer controlar. O quizá esté en el propio raciocinio el miedo a perder el control de lo que le rodea que se convierte en obsesión en ciertos individuos. Quién no ha visto alguna vez al típico jefazo, normalmente sin idea de software ni intención de tenerla, perdiendo su propio control y blasfemando acerca de los desarrolladores.

Hemos tratado de encapsular los proyectos de software bajo los parámetros clásicos de gestión de proyectos, tiempo, coste y calidad, nos hemos roto la crisma y posiblemente haya sido un error y hayamos perdido el tiempo miserablemente.

Echando la vista atrás, viendo los proyectos en los que he participado y cuáles han sido los más exitosos, me salen una serie de factores básicos comunes que hablan de gente más que de otra cosa:

  • Contar con buenos desarrolladores a los que les guste su trabajo, mejorar, aprender, disfrutar de la tecnología.
  • Contar con un ambiente en el que haya confianza entre los desarrolladores y la gente de negocio, capaces de comunicarse y entender posiciones.
  • Contar con desarrolladores que sean capaces de ver más allá del código, que entiendan los objetivos finales y se impliquen con ellos.
  • Contar con gente de negocio que sepan comunicar esos objetivos y ser flexibles a cambios según avance el desarrollo de software, abiertos a encontrar limitaciones y soluciones alternativas.
  • Contar con desarrolladores con experiencia, que sepan estimar esfuerzos, expectativas, anticipar problemas, en base muchas veces a “feeling” y experiencias pasadas.
  • Contar con gente de negocio que se preocupe por entender la tecnología, con experiencia desde el punto de vista de usuario.

En resumen, se me ocurre que un proyecto de software está destinado al fracaso si:

  • El coste y tiempos de desarrollo es crítico para el éxito del proyecto.
  • Hay que ahorrar a toda costa, mejor becarios y personal junior a tutiplén que gastarse el presupuesto en gente buena.
  • No hay tolerancia a tiempos y margen.
  • No hay interés por entender la tecnología.

Realmente el control de software, la predicción precisa y la anticipación del resultado final del producto, es ciencia ficción, como se concluye en el artículo. Siempre tendrá un componente experimental. Algunos de mis profesores de gestión de proyectos, admitían, como hace Tom DeMarco, que a lo mejor han acertado una o dos veces con la planificación de un proyecto en toda su vida (esto se llama casualidad).

Cada día estoy más convencido de que el desarrollo de software se acerca más a un arte. Nunca dos desarrolladores escribirían el mismo código, posiblemente ni parecido. Nunca se acertará en el tiempo ni el coste, y la calidad dependerá más de quién lo hace y las circunstacias del momento. ¿No suena esto a algo artístico?. Ya lo dice el eslogan de Wordpress: Code Is Poetry.

De recomendable lecura las reflexiones de Jeff Atwood y Ricardo Galli

Monday, August 3rd, 2009

Unir Documentos PDF en Linux

pdf1Últimamente ando atareado escaneando y enviando documentos para algunas cuestiones adminstrativas. Al no tener la posibilidad de tener Adobe Acrobat (el editor, no el reader) en Linux, hay que buscarse un poco la vida para poder unir varios documentos PDF en uno solo. Especialmente útil si has estado escaneando documentos con el Xsane y llegas a tener varias decenas que unir.

Hay una utilidad fantástica para eso, con un nombre muy descriptivo: JoinPDF. Se utiliza por command line, y la sintaxis, igualmente, no puede ser más sencilla:

joinPDF fichero_destino.pdf fichero1.pdf [fichero2.pdf ...]

Probado y funcionando a las 1000 maravillas, muy recomendable.

Monday, April 13th, 2009

Lightning y Thunderbird como alternativa a MS Outlook

thunderbird_20Una de las grandes barreras para cambiar de sistema operativo, al menos en mi caso, es la falta de estándares en aplicaciones típicas de oficina, como Word, Excel y sobre todo Outlook. En el caso de Outlook es especialmente crítico, ya que el sistema de calendario, invitaciones a reuniones, etc… es totalmente necesario en entornos de trabajo corporativos.

Por fin he encontrado la manera de compatibilizarlo con un plugin para Thunderbird y poder emular totalmente el sistema de invitaciones de Outlook, es el Thunderbird Lightning. Lo he probado durante unas semanas y la compatibilidad es prácticamente total.

Además se le puede añadir el plugin Provider for Google Calendar, con lo que además podemos compartir el calendario online con otros usuarios / estaciones de trabajo. Una solución realmente interesante.

Monday, March 30th, 2009

Google libera Jaiku!

La noticia, leída en Genbeta, es de lo más sorprendente en lo que afecta al Software Libre que he leído en mucho tiempo. Google ha decidido liberar el código de Jaiku en Python, bajo licencia Apache, para fomentar el uso del AppEngine.

Un poco de historia

Allá por principios de 2006, empezaba a sonar fuerte el microblogging, con Twitter como servicio estrella. La verdad es que Twitter parecía una aplicación extremadamente sencilla, sin muchos añadidos: se podía microbloggear, tenías tu red de microbloggers… y poco más. El servicio estaba caído cada dos por tres, mostrando unos gatitos en sus páginas de error que aseguraban haberla pifiado. Al menos se lo tomaban con humor.

Al poco tiempo salió Jaiku a la palestra. Parecía que se lo iba a merendar. Se podían integrar otros feeds, la integración con el móvil más lograda… y además parecía que el servicio era más estable y tenía menos interrupciones que Twitter (algo que por otra parte, tampoco parecía muy difícil de conseguir). En definitiva, aparentemente un servicio mucho mejor.

Google compró Jaiku en Octubre de 2007 y todos pensaban que iba a arrasar… pero no ha sido así. De hecho, no le ha llegado ni a la suela de los zapatos a Twitter en cuanto a tráfico y notoriedad se refiere. ¿Efecto red? ¿Triunfo de lo sencillo? Posiblemente ambas cosas.

Liberar Jaiku supone reconocer un error estratégico y la derrota frente a Twitter. Algo bueno tendría que tener Twitter, que hasta Facebook parece estar copiando su interface ahora!

Sunday, March 15th, 2009

Rendimiento de Wordpress en VPS

Tener un Wordpress en un servidor virtual con pocos recursos puede hacer que el rendimiento sea bastante pobre y la ejecución sea muy lenta. Esto puede pasar especialmente en el panel de administración, donde hay múltiples peticiones htp. 

Esto tiene solución, siempre que el tráfico en el sistema no sea demasiado alto. Una cosa que da muy buen resultado es ajustar la configuración de Apache, que viene por defecto configurado para sistemas más potentes. 

Lo primero, y que da muy buen resultado inmediato, es bajar, o incluso eliminar la directiva KeepAlive del archivo de configuración de Apache. Lo mejor sería dejarlo “On” pero con un KeepAliveTimeout bastante menor que los 15 segundos que vienen por defecto. Con dos segundos sería suficiente, pero podemos evitar que se abran y cierren conexiones innecesarios dejándolo en 5-6. 

Esto debería ser suficiente, pero se puede ir más lejos eliminando módulos innecesarios. En este post hay algunos detalles más. 

Si la cosa se pone seria, siempre podemos elegir otro servidor web, tipo Cherokee.

Tuesday, March 3rd, 2009

Gestión de servidores con Webmin + Virtualmin

webminAdministrar un servidor Unix es algo delicado, que requiere bastantes conocimientos de pequeñas aplicaciones, softwares, versiones, etc… Si además no eres un experto, o no es tu labor principal, es algo que puede requerir mucho tiempo y puede llegar a ser desesperante.

Tanto si eres un experto administrador como un novato, hay herramientas que pueden ayudarte en esta tarea. No sólo mostrando las opciones de configuración disponibles para cada aplicación, también automatizando creación de usuarios en varias aplicaciones a la vez, por ejemplo, el usuario en el sisitema, en mysql, buzones de correo, entre otras.

Estas aplicaciones tienen un interfaz web con el que podrás administrar los distintos módulos, sin perjuico de entrar luego con el vi en /etc y cambiar esa configuración. Lo he encontrado realmente versátil. Ejemplos hay varios como  CP+, Plesk o Cpanel, todas ellas aplicaciones comerciales.

La alternativa libre, Webmin, es muy sólida y no se queda atrás con respecto a algunas de las versiones comerciales. Por mi experiencia, supera ampliamente a CP+ en actualizaciones y estabilidad.

Además,dispone de Virtualmin, que ayuda bastante en la gestión de servidores virtuales entrelazando Apache, gestión de DNS, Mysql, Postfix, FTPs y otras aplicaciones de forma automática.

La instalación es bastante sencilla. En Ubuntu:

  • Webmin

http://prdownloads.sourceforge.net/webadmin/webmin_1.441_all.deb

  • Virtualmin

http://download.webmin.com/download/virtualmin/webmin-virtual-server_3.63.gpl_all.deb

Efecutando dpkg -i <modulo> deberá instalarlo sin problemas. En mi caso tuve que bajarme e instalarme algunos módulos más y ejecutar un apt-get –fix-missing install , pero funcionó sin más problemas. Una vez instalado, podrás acceder al panel de administración por el puerto 10000 de tu servidor,  http://IP-TU-SERVIDOR:10000.

Os dejo por aquí entradas en otros blogs que pueden ayudar a tener una visión más completa:

Saturday, November 15th, 2008

Elbot gana el Loebner Prize 2008

ElbotElbot, robot de inteligencia artifical desarrollado por Fred Roberts de la empresa Artificial Solutions, ha sido galardonado con el Loebner Prize de este año. El robot se ha acercado bastante a pasar el Test de Turing, ideado por el famoso matemático Alan Turing, que consiste en tratar de hacer pasar a una máquina inteligente como humana frente a un juez con el que se comunica por mensajes de texto.

En 1990, Hugh Loebner decidió instaurar un premio de $100.000 y una medalla de oro a quien lograse desarrollar un bot que pasase el Test de Turing, algo no conseguido aún. Sin embargo, cada año otorga una medalla de bronce y $3.000 a quien más se acerque.

La empresa Artifcial Solutions se dedica a la implantación comercial de este tipo de bots. Algunos ejemplos se pueden ver en Ikea con el bot Anna y recientemente en BuyVIP, donde podemos hablar con Luna.

Hay otra iniciativa de software libre muy interesante que ganó los premios de 2000,2001 y 2004, el proyecto A.L.I.C.E., que además trata de instaurar un estándard de configuración llamado AIML. Con ficheros AIML puedes configurar y tratar la base de conocimiento de este bot.

Se puede bajar e instalar libremente, incluso enchufarlo a algunos messengers. A priori, sabiendo que se interactúa con un robot, las conversaciones pueden parecer triviales. Pero vaya, hice la prueba y más de uno picó y creyó por un tiempo que hablaba con una persona de carne y hueso.

Saturday, October 18th, 2008

Inicio Blog

software

12»