|

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

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

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

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

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

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

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

Sunday November 14, 2004
Ya estoy de vacaciones::
(2004-11-14 15:11:31.0)
Permalink

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

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

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?
(2004-07-08 11:50:14.0)
Permalink

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

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 mí,
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

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
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
|