Versión Cero Noticias sobre el mundo del Desarrollo de Software. tag:versioncero.juanjonavarro.com,2005:f3253ef936424836bb4b45a0cd34fe9b Textpattern 2020-03-21T20:37:28Z Juanjo Navarro https://versioncero.juanjonavarro.com/ Sergio Montoro Ten 2009-07-11T19:24:43Z 2009-07-11T19:24:43Z Almacenamiento distribuido no relacional tag:versioncero.juanjonavarro.com,2009-07-04:f3253ef936424836bb4b45a0cd34fe9b/aa09bd7254da750672675543605cdea8 La última moda disruptiva son los sistemas de almacenamiento distribuido no relacional pero ¿está realmente lista esta tecnología para dejar su etapa de adoptadores tempranos y entrar en una fase de uso generalizado mainstream?

]]>
Sergio Montoro Ten 2009-04-07T18:15:15Z 2017-03-09T09:14:09Z El mercado del software chapucero tag:versioncero.juanjonavarro.com,2009-04-07:f3253ef936424836bb4b45a0cd34fe9b/d16f851a83c94f616a751d8887b92b14 Todos los programadores se quejan de que no les dejan hacer un trabajo decente y de calidad ¿Qué razón de mercado existe para esto?

]]>
Sergio Montoro Ten 2009-03-26T12:53:19Z 2009-03-26T12:58:23Z Cursos de Scrum en Madrid y Barcelona tag:versioncero.juanjonavarro.com,2009-03-26:f3253ef936424836bb4b45a0cd34fe9b/220538ac4c08ed257ea13ecd86bb08e2 Ángel Medinilla de Proyectalis imparte los días 11 y 12 de mayo en Madrid y el 29 y 30 de junio en Barcelona un curso propio sobre Scrum y Metodologías Ágiles. Personalmente he tenido el placer de asistir a ediciones anteriores y doy fé de que son dos días tras los cuales la inmensa mayoría de los asistentes salen muy contentos de la inversión. Coste: 400€]]> Sergio Montoro Ten 2009-03-21T13:44:07Z 2009-03-22T08:48:43Z Todas las discusiones sobre lenguajes son absurdas tag:versioncero.juanjonavarro.com,2009-03-21:f3253ef936424836bb4b45a0cd34fe9b/24f1060e4f1c3948013b0c703995421b A los partidarios de Ruby on Rails les gusta decir que Java es como COBOL (por aquello de que lo usan los bancos). Y quienes usan un lenguaje compilado tienden a menospreciar a los “programadores de scripting”, esos que escriben código guarro sin objetos ni declaración de variables ni nada. ¿Qué hay realmente detrás de todas estas enconadas discusiones?

]]>
Juanjo Navarro 2008-12-17T09:47:12Z 2008-12-18T17:43:47Z 10 técnicas para mejorar tus interfaces de usuario tag:versioncero.juanjonavarro.com,2008-12-17:f3253ef936424836bb4b45a0cd34fe9b/08708d528e460e8624506177cf5fbfd2 Una buena base y una gran atención a los detalles es lo que que diferencia a una buena interfaz de usuario. Y un poco de todo (conceptos básicos y detalles) es lo que nos describe este artículo: 10 Useful Techniques To Improve Your User Interface Designs.

Desde una utilización adecuada del espacio y del contraste hasta pequeños detalles como situar el foco de usuario en el formulario adecuado. Solo una advertencia: En mi opinión la novena técnica descrita, mostrar determinados controles sólo al pasar el ratón por encima, no siempre funciona bien. Corremos el peligro de que el usuario ni llegue a conocer que existen esas opciones al estar ocultas a la vista.

]]>
Juanjo Navarro 2008-12-16T16:43:11Z 2017-03-09T09:13:56Z strfriend tag:versioncero.juanjonavarro.com,2008-12-16:f3253ef936424836bb4b45a0cd34fe9b/14b43264ad2e8af03f31dee6f3dc9043 Ya he comentado alguna vez por aquí que una de las cosas a las que se les puede sacar mayor provecho en programación es al uso de expresiones regulares. No importa el lenguaje que estemos usando, una expresión regular puede solucionar con elegancia lo que requeriría muchísimas líneas de código.

Por eso nunca vienen mal herramientas que nos ayuden a entender las expresiones regulares y a aplicarlas, como este strfriend.

Escribes una expresión, y el sistema te la analiza y te la muestra con un gráfico que te puede ayudar a entender su funcionamiento. Sencillo y muy útil.

]]>
Sergio Montoro Ten 2008-11-26T19:28:17Z 2017-03-09T09:13:45Z Mi historia de Meta4 tag:versioncero.juanjonavarro.com,2008-11-26:f3253ef936424836bb4b45a0cd34fe9b/5f3ad422461a829236b380204c8eec0a Ángel me ha pedido que escriba sobre un e-mail en la lista privada del Grupo Tibi acerca de Meta4. Contar los entresijos de las empresas es, en general, indiscreto. Pero ya han pasado casi nueve años desde que dejé voluntariamente Meta4, de modo que supongo que las cosas han cambiado mucho allí desde entonces, y también que puedo contar lo que yo creo que pasó, desde la prespectiva que da el tiempo y sin perjudicar a nadie. Yo trabajaba en el departamento de I+D, tenía un jefe güay, y un jefe de mi jefe güay, hasta que un día las cosas empezaron a cambiar…

]]>
Sergio Montoro Ten 2008-11-22T10:08:52Z 2008-11-24T19:28:23Z Conversación con el Capitán del Proyecto tag:versioncero.juanjonavarro.com,2008-11-22:f3253ef936424836bb4b45a0cd34fe9b/9e1f0f87db65d0a4501843e553ff9ead Hoy estuve en el chat con un amigo a quien llamaré el Capitán del Proyecto para preservar su anonimato. El Capitán me contaba lo que estaba pasando en su proyecto, que no es nada nuevo, ni nada sorprendente. Pero no por ello menos impactante.

]]>
Juanjo Navarro 2008-08-21T10:46:01Z 2008-08-21T11:01:24Z 97 cosas que un arquitecto de software debe conocer tag:versioncero.juanjonavarro.com,2008-08-21:f3253ef936424836bb4b45a0cd34fe9b/e4e86122e1c5cde775803007dc4f6a78 97 Things es un proyecto colaborativo que pretende recopilar 97 axiomas que todo arquitecto de software debe conocer.

La idea de esta lista es que es creada por la comunidad. Puedes registrarte en el sitio y valorar los axiomas enviados. Además, si alguno de los axiomas enviados por ti es aceptado, te conviertes en un autor del sitio, con la posibilidad de crear una página con tu “biografía” y participar de modo más activo en la página.

Todos este trabajo queda disponible bajo una licencia creative commons pero además estos axiomas serán luego recopilados en un libro que O’Reilly Media publicará próximamente.

Por ahora tienen ya seleccionados 49 axiomas y contando.

]]>
Sergio Montoro Ten 2008-03-21T10:18:16Z 2008-03-21T13:48:18Z Eclipse anuncia un nuevo runtime tag:versioncero.juanjonavarro.com,2008-03-21:f3253ef936424836bb4b45a0cd34fe9b/2f2273098277b10d35a25863400b3568 Según una nota de prensa del pasado 17 de marzo, Eclipse ha anunciado que construirá un nuevo super runtime alrededor de Equinox combinando sus subproyectos Eclipse Communication Framework , EclipseLink , Rich Ajax Platform , Riena , y Swordfish

El propósito de este proyecto es crear un modelo común de desarrollo multiplataforma en cliente y servidor mediante un concepto que en Eclipse denominan Component Oriented Development and Assembly (CODA).

Equinox es el núcleo de Eclipse Framework, se trata de una implementación de OSGi R4 un sistema que define la arquitectura para desarrollar y desplegar aplicaciones modulares. Hay un par de demos sobre el funcionamiento de OSGi en el portal de Equinox Equinox también es la implementación de referencia de JSR 291 y en gran medida un producto substitutivo del JSR 277 liderado por Sun.

Una de las fortalezas de Equinox es que hoy por hoy es la implementación de referencia de OSGi. Si se visita la web OSGi.org y se solicita una implementación de referencia lo que se obtiene es un enlace a Equinox. Existen también Knopplerfish y Apache Felix aunque, a día de hoy, Felix no pasa todavía los test de conformidad con la release 4 de OSGi.

Según la nota de prensa de Eclipse, ya son más de 20 las empresas que se han unido al desarrollo del nuevo runtime. Empezando por IBM y BEA quienes usan Equinox para cimentar otros de sus productos como Notes o Symphony.

Sin embargo, no todo han sido cantos de alabanza para el nuevo runtime. En la EclipseCon 2008 de Santa Clara, los hay que piensan que de un tiempo a esta parte Eclipse está excesivamente controlada por IBM, que estos sistemas comunes de componentes añaden más complejidad de la que quitan y que, en general, todo lo que tocan los ingenieros de Eclipse se convierte en una cacharrada dificilísima de entender.

Desde el punto de vista del posicionamiento de mercado, hay que ver el anuncio como una forma de desmarcarse del IDE puro y duro para convertir a Eclipse en una plataforma integral de desarrollo y ejecución de aplicaciones.

Artículo relacionado: How OSGi Changed My Life (Peter Kriens)

]]>
Ángel Medinilla 2008-02-19T20:14:09Z 2008-02-21T23:01:29Z "Nosotros hacemos Scrum" tag:versioncero.juanjonavarro.com,2008-02-19:f3253ef936424836bb4b45a0cd34fe9b/da31fac91337538de59f8af1b18b28ce En esto de Scrum y las metodologías de gestión de proyectos en general existen dos corrientes de pensamiento principales. Una es la encabezada por Jeff Sutherland, co-creador de Scrum y gurú de las metodologías Ágiles: según él, para que Scrum funcione hay que ceñirse estrictamente a las reglas, y todo lo que no pase el checklist completo no puede llamarse Scrum (y de hecho debería estar perseguido por la iglesia y garantizarte una buena temporada en los fuegos del infierno).

Otra la forman los que piensan que no hay una policía del Scrum que vaya a venir a detenerte si decides formar equipos de 14 personas cuando la norma es de entre cuatro y diez personas por equipo, o que rodeen el edificio con sirenas y megáfonos si llegáis a la conclusión de que los Sprints de duración fija no son para vosotros.

]]>
Sergio Montoro Ten 2008-02-03T13:37:13Z 2008-02-03T13:40:29Z Concept Programming tag:versioncero.juanjonavarro.com,2008-02-03:f3253ef936424836bb4b45a0cd34fe9b/c916873668d81a58dd71debb17b11cb0 A través del artículo Dip into concept programming de Phil Manchester en Reg Developer he estado leyendo unas Diapositivas sobre Concept Programming de Christophe de Dinechin y el lenguaje de programación extensible XLR

La idea, hasta donde yo la entiendo, es un lenguaje que te permita definir tu propia sintaxis para expresar conceptos.

En principio, la idea está muy bien, todos sabemos que en ocasiones es preciso escribir un código muy retorcido para expresar algo muy simple.

Por ejemplo: “Devolver true si el elemento x está en la lista {a, b, c, d}” En los lenguajes imperativos esto requiere escribir un bucle o usar un iterador, en los funcionales ese tipo de funciones se expresan de forma más natural, aunque la notación todavía puede quedar bastante inintelegible.

Lo que propone Dinechin es un lenguaje donde esté permitido escribir cosas como:
function Add (A, B : array) return array written A+B
dando así la notación del lenguaje para expresar el concepto de sumar dos matrices.

El problema es que esto ya se ha intentado, y no ha salido bien. El lenguaje conceptual por excelencia son las matemáticas clásicas. Cuya notación es tan críptica que resulta imposible de leer sin años de formación previa. Los matemáticos te calzan una hache mayúscula negrita para expresar Dios sabe qué espacio vectorial H y si te encuentras una â con acento circunflejo ya agárrate los nachos a saber lo que significa. Para colmo de males, fuera del cálculo y el álgebra básicos, ni siquiera hay una notación totalmente estándar o un manual de referencia general sobre notación matemática que puedas consultar.

Es decir, que yo creo que la idea está bien, pero no estoy seguro de que sea una buena cosa abrir la veda y que cada cual se invente su propio idioma de programación según le venga en gana.

]]>
Sergio Montoro Ten 2008-01-30T20:15:11Z 2008-01-30T20:15:11Z Programar no es sólo hacer matemáticas tag:versioncero.juanjonavarro.com,2008-01-23:f3253ef936424836bb4b45a0cd34fe9b/a3a86fe23dd6b56ce63bdd4a7429f462 Cada cierto tiempo se oyen voces críticas sobre la falta de rigor con la que trabajan la mayoría de los programadores. La falta de métodos formales de verificación y benchmarking produce muchos programas lentos y nada fiables. Pero ¿es la programación sólo una extensión de las matemáticas por otros medios?

]]>
Juanjo Navarro 2007-12-12T12:08:27Z 2007-12-07T12:15:22Z Consejos para comentar tu código tag:versioncero.juanjonavarro.com,2007-12-07:f3253ef936424836bb4b45a0cd34fe9b/886173594fc88e26ed663efa9910dd3e Interesante el artículo de Variable not found donde nos da 13 consejos para comentar nuestro código.

Son todos consejos muy bien traídos y me gusta sobre todo que van más allá de la implementación concreta en un lenguaje concreto y en lugar de eso se centra en cual debe ser el espíritu de los comentarios: No comentar lo evidente, escribir código que esté autocomentado, comentar como parte del proceso de programación, no después, etc.

]]>
Juanjo Navarro 2007-12-11T07:00:00Z 2007-12-07T11:09:13Z AntiSamy: Validación de HTML/CSS tag:versioncero.juanjonavarro.com,2007-12-07:f3253ef936424836bb4b45a0cd34fe9b/68e035bc2069bd82be83c2767aabbb64 Ya he dicho por aquí en varias ocasiones que creo que OWASP es un proyecto estupendo. Dedicado a proporcionar información y herramientas para la programación segura de aplicaciones web, creo que es una web indispensable para cualquiera que se quiera llamar desarrollador web.

Uno de los últimos componentes que ha lanzado es AntySamy, una librería que nos permite validar que un texto html/css se adhiere a una serie de reglas de seguridad. Sirve para cuando queremos aceptar una serie de html/css del usuario (por ejemplo, para un comentario o una página de perfil) pero no queremos que eso nos suponga un problema de seguridad.

Lo interesante de la solución es que es completamente configurable en cuanto a qué aceptaremos. De hecho, la librería se distribuye con varios perfiles que imitan lo que se acepta en varias sitios web muy conocidos (slashdot, ebay, myspace).

Es una librería Java, pero anuncian versiones para .Net y para PHP.

]]>