miércoles, 29 de diciembre de 2010

Resultados de la consulta pública al borrador del Real Decreto de Desarrollo de la Ley 37/2007

#abredatos #egov #ogov #gov20 #opendata 
A través de la ePSI platform me he enterado de que se han publicado los comentarios resultado de la consulta pública abierta para la recepción de comentarios sobre el borrador del Real Decreto de Desarrollo de la Ley 37/2007 sobre reutilización de la información del sector público.
En este enlace podéis acceder a un pdf con los comentarios aportados por los ciudadanos y diferentes entidades a la consulta pública.
Algunos comentarios sobre los resultados de la consulta:
  • En general, en la mayoría de los comentarios se agradece la oportunidad que se ha brindado al abrir la consulta pública del borrador.
  • Entre los comentarios hay algunos meramente formales sobre el uso del lenguaje (como los de Antonio F. Rodríguez Pascual), que ayudan a la correcta redacción del Real Decreto.
  • Otros como Marc Garriga (Ayuntamiento de Barcelona) o Luis Fernando Ramos (Publidoc-UCM) primero destacan los aspectos positivos y luego realizan sus comentarios y/o modificaciones propuestas. Los comentarios de Marc Garriga me parecen especialmente acertados.
  • La asociación Pro Bono Publico también realiza una aportación relevante con comentarios generales sobre el borrador, y propuestas de modificaciones concretas.
  • También existen comentarios de Jesus Castizo Mantas (Partido Pirata), sin desperdicio:
    • PIRATA considera que la precisión de “un coste que no suponga una dificultad de acceso” es una puerta trasera para seguir permitendo el uso de estándares privativos y cerrados como el tristemente famoso OpenXML de Microsoft, introducido recientemente como estándar internacional a través de presiones y oscuras maniobras por parte de la multinacional. Con semejante ambigüedad (¿qué es para el gobierno un coste que “no suponga dificultad de acceso”?) se deja vía libre para adoptar estándares en función de intereses particulares y en contra del interés común de los ciudadanos, obligándoles a un pago por el uso de ciertos estándares, cuando existen otros totalmente gratuitos y favorables al interés general.
    • PIRATA no rechaza este borrador en su conjunto, pero considera urgente una reforma de las leyes ya mencionadas, y mas concretamente de la definición de estándar libre de una manera no discriminatoria para el ciudadano.
  • Otros comentarios que me han llamado la atención son los de CEDRO, que deja claro que ha venido aquí a hablar de su libro:
    • Por último, la Directiva es precisa y establece que la misma no afecta a los derechos de propiedad intelectual de terceros. Ni afecta a la existencia de derechos de propiedad intelectual de los organismos del sector público ni a su posesión por éstos, ni restringe en modo alguno el ejercicio de esos derechos fuera de los límites establecidos por la Directiva. Asimismo, considera que las obligaciones impuestas por la Directiva sólo debe aplicarse en la medida en que las mismas sean compatibles con las disposiciones del Convenio de Berna y el Acuerdo ADPIC. Y deja claro que los organismos del sector público deben ejercer sus derechos de autor de una manera que facilite la reutilización.
  • Como contrapartida a la opinión de CEDRO, la de J. Campanillas (Iurismática Abogados, S.L.P):
    • Como primera observación nos gustaría poner de manifiesto una cierta contradicción normativa o, si se nos permite la expresión, “exceso legislativo” que puede deducirse de la actual redacción del borrador, y es la referida a la inclusión en el mismo del régimen aplicable a documentos reutilizables sujetos a derechos de propiedad intelectual, partiendo de la base de que tanto la regulación comunitaria como la transposición de la misma al derecho nacional parecen, “prima facie”, dejar fuera del régimen reutilizador dicha materia (Propiedad Intelectual)...
  • Muy interesantes también los comentarios de Efrén Díaz. (Abogado. Bufete Mas y Calvet), que a mi parecer combinan muy bien una visión legal y tecnológica del asunto. También destacables los comentarios de Agustí Cerrillo (Universitat Oberta de Catalunya), José María Alonso (Fundación CTIC), Antonio F. Rodríguez, etc.

De entre todos los comentarios aportados, por mi parte destacar la necesidad de la inclusión de las administraciones autonómicas y locales dentro del marco de aplicación de la ley. Con el volumen tal alto de información reutilizable que manejan estas administraciones, me parece algo fundamental, según bien indicaba Marc Garriga en su excelente blog.

lunes, 27 de diciembre de 2010

Selección de noticias de la semana 27/12/2010

Como cada semana, aquí está la selección de noticias y posts interesantes, clasificados por tema:

eAdministración:
Ley Sinde:
Tecnología:
Programación:
Humor y curiosidades:

sábado, 25 de diciembre de 2010

Video: Diez años fotografiando día a día a su hija

El padre de una niña, Natalie Starting, ha fotografiado a su hija día a día durante sus primeros diez años de edad. El resultado es este vídeo, que a día de hoy lleva más de cuatro millones de visitas en YouTube:

Video: Don't fuck with a hacker's machine


Me ha encantado este vídeo, se trata de una charla en una conferencia de hackers en la que uno de ellos cuenta cómo recuperó un portátil que le robaron, dos años después del delito. En cuanto el portátil volvió a conectarse a internet, el dueño original comenzó a obtener información sobre él. Pronto logró colarse en el sistema, ver sus fotos, obtener sus direcciones de correo, usuarios y contraseñas de redes sociales... y con todo esto finalmente averiguar la dirección exacta del tipo. Se hablan de conceptos interesantes como el keylogger que utilizó para registrar lo que hacía el tipo, o las cookies almacenadas en el ordenador que utilizó para sacar información de la navegación.
Activar los subtítulos y su traducción, con ellos se puede seguir la explicación aunque no se entienda demasiado el inglés.
El vídeo:

Al final las lecciones aprendidas... y la mejor la última: Don't fuck with a hacker's machine

viernes, 24 de diciembre de 2010

Blog: Resumen del 2010, y carta a los reyes para el 2011

Parece que fue ayer cuando escribía mi carta a los reyes para el año 2010 que acababa de comenzar. Y parece también que la mayoría de mis deseos para el blog este año se han cumplido (mantener mi pasión por la tecnología , seguir escribiendo sobre ella, y que esto sea interesante para los lectores). También pedía en mi carta a los reyes incrementar la participación en el blog, cosa que se ha cumplido, aunque no tanto como me hubiese deseado.
A continuación algunas modificaciones que se han realizado en el blog durante el 2010:
  • Durante este año se añadieron etiquetas a los posts, cosa que fue muy bien recibida, pues muchos de vosotros habéis accedido al contenido a través de estas etiquetas.
  • Este año he seguido publicando semanalmente la selección de noticias, y desde hace unos meses he comenzado también a clasificarlas por categoría para facilitar su lectura.
  • También durante este año he quitado la publicidad del blog, me parece que no aportaba nada y hacía su lectura más tediosa (no hago esto para lucrarme, escribo porque me apasiona la tecnología).
Algunos datos cuantitativos sobre la publicación y el acceso al blog:
  • He publicado un total de 188 entradas, que han recibido un total de 171 comentarios (la mayoría de ellos concetrados en unas pocas entradas).
  • Durante este año el blog ha recibido un total de 68.879 visitas, 14.000 anteriores a Octubre, y 54.000 de ellas a partir de este mes, después de la publicación del que ha sido el artículo más visitado del año: Diez Consejos para la Resolución de Problemas Técnicos Inexplicables.

  • El feed RSS del blog ha llegado a los 500 suscriptores, cosa impensable a principios de año, cuando sólo contaba con 63 suscriptores. Muchos de vosotros habéis conocido el blog a partir del artículo sobre resolución de problemas.

    • Las entradas más leídas han sido, por orden, las siguientes:
      1. Diez Consejos para la Resolución de Problemas Técnicos Inexplicables
      2. Nuevo record de computación de cifras del número PI
      3. Historia de la informática: Los Lenguajes de Programación
      4. Miguel de Icaza, nombrado Most Valuable Professional de Microsoft
      5. Diez motivos para programar en Java
      6. Apertura de Datos de la Administración Pública
      7. Historia de la informática: Los virus informáticos
      8. Historia de la informática: Los Sistemas Operativos
      9. Humor: Fauna y especies de las reuniones de trabajo, y sus frases típicas
      10. Lista de los blogs y feeds que sigo
      Y al igual que el año pasado, aquí están mis deseos para este año 2011 que está a punto de comenzar:
      • El principal deseo para este año es seguir teniendo tiempo para escribir artículos. Tengo en mente algunos temas que os podrían interesar, como un artículo introductorio a Business Intelligence, uno más técnico sobre Recursividad en Java, o uno sobre introducción a la Programación Orientada a Objetos. En cuestión de administración pública, tengo en mente escribir uno sobre el Estado del Arte de la Apertura de Datos en España. Si tenéis preferencia por alguno o se os ocurre otro tema que os pudiese interesar, se aceptan sugerencias.
      • Me gustaría asímismo poder seguir estando lo suficientemente informado como para continuar ofrenciendo semana a semana la selección de noticias tecnológicas (algunos de vosotros me habéis comentado en persona que os gusta esta selección - muchas veces uno no tiene tiempo como para leer todo lo que le gustaría, y en estos resúmenes os facilito un poco esa tarea).
      • Estaría encantado de seguir atrayendo vuestra atención y, si es posible, alcanzar el reto de los 1000 suscriptores al feed RSS (es bastante ambicioso, pero me gusta apuntar alto!).
      • Por último, me encantaría que siguiente aumentando vuestra participación en el blog a través de los comentarios, son los que me ayudan a sentirme un poquito menos sólo, y me animan a seguir escribiendo.
      Gracias a todos por seguir ahí, os deseo unas felices fiestas en compañía de los vuestros.

      miércoles, 22 de diciembre de 2010

      La ley SINDE, rechazada en el congreso

      Parece que por una vez la movilización de la ciudadanía ha dado su fruto.
      Después de mucho luchar, online y offline, finalmente ayer NO se aprobó la Ley Sinde en el Congreso de los Diputados. En la votación sólo se contó con el apoyo del PSOE.
      Más información aquí, aquí o aquí.

      lunes, 20 de diciembre de 2010

      Selección de noticias de la semana - 20/12//2010

      Como cada semana, aquí está la selección de noticias clasificadas:

      Wikileaks:
      eAdministración:
      Tecnología:
      Ciencia:
      Programación:
      Humor y Curiosidades:


      viernes, 17 de diciembre de 2010

      Tenemos que impedir la aprobación de la Ley Sinde

      #sindegate
      No podría haber expresado mejor cómo me siento frente a esta burla, que como lo hace Eduardo Arcos de ALT1004Me sumo a la protesta pública en contra de la aprobación de la "Ley Sinde", te animo a que tú también lo hagas. Si esta ley ya olía a estercolero antes de la publicación de los cables de Wikileaks, ahora me parece una tremenda desfachatez, una enorme burla a los ciudadanos a los que supuestamente representan esos políticos.
      Puedes ver en el blog de Enrique Dans quiénes son los diputados que tienen en su mano la aprobación.
      Más información sobre la protesta en Sindegate.

      Impresionante traductor con realidad aumentada para iPhone

      No lo he probado, pero desde luego si funciona tan bien como parece en el vídeo, la aplicación Word Lens para iPhone es sencillamente genial:

      Visto aquí

      jueves, 16 de diciembre de 2010

      Humor: ¿Una tumba antigua? What The Fuck!

      Seguro que habéis oído muchas veces esa expresión, que acostumbramos a abreviar como WTF.
      Me ha hecho mucha gracia esta entrada en Gizmodo, en la que se muestra esta foto de una tumba del siglo XVII con las iniciales WTF.

      miércoles, 15 de diciembre de 2010

      Superamos la barrera de los 500 suscriptores

      Estamos de enhorabuena!
      Parece que fue ayer cuando escribía mi primera entrada en el Blog, pero ya ha pasado un año y medio desde entonces. Revisando las estadísticas de suscriptores al feed RSS del blog, he visto que por primera vez somos (sois) más de 500 personas. Gracias a todos los que seguís día a día el blog, nunca pensé cuando empecé a escribir que llegaríamos a ser tantos.

      martes, 14 de diciembre de 2010

      Humor: ¿Será #ojete trending topic en Twitter?

      Enjuto Mojamuto está intentando que así sea, el 28 de diciembre.
      Por ahora se ha convertido en el segundo hashtag más usado del día en España.

      lunes, 13 de diciembre de 2010

      Diez motivos para programar en Java

      A lo largo de los años he programado ordenadores en muchos lenguajes, desde los más cercanos al código máquina como el Ensamblador, hasta lenguajes funcionales como Haskell, pasando por lenguajes lógicos como PROLOG o imperativos como Basic, Pascal, C, C++, C#, etc. Pero de entre todos ellos hay uno al que le tengo especial aprecio, tal vez porque ha sido el que más he utilizado en los últimos años, o tal vez porque para mí supuso un gran salto en productividad y simplicidad a la hora de desarrollar aplicaciones: el lenguaje Java. Es por eso que me he animado a escribir este artículo sobre las bondades de este lenguaje de programación, que descubrí en la facultad allá por el año 1998. Por aquel entonces yo llevaba bastantes años disfrutando de la programación en lenguaje C, y el aprendizaje de Java me hizo darme cuenta de algunas cosas que, hechas de otra forma, se podían realizar de forma más fácil y/o eficiente.
      A continuación expongo diez de los motivos que a mi entender hacen de Java uno de los mejores lenguajes de programación que se hayan inventado. He intentado no utilizar términos muy técnicos, aunque en ocasiones no he podido evitarlo ya que eran necesarios para la correcta explicación del motivo.

      Motivo 1: Independiente de la Plataforma
      La principal característica de Java es que es independiente de la plataforma. Esto significa que cuando estás programando en Java, no necesitas conocer a priori el tipo de ordenador o el sistema operativo para el que estás programando. Puedes ejecutar el mismo programa en un PC con Windows, otro con Linux, en un Servidor SUN con sistema operativo Solaris, o en un teléfono móvil de última generación. Esta es una ventaja muy significativa, sobre todo teniendo en cuenta que en la actualidad millones de ordenadores heterogéneos están interconectados entre sí a través de Internet… ¡y todos ellos pueden ejecutar el mismo código escrito en Java!
      La independencia de la plataforma fue un reto perseguido por anteriores lenguajes de programación como el lenguaje C, pero no fue hasta la llegada de Java cuando se consiguió en su totalidad. ¿Cómo se consigue hacer un lenguaje que no dependa de la máquina en la que se ejecuta? James Gosling y el resto de creadores de Java se inventaron una máquina ficticia, llamada Máquina Virtual Java (JVM). De este modo, cuando tú estás haciendo un programa en Java, lo estás programando para que funcione en esta máquina virtual (que no existe realmente). Lo único que falta es hacer un simulador de esta máquina virtual para el entorno en concreto donde necesitas ejecutar tu programa, y será este simulador el que ejecute el código. Así, cuando se ejecuta un programa escrito en Java, en realidad lo que estamos ejecutando es un simulador de esta máquina virtual, y este simulador es el que realmente ejecuta el código. Por eso se dice que Java es un lenguaje Compilado e Interpretado a la vez, porque el código se compila a un lenguaje intermedio de una máquina que no existe (lenguaje ByteCode), y cuando queremos ejecutarlo, es un simulador (intérprete) el que lo hace.

      Figura 1: El código Java es Compilado y luego Interpretado

      Motivo 2: Orientado a Objetos
      Otro de los grandes avances frente a lenguajes como C es que el lenguaje Java es orientado a objetos. El paradigma de programación orientada a objetos supuso un gran avance en el desarrollo de aplicaciones, ya que es capaz de acercar la forma de programar a la forma de pensar del ser humano. Así, al igual que pensamos en objetos como una silla, una mesa o un coche, cuando programamos en un lenguaje orientado a objetos también tenemos trabajamos con conceptos similares.
      Hay que destacar que Java no fue el primer lenguaje orientado a objetos, ya existían otros lenguajes como Smalltalk o C++ (evolución de C con características de orientación a objetos).

      Figura 2: Un simple programa escrito en Java

      Motivo 3: Gestión de Memoria
      Cuando estamos programando y necesitamos cierta cantidad de memoria RAM para albergar datos, es necesario que el programa solicite esa memoria al sistema operativo. En lenguaje C, cuando el programa no necesita utilizar más esa memoria, es necesario que explícitamente la devuelva al sistema. Uno de los motivos que más quebraderos de cabeza ha traído a los programadores en lenguaje C es la correcta liberación de la memoria. Si se te olvida liberar algo de memoria, cuando el programa termina esa memoria se queda ocupada (aunque el programa ya no siga ejecutándose), son los famosos “Memory Leaks”.
      En Java decidieron romper con el sistema tradicional de liberación de memoria, haciendo que el programador ya no fuese el responsable de esa tarea. Así, lo único que necesita hacer el programador es solicitar la memoria al sistema. Existe un proceso independiente denominado “Garbage Collector” que se encarga de liberar automáticamente toda la memoria que ya no se utiliza, de manera que la liberación de memoria se hace de manera trasparente al programador.

      Motivo 4: Facilidad de Aprendizaje
      El lenguaje Java es relativamente fácil de aprender comparado con otros. Si se conoce algún lenguaje de programación como Pascal o C, la transición a Java no es muy costosa, ya que la sintaxis es muy parecida. Si no se conocen otros lenguajes, Java tiene algunas ventajas en cuanto a facilidad de aprendizaje, como la no existencia de los denominados punteros (que al principio suele costar bastante asimilar al aprender a programar en C), o la ya mencionada gestión automática de memoria gracias al Garbage Collector. Además, el aprendizaje de Java se puede realizar de manera gradual, según intentamos hacer en la asignatura de introducción a la programación del primer curso del grado en informática de la UC3M. Así, primero se explican las características del lenguaje puramente imperativo (variables, bucles, condicionales y métodos/funciones), y una vez asimilados estos conceptos, se introducen los de la programación orientada a objetos.

      Motivo 5: Librerías Estándar
      Una de las características que más potencia aporta al lenguaje Java es que viene acompañado de una serie de librerías estándar para realizar multitud de operaciones comunes a la hora de programar. Es el llamado Java API, que incluye tres bloques básicos: Java Standard Edition (JSE), Java Enterprise Edition (JEE) y Java Micro Edition (JME). La versión Standard cubre el desarrollo de aplicaciones de propósito general, y es la base sobre la que se apoyan las otras dos. La versión Enterprise proporciona librerías para el desarrollo de aplicaciones empresariales multicapa (ofrece los estándares para el desarrollo de aplicaciones en Servidor). La versión Micro está especialmente orientada a dispositivos embebidos como teléfonos móviles, PDA’s, etc.
      Figura 3: El API de J2SE

      Motivo 6: Comunidad Open Source
      Otro de los motivos que aporta gran potencia al lenguaje es la gran comunidad de desarrolladores existente. De esta comunidad han surgido multitud de librerías de código abierto que se han convertido en estándares de-facto. Un ejemplo de comunidad de desarrolladores es la Asociación JavaHispano, que en su web ofrece todo tipo de información relativa a Java en castellano. Otro gran ejemplo de comunidad es el Proyecto Jackarta Jakarta de la Fundación Apache, que alberga y da soporte a multitud de librerías comúnmente utilizadas en el mundo del desarrollo Java. A esta lista se podrían añadir multitud de proyectos Open Source que sirven de punto de partida para muchos desarrollos.

      Motivo 7: Entornos de Desarrollo
      Cuando empecé a programar en Java, era muy común entre desarrolladores utilizar editores de texto para programar (como NotePad o cualquier editor común en Windows, o Vi en Linux). El desarrollo con estos editores era bastante lento, porque aportaban muy pocas funcionalidades específicas del lenguaje (básicamente iluminación de sintaxis). Sin embargo, hoy en día existen excelentes editores (IDEs) que aportan multitud de ayudas a la programación, haciendo que el desarrollo sea más fluido y cómodo. Ejemplos de excelentes IDEs son Eclipse, NetBeans o el excelente IntelliJ Idea.

      Motivo 8: Frameworks para desarrollo Web
      Por encima de los estándares que ofrece JEE para el desarrollo de aplicaciones Java en el servidor (Servlets, JSP’s, etc.), existen multitud de frameworks y librerías que ofrecen capas para el desarrollo de aplicaciones Web de manera más ágil, organizada y escalable. Así, para la persistencia en base de datos podemos utilizar librerías como Hibernate. Como framework Modelo-Vista-Controlador existen alternativas como Struts, Spring, JavaServer Faces (JSF), etc. Estos frameworks facilitan y agilizan el desarrollo de aplicaciones en la parte Servidor.

      Motivo 9: Gestión de Errores
      Otra de las soluciones más elegantes propuestas por el lenguaje Java a uno de los problemas recurrentes en otros lenguajes de programación es la gestión de errores a través de excepciones. En Pascal, C o C++ no existe un mecanismo específico para la gestión de los errores que puedan producirse en el código. El programador tiene que analizar cada caso concreto e idear la mejor forma de resolverlo. Sin embargo, con Java se introdujo un mecanismo común para la gestión de errores, a través de las denominadas Excepciones. Cuando se produce un evento excepcional, se altera el flujo normal de ejecución del programa y se gestiona un flujo alternativo de control de este tipo de errores.

      Motivo 10: Mutithreading y Sincronización
      Cuando se estudia el funcionamiento de los sistemas operativos en ingeniería informática, existen diversas formas de abordar la gestión de múltiples hilos de ejecución paralelos (threads). Asimismo, hay diversos mecanismos para poner de acuerdo a los hilos en el acceso a los recursos del sistema, de manera que dos hilos no puedan acceder a la vez al mismo recurso (imagina que dos procesos quieren imprimir a la vez por la impresora, hay que ponerlos de acuerdo para que primero lo haga uno y luego el otro). 
      No quiero profundizar demasiado en temas técnicos, tan sólo mencionar que la solución que aporta Java para la gestión multi-hilo y para la orquestación de procesos (basada en bloques sincronizados) me parece de las más elegantes y fáciles de utilizar que he visto.

      Algunas desventajas
      No quería terminar el artículo sin dejar claro que no todo son ventajas en Java. Se trata de un lenguaje con muchas cualidades, pero también tiene sus puntos flojos. Así, al tratarse de un lenguaje interpretado, el rendimiento en la ejecución de programas suele ser un poco menor (aunque este efecto se palió bastante con los compiladores Just-In-Time). Además, al contrario que los programas compilados a código nativo, sólo podemos ejecutar un programa en Java si disponemos de una máquina virtual (JVM), sin este simulador no podremos ejecutar ningún programa escrito en Java. Existen también puntos mejorables en algunos ámbitos como la gestión de Excepciones, políticas del Garbage Collector, polimorfismo, etc., que supongo irán mejorando con el tiempo.

      Referencias

      jueves, 9 de diciembre de 2010

      Video: Viaje por todas las galaxias conocidas

      Me ha gustado mucho este vídeo publicado por la NASA, que contiene una recreación en 3D de todas las galaxias conocidas hasta la fecha. Me ha recordado un poco a la primera escena de la película Contact, que tanto me gustó la primera vez que la vi.

      miércoles, 8 de diciembre de 2010

      A favor de la liberación de Julian Assange


      #freeassange
      Llego un poco tarde, pero me acabo de enterar de que Julian Assange fue detenido ayer en el Reino Unido por voluntad propia. Me uno a la protesta mundial en contra de la detección de este hombre, que ha tenido la valentía de hacer lo que muchos de nosotros no seríamos capaces, aún a costa de poner en riesgo su integridad física.
      Podéis leer un muy interesante artículo titulado "La verdad siempre ganará" escrito por Julian en "The Australian", en inglés o aquí un resumen y comentarios al Español.
      Mencionar también el interesante post sobre la noticia escrito en El Blog de Enrique Dans.

      viernes, 3 de diciembre de 2010

      Selección de noticias de la semana - 03/12/2010

      Como cada semana, aquí está la selección de noticias agrupadas por tema:

      eAdministración:
      Wikileaks:
      Ciencia:
      Tecnología:
      Humor y Curiosidades:

      jueves, 2 de diciembre de 2010

      Defraudado por el anuncio "extraterrestre" de la NASA

      Defraudado. No encuentro una palabra mejor para describir mi estado de ánimo al conocer el contenido del anuncio de la NASA del que ayer os hablé con tanta emoción. Resulta que lo "único" que han descubierto es que ciertas bacterias pueden usar arsénico en lugar de fósforo en su ADN. Y pongo "único" entre comillas porque no soy biólogo, así que desde mi desconocimiento, a primera vista me parece un descubrimiento importante, pero ni mucho menos para darle el bombo que le ha dado la NASA al asunto.
      El tema me suena a "vamos a vender esto como si fuese el descubrimiento del siglo para ver si dejan de bajarnos el presupuesto año tras año".
      Más información sobre la noticia aquí, aquí, aquí o aquí (aquí en Inglés).

      Resuelven el problema matemático de Los Conjuntos Generalizados de Sidon


      Leo en El País que dos matemáticos Españoles junto a un Húngaro han conseguido resolver la generalización de un problema matemático planteado hace más de 80 años: "Los Conjuntos Generalizados de Sidon".
      El problema fue planteado por Simon Sidon a Paul Erdos, quien resolvió la versión del problema para N=1, pero no encontró una solución generalizada para todo N. El problema de Sidon para N: ¿Cuál es el mayor tamaño de un conjunto de números, todos ellos menores que una cantidad dada, en el que todas las sumas de dos elementos del conjunto dan como mucho N resultados distintos?

      Yo conocía a Erdos por su brillante demostración de la Conjetura de Bertrand basada en la combinatoria, que me fascinó. Este matemático del siglo XX solía hablar sobre "El Libro". Se trataba de un teórico libro escrito por Dios, con las más bellas y simples demostraciones matemáticas a los problemas más complejos. Cuando encontraba una demostración brillante, Erdos solía afirmar "Esta es de las de El Libro" (El año pasado leí un interesante libro dedicado a Erdos - "El libro de las demostraciones matemáticas").


      Datos sobre los tres matemáticos autores de la demostración:
      • Javier Cilleruelo es miembro del Departamento de Matemáticas de la UAM y del Instituto de Ciencias Matemáticas y es el responsable del grupo de teoría combinatoria de números.
      • Carlos Vinuesa, estudiante de Javier, está en la actualidad realizando una estancia posdoctoral en Cambridge con el profesor Ben Green.
      • Imre Ruzsa es miembro de la prestigiosa Academia de Ciencias de Hungría y uno de los mayores expertos en teoría combinatoria de números.


      Más información aquí, aquí o aquí.

      miércoles, 1 de diciembre de 2010

      Humor: ¿Vemos los hombres menos colores que las mujeres?

      Está claro que sí:

      Visto en Microsiervos.

      ¿Descubierta vida en las lunas de Saturno?

      Me acabo de quedar de piedra al leer esta noticia. Parece ser que la NASA ha convocado una rueda de prensa con temática "un hallazgo astrobiológico con gran impacto en la búsqueda de vida extraterrestre". ¿Habrán encontrado indicios de vida en Titán, una de las lunas de Saturno?

      Noticas relacionadas:
      NASA anuncia impactante anuncio para el jueves. ¿Vida extraterrestre?
      La atmósfera de Titán, proclive para generar vida.
      Descubierto Oxxigeno en una de las lunas de Saturno

      Actualización: El comunicado de la NASA
      Actualización: Algunas teorías

      lunes, 29 de noviembre de 2010

      Selección de noticias de la semana - 29/11/2010

      Como cada semana, aquí está la selección de noticias, agrupadas por tema:

      eAdministración:
      Ciencia:

      Tecnología:

      Programación:

      Matemáticas:

      Humor y Curiosidades:

      miércoles, 24 de noviembre de 2010

      Uso de Apache Maven para gestión del ciclo de vida de aplicaciones Java

      Hace tiempo que tenía ganas de escribir sobre las virtudes de Apache Maven. Para los que no la conozcáis, se trata de una potentísima herramienta para la gestión del ciclo de vida y dependencias de proyectos escritos en Java. Si conocéis ant, maven es una evolución que permite gestionar todas las fases de un proyecto java (compilación, ejecución de pruebas, despliegue en distintos servidores de aplicaciones, etc.) configurando todo esto en un fichero xml.
      En ICM (Comunidad de Madrid) hemos creado un nuevo framework para el desarrollo de aplicaciones Java/J2EE (framework ATLAS), y maven es la herramienta sobre la que se sustentan todos los procesos del framework. Os comento algunas de las características de maven que me parecen interesantes, y cómo hacemos uso de ellas en ATLAS:
      • Gestión de dependencias:
        • Un proyecto gestionado con Maven no necesita incluir las librerías (jar's) dentro del proyecto, es decir, no necesitamos bajarnos todos los jar's de un proyecto y situarlos en el directorio de librerías. Para utilizar una librería desde nuestro proyecto, sólo hay que indicar la versión de la librería que deseamos utilizar en el fichero de configuración de maven (pom.xml), y maven se encarga de descargarla desde repositorios públicos existentes.
        • Además, si una determinada librería a su vez tiene dependencias con otras, maven accede de forma recursiva a estas otras hasta descargar todo lo necesario para que nuestro proyecto funcione (dependencias transitivas). Esta gestión de dependencias de los jars es muy potente, y nos permite resolver los típicos conflictos de versiones y duplicidad de librerías en aplicaciones Java.
        • En ATLAS todas las librerías que pueden ser incluídas en cualquier proyecto Java se publican en un repositorio propio al que los proveedores (los que desarrollan las aplicaciones) tienen acceso. Cuando un proveedor hace entrega de una aplicación, sólo entrega el código fuente y el fichero de configuración de maven (no entrega jars), y es durante la instalación de la aplicación en los distintos entornos de ICM cuando se descargan las librerías necesarias para compilar ese proyecto. Con esto nos aseguramos que ningún proveedor incluye en su aplicación una librería que no esté autorizada.
      • Control de Versiones:
        • En maven todo está versionado. Cualquier proyecto realizado con maven necesita tener una versión. Lo mismo sucede con todas las librerías de las que depende el proyecto.
        • Al estar gestionado por maven, todo en ATLAS también está versionado. Así, actualmente, cada mes publicamos una nueva versión/revisión del framework. Cada versión del framework puede utilizar distintas versiones de librerías, sin que ello suponga ningún dolor de cabeza (proyectos con versiones distintas del framework conviven sin problemas en el mismo servidor de aplicaciones). Cuando arranca un nuevo desarrollo, éste lo hace con la última versión de atlas disponible en ese momento. Las versiones liberadas de ATLAS no se modifican, por lo que el framework puede evolucionar sin el riesgo de afectar a los proyectos en curso.
      • Generación de Aplicaciones a partir de Arquetipos:
        • Maven permite la creación de plantillas de partida para aplicaciones, llamadas arquetipos. Con esto, cuando deseamos empezar un nuevo proyecto, en lugar de empezar desde cero podemos utilizar una de estas plantillas como punto de partida.
        • En ATLAS hemos creado varios arquetipos como punto de partida para las aplicaciones que deseen desarrollar los proveedores. Así, tenemos arquetipos para aplicaciones web, aplicaciones batch, librerías, servicios web, etc. Esto ahorra semanas de trabajo al proveedor, ya que al generar una aplicación desde un arquetipo ésta es totalmente operativa y contiene ejemplos de uso de todos los componentes de ATLAS.
      • Gestión de la configuración dependiendo del entorno:
        • Maven permite la creación de perfiles, que son distintas configuraciones del ciclo de vida de la aplicación. Al compilar y desplegar una aplicación podemos decidir activar uno de estos perfiles, y así se utilizará una configuración específica para realizar esta compilación/despliegue.
        • En ATLAS utilizamos los perfiles de Maven para configurar el despliegue de una aplicación en los distintos entornos (entorno de desarrollo, validación, preproducción, producción, etc.). El proveedor define todas las variables de configuración de la aplicación en un fichero llamado "environment.properties", que es distinto para cada entorno. Así, cuando el personal de ICM necesita desplegar una aplicación en un entorno determinado, sólo es necesario ejecutar maven activando el perfíl correspondiente a dicho entorno. Maven se encarga de desplegar automáticamente la aplicación en el servidor Weblogic del entorno especificado. Esto simplifica enormemente los procesos internos de despliegue de aplicaciones (incluidos los pasos a producción)
      • Desarrollo ágil con servidor de aplicaciones local:
        • Puede configurarse Maven para que automáticamente ejecute un servidor de aplicaciones y arranque la aplicación en la que estamos trabajando sobre dicho servidor (jetty, tomcat, etc.).
        • En ATLAS, aunque el servidor final en el que se despliegan las aplicaciones es Oracle Weblogic, se puede ejecutar maven de manera que levante automáticamente un servidor jetty para probar nuestra aplicación durante la fase de desarrollo. Esto acorta los tiempos de desarrollo, ya que para probar una aplicación web no es necesario generar el fichero ".war" y desplegarlo en un servidor, maven hace todo esto automáticamente.
      • Generación automática de un site en HTML con información del proyecto:
        • Con maven puede ejecutarse una tarea que genera automáticamente un site en HTML con toda la información relativa al proyecto (incluyendo JavaDoc, dependencias, y un montón de cosas más).
        • El framework ATLAS se acompaña de una normativa en la que se indica a los proveedores una serie de reglas a seguir para el desarrollo de aplicaciones. Además de utilizar la generación automática del site para todas las aplicaciones, hemos desarrollado un plugin propio que es capaz de publicar en este site un informe sobre el grado del cumplimiento de la normativa de una determinada aplicación. Esto supone un importantísimo avance y ahorre de tiempo respecto al procedimiento anterior (el proveedor no sabía si estaba cumpliendo bien o mal la normativa hasta que no entregaba la aplicación finalizada). Ahora, el proveedor puede ejecutar esta herramienta en cualquier momento, y corregir los incumplimientos de la normativa durante el desarrollo. Además, con esta herramienta se ha automatizado gran parte del procedimiento de comprobación de la calidad de un proyecto (realizado por un departamento interno de ICM), que anteriormente se realizaba de manera manual.
      Estas son algunas de las virtudes de Maven, y me dejo muchas en el tintero. Al comenzar el desarrollo de ATLAS, maven era una simple herramienta de compilación, pero gracias a su potencia se ha convertido en la piedra angular sobre la que gira todo el ciclo de vida de las aplicaciones desarrolladas con este framework, ahorrando mucho tiempo y quebraderos de cabeza tanto a desarrolladores como al personal de ICM que se encarga de instalar y mantener las aplicaciones en los distintos entornos.

      lunes, 22 de noviembre de 2010

      Selección de noticias de la semana 21/11/2010

      Como cada semana, aquí está la selección de noticias y posts interesantes:

      eAdministración:
      Ciencia:
      Tecnología e Internet:
      Programación:
      Humor y Curiosidades:

      Video: Chess Terminator ganando al campeón del mundo de ajedrez

      Video de una interesante partida a 15 minutos finish entre Vladimir Kramnik (actual campeón del mundo en ajedrez), y Chess Terminator, un robot capaz de mover las fichas y dar al reloj él solito.

      Visto en Gizmodo.

      domingo, 21 de noviembre de 2010

      Video: Steve Ballmer anunciando Microsoft Windows 1.0 en 1986

      Quiero celebrar los 25 añitos que acaba de cumplir Microsoft Windows con este vídeo de Steve Ballmer allá por 1986 anunciando su software. El tipo está completamente pirado... como mucha de la gente de la que triunfa.

      Y hablando de pirados, viendo este vídeo me he acordado del impresionante discurso de Steve Jobs que publiqué hace tiempo y que es uno de los mejores que he visto. Aquí os lo dejo, para los que no lo disfrutasteis entonces:

      lunes, 15 de noviembre de 2010

      Humor: Me he enterado de que han robado en el apartamento contigüo...

      ... ¿CONMIGÜO????

      Selección de noticias de la semana - 15/11/2010

      Como cada semana, aquí está la selección de noticias y posts interesantes:

      eAdministración:
      Tecnología e Internet:
      Ciencia:
      Programación:
      Humor y curiosidades: