fnBrito.com
ClinicalDataBase
ClinicalDataBank
WebLog

« August 2008
SunMonTueWedThuFriSat
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
      
Hoy

XML


20050415 Friday April 15, 2005

Más sobre piratería:: Estaba escribiendo un comentario al último post de Aitor, pero como me estaba quedando bastante largo, he preferido llevarlo a mi terreno.

Ciertamente hay bastante hipocresía en todo esto de la piratería, y en ambas partes. Los que venden se pasan de listos al querer vender más de lo que les corresponde, y los que compran (o mejor dicho, los que NO compran) se pasan de listos al querer acceder a un contenido que técnicamente no tienen derecho a disfrutar. Lo que no podemos olvidar es que aquí la última palabra la tiene el autor, o en su caso, el representante que él elija, o sea, la distribuidora de su material. De igual forma que no se puede obligar a una empresa a liberar todo su software bajo la GPL (por mucho que le pese a algunos), tampoco se puede obligar a un autor a que te regale su obra. ¿A que dicho así suena fatal?

Por otro lado, no se puede acusar a nadie de nada por bajarse una peli de la mula, siempre y cuando no la venda NI (como bien dice Aitor) LA REDISTRIBUYA, y eso incluye dejarla en la carpeta de compartidos. O sea, técnicamente, si yo me bajo una peli, la grabo en un cd y la borro de los compartidos (o la cambio de sitio), y la veo en mi casa, no estoy haciendo nada ilegal (insisto: técnicamente).

Pero, aparte de que todo el mundo deja luego la peli compartida, con lo cual sí está redistribuyendola, parece obvio que si me la he bajado es porque alguien la dejó liberó inicialmente, y si seguimos la cadena, al final llegamos al que la pilló en el videoclub, o tenía una copia de previsualización, o lo que sea, y ESE SÍ QUE ESTÁ PRINGADO DE KK, porque es el que, de forma directa y explícita, ha violado la restricción que el autor (que es el único con legitimidad para decidir qué quiere que hagamos con su obra) le había impuesto mediante la famosa pegatina o mensaje antes de la peli que tanta rabia le da a Aitor leer.

Conclusión: señores de la SGAE, dejen de penalizarme por algo que yo no hago, y a todos los demás, un poco más de respeto a los autores. Apuesto un brazo a que todos los que se rasgan las vestiduras defendiendo la "copia privada" hoy, si mañana tuvieran que vivir del licencias por su software no pensarían igual.

(2005-04-15 14:31:59.0) Permalink Comentarios [0]

20050405 Tuesday April 05, 2005

Si no vas a mejorar lo que ya está escrito...:: Simplemente, suscribo al 100% lo que publica hoy José Cervera en El Retiario.
(2005-04-05 09:57:38.0) Permalink Comentarios [1]

20050218 Friday February 18, 2005

ConfAIt:: He creado un nuevo proyecto en javaHispano.net, llamado ConfAIt. Mi idea es desarrollar un framework para componentes autoconfigurados, que sean capaces de adaptar su configuración a la carga de trabajo en tiempo real. Por ejemplo: supongamos que tenemos un pool de hilos. Básicamente, el pool tendrá un número de Threads en memoria, con una prioridad determinada, y una cola de Runnables, que serán ejecutados en orden fifo a medida que vayan quedando hilos libres.

Pues bien, lo ideal sería que el número de hilos en reserva, así como su prioridad, pudiera cambiar en tiempo de ejecución para adaptarse a la demanda, definida por el número de tareas que hay esperando en un momento particular, el tiempo medio de espera de las tareas, la memoria libre en la máquina virtual, etc... Eso es lo que hace ConfAIt: proporciona un marco de trabajo para definir componentes que se configuren solos en tiempo de ejecución.

La implementación actual utiliza un algoritmo genético para resolver el problema de encontrar la configuración "óptima" del componente en cada momento, y se deja al componente la responsabilidad de enumerar los cambios posibles en la configuración, y la función de idoneidad que evalúa cada conjunto propuesto de cambios.

Creo que la idea es interesante, y puede dar bastante juego, por ejemplo para servidores de aplicaciones, colas de mensajería, pools de todo tipo... y además es un campo divertido en el que desarrollar. Si te animas a echarme una mano ya sabes dónde encontrarme.
(2005-02-18 12:58:46.0) Permalink Comentarios [172]

20050120 Thursday January 20, 2005

¿Quién me llama?:: Una píldora de esas que surgen por casualidad en el curro diario...

En ocasiones necesitamos que un método sepa la identidad del que le llamó, para actuar en consecuencia. Supongamos por ejemplo que tenemos un DataSource al que acceden distintos componentes de nuestra aplicación. Y supongamos que hay componentes pensados exclusivamente para acceder en modo lectura, así que decidimos que en ese caso les devolvemos un wraper sobre la conexión real que impida lanzar consultas SQL que no empiecen por "SELECT". No parece demasiado complicado, salvo por el hecho de que en la interfaz DataSource sólo tenemos un método getConnection() (y otro getConnection(String usr, String pwd), pero que no es la solución), así que ni podemos utilizar un parámetro (algo del tipo getConnection(Object caller)), ni tampoco usar métodos distintos en cada caso.

En este punto necesitamos que getConnection sea capaz de averiguar quién le llamó, para actuar en consecuencia. Así es como lo estamos solucionando nosotros: el siguiente método nos permite hacerlo de una forma muy sencilla:

    /**
     * Devuelve la traza de clases en la llamada al método, con
     * una profundidad máxima de [depth] elementos.
     * @param deph
     * @return
     */
    public static Class[] whoCalledMe(int depth){ 
       StackTraceElement[] elements = new Throwable().getStackTrace();
       Class[] trace = new Class[Math.min(depth,elements.length)];
       for(int i = 0; i<trace.length;i++){
           try {
            trace[i] = Class.forName(elements[i].getClassName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
       }       
       return trace;
    }

Veis que el procedimiento es bastantes sencillo: crear un Throwable y pedir el StackTrace. De esta manera tenemos los nombres de las clases involucradas en la llamada, siendo la primera obviamente la que llamó al propio whoCalledMe, y la segunda la que llamó al método que llamó a whoCalledMe, y así sucesivamente.
(2005-01-20 10:59:25.0) Permalink Comentarios [4]

20050118 Tuesday January 18, 2005

Gran Hermano, pero de verdad:: Me he encontrado con una "curiosidad" que es a la vez fascinante y peligrosa. Resulta que, como en Google puedes hacer búsquedas por url, poniendo inurl:XXXX, si conoces algún software que publique datos a través de urls de formato más o menos estándar, google las indexa según este criterio. Un ejemplo de esto son las webcams con servidor web incorporado, que publican en streaming lo que van grabando en tiempo real, dándote incluso la posibilidad de orientarlas o hacer zoom!... Dadle a Google una búsqueda como esta: inurl:"ViewerFrame?Mode=" y pasad un rato divertido (sobre todo son garajes...)
(2005-01-18 12:39:00.0) Permalink Comentarios [1]

20050117 Monday January 17, 2005

Soy un Intruso:: Pues sí señores, me dedico a algo que no es lo mío, qitándole el trabajo a algún ingeniero informático y haciendo que los que sí tienen trabajo cobren menos por mi culpa...

¿PERO ESTAMOS DE COÑA O QUÉ?

Los que me conocen saben que no soy amigo de polémicas, y mucho menos de discutir sobre temas que me parecen absurdos desde la base. Pero es que éste me toca las narices de forma especial, porque me siento discriminado por mis propios compañeros de profesión.

Lo primero al hablar de intrusismo es definir de qué hablamos. No es lo mismo un teleco que curra de administrador que un matemático desarrollando, que un biólogo o un abogado. Si vamos a meter a todos en el mismo saco vamos por mal camino. He conocido a gente que habiendo estudiado derecho, biología, geología, o simplemente nada, veían en "programar con java" (o C#, o VB) una salida profesional y decidían intentarlo. Se apuntaban a un "máster" de esos que 240h. en una academia, y salían a pelear un puesto de trabajo. La mayoría lo encontraban (eran buenos tiempos), aunque tarde o temprano muchos acababan viendo que no era lo suyo. Otros sin embargo se han mantenido, y personalmente me parece completamente respetable. Han sabido compensar sus carencias con trabajo duro, y si están donde están es porque valen. Ni las empresas ni los clientes son tontos para mantener incompetentes.

En cuanto a "los otros", fundamentalmente matemáticos y físicos, ojito al llamarlos intrusos: el 100% de lo que habéis estudiado en la carrera lo descubrieron/desarrollaron/inventaron ellos. De hecho ellos estaban en esto mucho antes que vosotros. Preguntas de concurso: ¿que formación tenía George Boole? ¿Qué formación tenían Alan Turing? ¿Que formación tenía Ken Thompson? ¿Qué formación tenía Dennis Ritchie? ¿Qué formación tenía Bjarne Strustrup (o como se escriba)? ¿y McCulloch y Pitts? Si eres informático y no te suena algún nombre, mira en tus libros de texto.

Puede que un licenciado en psicología tenga lagunas en arquitectura de sistemas, algoritmia, etc, pero ¿sacamos una lista de psicólogos (y filósofos, y matemáticos, y...) que hay entre los padres de la inteligencia artificial? Si, ésa de cuyas aguas beben los que se dedican a programar buscadores, filtros bayesianos para spam, y otros agentes inteligentes.

Me jode mucho que gente que se dedica a lo mismo que yo, que afronta los mísmos problemas que yo a diario, me trate como un "intruso" porque no estudié lo mismo que él... Me parece, en general, una forma de discrimación gratuíta que demuestra muy poca categoría personal, y en particular en el caso de físicos y matemáticos, una solemne estupidez.

(2005-01-17 10:57:02.0) Permalink Comentarios [170]

20041221 Tuesday December 21, 2004

II Congreso javaHispano:: Bueno, pues finalmente llegó, y pasó, el Congreso. Destacable sin duda el nivel de las ponencias, bastante alto y repartido entre las cuestiones más técnicas/teóricas como las cuestiones prácticas de todos los días.

En especial me impresionó la ponencia de Alexandre Vasseur sobre AOP con anotaciones, y la mesa redonda del primer día fue bastante interesante.

Hace siglos, cuando me ganaba la vida, entre otras cosas, dando clases en una academia, me tocó impartir un máster de .NET, y viniendo del mundo J2EE ciertamente no me resultó dificil ponerme al día. Sin entrar en polémicas sobre cuál es mejor, hubo dos cosas en especial que me llamaron la atención positivamente de la plataforma y que quería ver en Java:

  • Un entorno que diera soporte para herramientas RAD en aplicaciones web, a lo ASP.NET. Y ya lo he visto, con JSF. La demostración de Ángela Caicedo sobre Java Studio Creator era exactamente lo que quería que tuviera J2EE. No es que yo sea muy fan de ese tipo de herramientas personalmente, pero lo que sí tengo claro es que son imprescindibles para extender una plataforma de desarrollo. Hoy en día hacer aplicaciones web es una necesidad de todos los días, y no podemos esperar que siempre haya un gurú de J2EE a mano si lo que queremos es que la gente use Java.
  • Anotaciones en el código. En .NET, para desarrollar un servicio web simplemente marco la clase y los métodos que quiero presentar como "accesibles vía web" (no recuerdo la palabra clave que usan), y con un botón del Visual Studio despliego el servicio, se crean los proxies necesarios, los ficheros de configuración y todo lo demás. Hoy tenemos la base para ello en Java. La ponencia de A. Vasseur, uno de los fundadores de AspectWerkz, iba sobre cómo puedo desarrollar mis aspectos y asociarlos al código mediante anotaciones, de forma que ya no dependemos de patrones del tipo "call set*(..)" que fallan en cuanto cambio el nombre de un método. Recomiendo a todo el mundo, cuando las ponencias estén disponibles para descarga, que le eche un vistazo al ejemplo que presenta, marcando métodos como "asíncronos" para que se ejecuten en segundo plano de una forma tan limpia como no habíamos visto antes.
En definitiva, un congreso muy interesante, espero que la consolidación del Congreso javaHispano como una tradición anual (más o menos), que vaya mejorando en cada edición y atraiga la atención de empresas y desarrolladores alrededor de la comunidad Java.
(2004-12-21 10:13:24.0) Permalink Comentarios [0]

20041114 Sunday November 14, 2004

Ya estoy de vacaciones:: (2004-11-14 15:11:31.0) Permalink Comentarios [446]

20041104 Thursday November 04, 2004

How Bush Won the Election:: A veces es imposible estar en todo, sobre todo en una ocasión como ésta. Y a veces se nos escapan cosas que dan lugar a pantallazos como este, del sitio de la cnn sobre las elecciones yankis. Fijaos en el nombre del archivo, que corresponde a la foto de G. Bush y Laura.
(2004-11-04 11:43:00.0) Permalink Comentarios [163]

20041022 Friday October 22, 2004

Ordenador, ¿Me ha escrito alguien?:: Es increíble todo lo que se puede hacer con los documentos escritos... Andaba yo buscando nuevos temas para leer en el tren de vuelta a casa y terminé echando una semanita jugando a leer...

Empezando por por un par de artículos muy interesantes publicados en el laboratorio de inteligencia artificial del mit (esa fuente inagotable de artículos geniales) sobre filtros bayesianos, y comparación con otros algoritmos de clasificación:

La lista completa de publicaciones está aquí (ojo, es un archivo algo largo). Merece la pena guardarlo en favoritos.

De ahí, y con ayuda de google, me encontré con el proyecto Classifier4J, un clasificador de texto que permite, de forma muy sencilla incorporar a nuestra aplicación un filtro bayesiano de texto, por ejemplo para darle al botón "Buscar" de nuestra aplicación algo más de vida de la que le da el "SELECT [...] FROM [...] WHERE descripcion LIKE '%filtro%' (de lo de filtrar spam ni hablo, que ya está muy trillado, aunque también se puede...). Hay otra característica muy curiosa, que se proporciona casi de refilón, y es la capacidad de resumir un texto: usando un SimpleSummariser puedo obtener un resumen de un texto utilizando el número de frases que yo le diga (¡mola!).

Siguiendo siguiendo, llegué a TextMining.org, una página dedicada a la minería de texto ("Analizar texto y extraer información útil sobre él"). Mantienen una librería de extracción de texto que permite pasar PDF's y Word (6.0 en adelante) a texto plano. Pero lo mejor de TextMining fue el enlace a GATE, un proyecto muy interesante para desarrollar una plataforma de análisis de texto natural. La idea es poder analizar sintácticamente un texto (en general, asociarle anotaciones de cualquier tipo), identificar el sujeto y el predicado de una frase, sacar todos los nombres propios de un documento, en fín, un montón de cosas.

Además, GATE (que por cierto tiene licencia GPL), es toda una plataforma de desarrollo con una arquitectura basada en componentes bastante currada (y madura, ya van por la versión 3.0), con la que puedo desarrollar mis propios componentes de interpretación de texto y exportarlos en un jar para incluirlos en mi aplicación. Hay mucha documentación sobre cómo desarrollar los componentes y enlazarlos posteriormente desde nuestro código.

Para los que estén preguntándose para qué puede servir esto... ¿no habéis visto ninguna peli en la que le hablen a los ordenadores? Hace mucho tiempo que sabemos cómo "escribir" lo que nos dicta el usuario (IBM ViaVoice y demás)... pero pronto seremos capaces de hacer que el ordenador entienda lo que le hablamos. Mi madre será capaz de ponerse delante de la pantalla (con micro incorporado) y decir "quiero leer mi correo", o "dime si tengo mensajes", o "¿me ha escrito alguien?", y el ordenador sabrá en todo caso que debe arrancar el gestor de correo... La barrera que presentan los ordenadores al usuario medio se deben a que éste debe aprender la forma de tratar a la máquina, pero el día que la máquina pueda aprender a interpretar lo que el usuario le pide, esa barrera habrá desaparecido... y entonces sí sabremos lo que es la domótica, los coches inteligentes, y que los trastos hagan "magia".
(2004-10-22 11:02:26.0) Permalink Comentarios [3]

20040708 Thursday July 08, 2004

Armas bajo control:: Admistía Internacional está llevando a cabo una campaña con la intención de reunir un millón de rostros a favor de la firma de un tratado sobre el comercio de armas. Si te interesa puedes firmar aquí. Como dato interesante, te comento que si vives en algún país europeo, probablemente tu país dona una cantidad importante de dinero a países de África, Asia, Oriente Medio, América Latina... pero has de saber también que, al mismo tiempo, tu país obtiene unos beneficios mucho mayores vendiendo armas ligeras a los ejércitos que provocan esos conflictos para los que las donaciones nunca son suficientes... ¿Te parece razonable?

armas bajo control

(2004-07-08 11:50:14.0) Permalink Comentarios [0]

20040629 Tuesday June 29, 2004

Payaso:: Hoy me topé con el video de la ponencia de Mark Fleury en TheServerSide Simpsium, sobre "El MiddleWare como Aspectos" y Jboss4. Aparte del hecho de que salió a escena disfrazado del Jocker (lo cual quita credibilidad a sus palabras, en mi opinión), la charla es bastante interesante, y desde mi punto de vista pone sobre la mesa lo que inevitablemente será J2EE 5 o 6 (con esto del cambio de numeración uno no sabe qué poner, me refiero al J2EE de pasado mañana): POJOS que se ejecutan en un entorno que les provee de forma completamente transparente de servicios como Cache, Persistencia, Control de Acceso (seguridad), Monitorización, etc.
(2004-06-29 12:20:15.0) Permalink Comentarios [1]

20040621 Monday June 21, 2004

Monográficos javaHispano:: Bueno, pues como habéis podido leer en jH.org, estamos organizando una serie de monográficos en colaboración con la academia jClass. Dado que el primero me toca darlo a , aprovecho para animaros a que participéis en la elaboración del contenido. Tened en cuenta que el temario está cerrado, así que los puntos a tratar son fijos, pero sí tenéis una oportunidad para sugerir aspectos concretos de cada uno de los temas (JSP, Servlets, Arquitecturas, Patrones, etc) que os parezcan interesantes, de manera que los que asistáis el próximo sábado 3 de Julio sepáis qué se va a ver, y podamos hacer hincapié en los temas sobre los que vosotros tengáis más interés o curiosidad.

Nos vemos en el monográfico.
(2004-06-21 10:10:51.0) Permalink Comentarios [2]

20040609 Wednesday June 09, 2004

Clara:: Hoy Ana se ha hecho la ecografía de los cinco meses. Aunque me ha jodido perdérmela, al menos tengo la primera foto de mi niña. Qué voy a decir, a mí me parece preciosa...
(2004-06-09 17:29:39.0) Permalink Comentarios [6]

Más sobre patentes: parece que aún queda esperanza:: Acabo de descubrir una ONG que se dedica a luchar contra las patentes "incorrectemante otorgadas". Se llama "The Public Patent Foundation", y según su página web se de dican a combatir (en los tribunales) contra las injusticias relacionadas con patentes, porque:

  • Hacen que todo sea más caro, si no inacesible.
  • Dificultan el avance tecnológico.
  • Perjudican injustamente a las empresas pequeñas.
  • Entorpecen libertades civiles e individuales.
Yo no lo podría haber dicho mejor. Mas información en http://www.pubpat.org
(2004-06-09 12:45:05.0) Permalink Comentarios [0]