agosto 31, 2005

Día del Blog

Pues resulta que hoy es el día del blog. Y me extraña que no me haya enterado mañana :), pero bueno, esta vez me entero a tiempo, aunque ya ando tarde para seguir las instrucciones y no tengo mucho tiempo. Así que en vez de nombrar cinco Blogs que me resultan interesantes, he hecho algo que debía haber hecho hace muuucho tiempo y he incluido en esta peque-bitácora mis subscripciones de BlogLines.
Así que por fin aparecen en "Mis Favoritos" las fuentes que suelo leer de vez en cuando. Os recomiendo que les echeis un vistazo tranquilamente, seguro que conoceis la mayoría, pero espero daros alguna agradable sorpresa con el descubrimiento de alguna nueva para vosotros.
Y sí, sé que debo ordenarlas por temática...

agosto 27, 2005

Uso de AJAX, crea tu Protopage

Pues era yo algo escéptico con el cambio que supone AJAX para la web, debido a que de todas maneras la latencia por las llamadas HTTP sigue presente. Pero la verdad que han surgido aplicaciones que son realmente interesantes. Mirad si no esta aplicación de páginas de inicio, llamada Protopage. Realmente no te das cuenta de que cualquier cambio que realizas se guarda en el servidor, es muy transparente.
Por lo demás, la aplicación está todavía un poco en pañales. Intenté que apareciesen mis suscripciones de bloglines en una "Sitcky Note", pero no funciona el JavaScript. Ya me pusé en contacto con ellos para comunicárselo, y la verdad que a las 2 horas tenía un email suyo contestándome. A ver si lo solucionan pronto.

agosto 23, 2005

Creación de software libre (+)

Dos discusiones en dos foros totalmente dispares me han tenido entretenido esta tarde. La primera que habla sobre algo parecido a lo que comentaba en mi post anterior es el post de Enrique Dans sobre que si el software libre da dinero. La otra es la bitácora de Ricardo Galli, sobre Software libre y empresas regionales. El caso es que en estos dos post, y en las discusiones asociadas, la cuestión de fondo es si la creación de software libre genera ingresos, dinero, innovación (o riqueza empresarial regional).
La cuestión por tanto parece que no es sencilla. Siempre comparando el tema con e software propietario, por supuesto. Lo que parece es que en España no hay creación de software como producto. Nos conformamos parece que con utilizar las herramientas y productos que otros están creando como software. La libertad en el software no ha creado innovaciones de ruptura en este país, o por lo menos, no en mayor medida que el software privativo.

agosto 19, 2005

Empresas CREADORAS de software libre en España

Pues me quedé un poco decepcionado con las respuestas a la pregunta en Barrapunto. Estaba yo interesado en conocer las empresas que creasen software libre en España. No empresas que lo utilizasen, colaborasen en proyectos iniciados por otros, o realizasen consultorías o formación sobre SL existente.
La lista se me ha quedado pequeña, después de intentar comprobar en las webs indicadas si cumplían las condiciones. En algunas no ponía nada de software libre, ni que desarrollasen algún producto, o no eran españolas. Las que han quedado son estas:

Como veis, poquitas. Seguro que exiten unas cuantas más, y yo pensaba que en Barrapunto me darían el nombre de muchas, pero no ha sido así.
Pero si no ha habido una explosión de empresas que creen software libre, ¿será por que este no disminuye las barreras de entrada tan exageradamente como pensaba? Bueno, obviamente el esfuerzo de crear software es el mismo en un modelo que otro, y en los inicios de los productos libres se está muy solo, pues no se atraen desarrolladores interesados (a no ser que seas Apache y anuncies un nuevo desarrollo).
De manera que las barreras de entrada se disminuyen para las consultorías o desarrollos de servicios, donde se obtiene el software a utilizar junto con su código fuente, pero quizás el software libre no sea tan generador de innovación como volvía a esperar.
Por cierto, no tengo nada que ver con ninguna de ellas.

agosto 18, 2005

Capital humano

Me ha gustado el post en Tachnovation sobre si el capital humano de una empresa es activo o pasivo. No sé si será una cosa u otra, más bien ninguna de las dos.
Para los flojos en contabilidad (yo mismo... nunca me ha entrado bien en la cabeza):
- Los activos son las posesiones de la empresa que se pueden convertir en dinero en efectivo. Se dividen en activos circulantes, los que ya se considera dinero de la empresa (dinero en caja o bancos, cuentas por cobrar o inventarios de productos y materia prima) y activos fijos (los bienes inmuebles y maquinaria)
- El pasivo son las deudas de la empresa tanto a largo como a corto plazo (que deben ser repuestas antes de un año).

Vamos, que el capital humano no encaja. No es un bien en posesión de la empresa, aunque a veces se disponga de él como si fuese propiedad particular. Tampoco se le debe un dinero, si no que se le paga por generar algo. Y desde luego, no se puede vender para generar un beneficio (excepto quizás los futbolistas...).
Pero quizás ese "divertido" post del que hablaba al principio de para pensar más de lo que parece.

Diseño y XP

Joel Spolsky está muy contento con su nuevo proyecto, y nos cuenta ahora cómo fueron las especificaciones del mismo. Aparte del proyecto en sí mismo, que se trata de una herramienta para controlar ordenadores desde otro puesto en Internet, me ha llamado la atención el siguiente párrafo:

Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can’t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I’m proud to use it, no matter what the XP fanatics claim.

Bueno, es cierto que el Big Design Up Front no está demasiado bien visto por los puristas del "eXtreme programming", puesto que debe ser la evolución del software la que lleve las riendas del desarrollo, y no una idea inicial del proyecto, pero tampoco creo no exista un camino intermedio.
Hace tiempo que me leí un artículo de Martin Fowler titulado "¿está el diseño muerto?". Lo que viene a decir es que exite un camino intermedio, que él no cree que no haya que tener una idea de diseño, pero que la concepción de este se ve afectada por la importancia de la idea de evolución del proyecto en su desarrollo. En XP el diseño no se deja de realizar: "So, is design dead? Not by any means, but the nature of design has changed".

agosto 15, 2005

Struts & frames

Volvemos a un post algo más técnico. A raiz de una pregunta por email que me han hecho estos días, he recordado un post en theserverside.com, sobre "struts and Frames". Mucha gente que usa frames para las aplicaciones junto con Struts nos hemos enfrentado un poco a la problemática que supone. En ese post explicaba la posición que habíamos tomado en un proyecto de desarrollo, para minimizar la complejidad del tratamiento de los frames.

We suppose the form data is ONLY needed for the action, so the action executes and change the model as needed. The action decides which is the next page, and if it can have frames it sets a variable "next" in session, which indicates what the frames that must be loades in this way:

Every frame in frameset is redirected to an special action frames.do with two parameters: the place where the frame is loaded and the "next" variable.
For example:

<frameset id="vis" cols="261,*" border="0" framespacing="1">
<frame name="bottomLeft" src="frames.do?position=frameBottom&action=<session:attribute name="next">">
<frame name="bottomRight" src="frames.do?position=frameTop&action=<session:attribute name="next">">
</frameset>

And we have implemented the frames.do action to know which JSP must be loaded, with parameters position and next. In fact, the page that must be loaded is written in struts-config.xml in this way:

<action path="/frames" type="package.FramesAction" name="framesForm" scope="request">
<forward name="frameTop-next1" contextrelative="true" path="/WEB-INF/jsp/jsp1.jsp">
<forward name="frameTop-next2" contextrelative="true" path="/WEB-INF/jsp/jsp2.jsp">
....


So the frames.do makes a forward to the String created with "position+next" (the two parameter of frames.do) and we can establish the JSP in the xml file...


De esta manera conseguíamos el no preocuparnos por el frame al que era dirigido una acción, pues la misma acción podía ser implementada por la misma clase, y devover JSPs con frames diferentes según el nivel del frame al que fuese dirigido. Las redirecciones desde HREFs o SUMBMITs ya simplemente se indicaban en el target.

Con esto también conseguiamos la vuelta atrás de manera sencila aunque implicase el cambio de varios frames, por que la acción de "frames.do" almacenaba los anteriores vistas y era capaz de reponerlas en el lugar adecuado.

agosto 14, 2005

¿creación de soft. libre?

La creciente aparición de empresas que anuncian el uso de software libre es importante. Lo que yo pensaba hace un tiempo es que iban a aparecer más empresas DE software libre. Esta diferencia es muy importante.
Las actuales nuevas empresas que dan soporte al software libre suelen convertirse en meras consultoras que dan como valor añadido el uso del SL. Seguramente no es poco valor añadido ahora que el SL es ya, hace tiempo, una plataforma muy válida y que ha demostrado su funcionalidad. Pero yo suponía que iban a nacer más empresas que sacasen su software como libre. Bien el software que tenían, o nuevos desarrollos de esta manera.
¿por qué no se ha producido este hecho? ¿quizás el método del software libre todavía impone demasiado "miedo" en los círculos empresariales, que ven un beneficio más directo en la venta de licencias?
ACTUALIZADO: Lo he preguntado en Barrapunto también. Os haré un listado con las que encuentre. ¡Gracias!

agosto 12, 2005

Mudanza de datos

Haciendo una mudanza de casa, mi amigo Gus y yo nos preguntamos que deberíamos remover, limpiar de nuestros cerebros que ya no nos sirva de todo lo aprendido en la facultad. De todos esos magnos conocimientos, ¿qué usamos actualmente en nuestros puestos de trabajo? ¿qué hemos olvidado? ¿es necesario olvidar algo para seguir aprendiendo?

1) Metodología de programación: El uso de precondiciones, postcondiciones e invariantes en los bucles para comprobar matemáticamente el funcionamiento de los programas. vaya, para eso ya tenemos el JUnit, nos podíamos aburrir comprobando cada instrucción mediante matemáticas.
Sin embargo, sí que estas cuestiones te dan un "background mental" dificil de percibir.

2) Física: Claro, son las bases de los funcionamientos de los circuitos integrados, electromagnetismo, integrales de elementos... pero, esto sí que creo que ya lo olvidé nada más salir por la puerta tras acabar el examen. Bueno, alguno no se le olvidará nunca tras verlo cuatro años seguidos.

3) Cálculo: ¿alguno habeis hecho integrales desde que salisteis de la facultad?

4) ADA: En la UPV enseñan desde primero este lenguaje de programación. Únicamente he sabido de una persona que lo ha seguido utilizando tras la facultad, en una empresa de aeronautica, pero... ¿alguién más lo utiliza? Gus dice que le parece un buen lenguaje para aprender, pero opino si no sería mejor empezar con JAVA o algún lenguaje más presente en el mercado.

En fin, estas cosas no usamos en nuestros trabajos actuales, seguro que otros de vosotros utilizais estos temas u otros que a nosotros no se nos ocurren. De todas maneras, no cambiaría demasiado lo aprendido en la facultad, contamos con una buena base para seguir aprendiendo.

agosto 08, 2005

Calidad en el software, mejor libre o privativo

En Navegapolis he leido sobre diversos proyectos para asegurar atributos de calidad del software críticos en áreas como rendimiento, modificabilidad o fiabilidad. En estos casos la calidad se entiende si el programa o software satisface las especificaciones descritas para él.
Una cuestión con el software libre, es si su modelo de desarrollo favorece una mayor calidad de los productos.

Ante todo, ¿qué es un software de mayor calidad? Lo definiré como un software que proporciona mayor valor añadido para quién lo utiliza, teniendo en cuenta que sus posibles fallos¨ van a mermar ese valor proporcionado, así como la dificultad en su uso.
Se pueden definir una serie de atributos que debe tener el producto de software, que son comúnmente aceptados para que tengamos un software de calidad:
o Fiabilidad: El software hace lo que se supone que debe hacer.
o Portabilidad: El software puede ser fácilmente transportado a otra plataforma.
o Eficiencia: El software hace lo que hace de la mejor manera posible, economizando tiempo y espacio§.
o Usabilidad: El software es fácil y cómodo de usar.
o Testable: El software es fácil de probar su funcionamiento.
o Entendible: El software es fácil de comprender por las personas que lo van a mantener.
o Modificable: el software es fácil de modificar por las personas que lo van a cambiar.

Si entendemos la calidad como una lista de atributos, los anteriores serían los que debería cumplir. El grado en que un software cumpla esos atributos determinarían su nivel de calidad. ¿pero qué modelo de negocio va a proporcionar mayores valores de estos atributos por sí mismo?
En teoría, ninguno tendría que ser mejor que otro para aumentar el valor de estos atributos solo por el hecho de que el software sea desarrollado bajo un modelo u otro. Tanto los programadores y desarrolladores de ambos modelos pueden crear el mismo producto con la misma calidad. Hemos visto que la clave está en las personas. La Gestión de la Calidad Total insiste en esa idea. Cualquiera de los dos modelos, funcionando correctamente, pueden generar software de calidad.
Pero, y me atrevo a poner un pero, la realidad puede hacer que algunos de esos atributos sean más “queridos” por un modelo que el otro. Mi experiencia me inclina a pensar que el modelo de negocio comercial tiene más ventajas en la usabilidad y la fiabilidad; y que el modelo de código abierto se centra en la modificabilidad, entendibilidad y portabilidad. En estos atributos veo posibles diferencias a la hora de desarrollar los productos. Por supuesto, no quiero decir que se ignoren los otros atributos, solo destaco las visiones que he tenido de los diferentes productos.

Extraido de Nuevos modelos de Negocio

agosto 07, 2005

Ubuntu Linux ha llegado

Ya casi ni me acordaba, pero hace un par de meses solicité unos CDs de Ubuntu. Lo primero, he intentado probar el LiveCD en el portatil (un Fujitsu-Siemens Amilo) y no me reconoce, de ninguna manera el CD. Bueno, la idea era instalar esta versión en el de sobremesa, ahí espero que no habrá problemas.
Es curioso, se lo he comentado a algún amigo ajeno a esto de la informática, y se ha quedado pasmado cuando le he comentado que me han llegado 10 CDs de un sistema operativo totalmente gratis. "¿y así ganan pasta?"- se reía. Bueno, pues cada uno tiene su método. Supongo que los gastos que les supone los envíos de los CDs, se tornarán en beneficios en la espera de la solicitud de servicios y mantenimiento de cada vez más gente o empresas. Para conocer la empresa, Canonical Ltd., es interesante ver las razones que daban en guadalinex para basar su versión del 2005 en Ubuntu.

agosto 05, 2005

El software libre como suministrador estratégico

Sobre los pilares de la posición estratégica de una empresa comenté algo en los inicios de la bitácora acerca de la rivalidad entre competidores existentes, acerca del impacto en las barreras de ingreso y del poder legislador de los gobiernos. Hacía tiempo que deseaba extenderme sobre este tema que dejé bastante cojo.
Ahora lo retomo para hablar del software libre como sustituto de los suministradores estratégicos de tecnología. El efecto del SL en este determinante de la estructura del sector industrial es, está siendo, bastante importante. En mi tesina seguramente lo infravaloré, y no le di la importancia que ha tenido en el mercado.
La dependencia de las empresas de tecnología de los suministradores "tradicionales" de productos comerciales es muy fuerte. No es facil cambiar de proveedor si tienes 200 máquinas con Windows XP, o algún sistema crítico basado en Oracle.
El SL cambia radicalmente la dependencia del suministrador tecnológico. La disponibilidad del código puede hacer que se encuentren empresas diferentes para dar soporte al mismo producto a un nivel suficientemente alto de calidad, tanto en formación como en solución de problemas o "bugs". O en teoría sucederá esto, por que no sé hasta qué nivel puedes encontrar ahora verdaderos soportes efectivos, de por ejemplo MySQL o Apache. Pero sucederá, si no existen ya, para todo tipo de SL que alcance un número importante de usuarios, como sí existen ya empresas que dan soporte completo a Linux.