Some thoughts on Web Services

Well, for some time now I've been thinking a lot about Web Services. Some time ago I gave some conferences comparing CORBA and Web Services, and things are not getting better.

Let's start on the number and complexity of the current Web Services specifications. Today I saw two posts on different weblogs that told me that MTOM, XOP, and RRSHB, via Stefan Tilkov and Don Box. OK. I haven't heard of those specifications before, although I kind of know what Web Services are about... I just checked them... Pages and pages that I don't understand. Do they really think that anybody will adopt these standards? Just they don't realize that standards to be that must be easy and understandable?

OK, continuing with ocmplexity of all the specs. Some time ago, Eric Newcommer from IONA launched a discussion on that. You can follow it here, here, here, and here. Te result: Web Services "standards" (if you can call any thing out there as "the set of Web Services Standards") are complex, big, and kind of a mess. Even after reading Stefan Tilkov's presentation on Web Services Standards I cannot tell that the thing is anyhow clearer.

Web Services have drawn so much attention from all the enterprises as the key to their success in the 21st. century that they don't realize that they don't have anything new, and yet they are silly complex and inefficient. Moreover, they're confusing the "SOA" (Service-Oriented Architectures) concepts, which are good, and REST concepts, which are also good philosophically with Web Services, in the sense of SOAP, WSDL, UDDI, and all those number of "standards" for anything.

It is curious that some years ago, one of the main drawacks that people perceived from CORBA was that their specifications were complex and un-implemented. Yes, I admit, they were all that. They were complex, and some of them were not implemented. But what is happening now? Are Web Services Standards easier than their CORBA counterparts? I thought that they learned the lesson... And also, are all those monsters implemented? Even XSD is not implemented completely!!

Let me say that CORBA standards were much better written, were easier. And OK, they are bad in some sense... then, please, try to fix them instead of re-inventing the wheel with WS.

Another thing that's funny with WS is that people seem to perceive them as marvelous, when all of the things (and even more) that can be done with WS were solved by other technologies such as CORBA. We don't need WSDL, we have IDL, etc, etc.

To date, WS technological inferiority is hidden by supplying tools that automatically generate stubs and skeletons, and, as if this was a brand new idea, pleople seem to be discovering that they can do remote things as if they were local. Things, needless to say, that were taken care of nicely by CORBA, for example. Also, unbelievably, there is not even a mapping from WSDL to C++, for example...

Summing up, designers of SOA and WS should realize that only simple design go on. See for example XML, RSS. What seemed to be the key for success for WS (human readable, understandable technology, etc.) seems to be what they are forgetting, creating monster specifications that perhaps only Microsoft and IBM will implement.

Enfermo, ¡y nevando!

Para una vez que nieva, estoy enfermo, con gripe o resfriado o yo qué sé, un par de días que me han obligado a quedarme en mi casa. Incluso el coche se quedó en la calle y no en el garaje, y no pude resguardarlo de la nevada que se nos vino encima:

Mi coche nevado

Y aproveché para sacar otras fotos de lo que veía desde mi ventana:

0dsc00645

0dsc00644

I'm bored, just a Quiz

I will be giving four GMail invites (I don't know if this is of interest to anyone already ;) ) to the first four people to correctly answer the next question (in English, please):

In which one of Michael Connelly's novels the ZZYZX road has a prominent role in the play?


Kind of desert, huh?

ZZYZX road, 1 mile

Una segunda mirada a RSS

Veo en el sitio web de Ben Hammersley un código que me hace pensar de nuevo el tema de los feeds (y de programarlos con Perl). A partir de ese sencillo programa, y de otros que aparecen en su página web, generar feeds RDF (RSS) a partir de cualquier dato de la máquina es muy fácil. Se me ocurren hasta de registros (logs) de la máquina, listas de TODO, etc. Muy interesante.

Axis para C++

Me ha sorprendido ver Axis para C++. Normalmente no he prestado mucha atención al código que produce Apache, porque no me gusta mucho Java. Pero sí me gusta C++, y está clarísimo que a estas personas no. Han hecho la versión de C++ con muy pocas ganas. Por ejemplo, me encuentro, entre otras cosas:

* En su página web, dice explícitamente "Axis Engine is pure C++: Changed mallocs/frees/strdups to news/deletes; .h header files were changed to .hpp; structs were changed to classes"... Pero ¿? ¿esa es la versión de C++? ¿Cambiar los mallocs por news? Mal empezábamos.
* Luego al ver el código, veo que: usa printfs, la mayoría de los .h están como .h, no como .hpp (no sé qué manía les ha dado con la extensión), ¡¡el estilo de las llaves no es consistente ni siquiera dentro del mismo fichero!! Penoso.
* La utilidad WSDL2Ws está en Java, por lo que necesitas un JDK para poder utilizar la versión C++...

The World According To Student Bloopers

No tiene desperdicio. Me acabo de enterar aquí de que la gran obra de Cervantes es "Donkey Hole" jajaja.

¿A alguien se le ocurre algo más patético...

...que la Iglesia Católica? El otro día me sorprendieron unas declaraciones (via el inigualable Escolar) en las que la Iglesia admitía el uso del preservativo bajo algunas restrictivas circunstancias... Casi al oirlo lo primero que pensé es que estas declaraciones no durarían mucho. Ahora, donde digo digo digo Diego. Patético.

La abadía del Crimen

Pues sí, este magnífico juego, que puede ser el mejor de todos los juegos que se han hecho en españa, ha tenido un nuevo homenaje en la persona y en el trabajo de mi amigo Manuel Abadía (de verdad que se llama así). Ha presentado en emulatronia una versión para Windows escrita basándose al 100% en la versión en ensamblador original. Esto es, la lógica es la misma, salvo reprogramada en C++ bajo Windows. Valga una imagen de prueba, en la que se muestran las variables internas:

El juego mostrando las variables internas

El ejecutable se puede descargar aquí. Y el código fuente aquí. Es de agradecer que aunque sea para Windows, haya dejado el código fuente :) A ver quién se anima a hacer una versión SDL que funcione en Linux también...

¡Muy buen trabajo, Manuel!

Noticias más comentadas

Estoy muy contento porque en el conjunto de los plugins para WordPress he encontrado un código muy sencillo para añadir el conjunto de noticias más comentadas.

Flickr

Pues ya tengo mi cuenta Flickr. Por ahora muy pocas. Mi idea es tener ahí las más interesantes.

Un paseo por Mula y por mi infancia

Hace un tiempo vi un weblog que me encantó. Se llama Riding The Clutch. Me gustaron mucho sus imágenes, que parecían "demasiado" reales. Son fotos de cosas pequeñas, muy de cerca, como captando los detalles que el ojo no puede llegar a ver, y quizá por eso (y por los colores) son interesantes e impactantes. Supongo que ese tipo de fotografía tendrá algún nombre. A ver si practico un poquito con mi cámara.

Para empezar, se me ha ocurrido una cosa. Hace mucho tiempo que no paseo por la zona alta de Mula. Habrá cambiado mucho en los últimos años, y es un completo laberinto de calles estrechas, escaleras y casas viejas. Esta tarde he querido pasear por ahí. No sólo porque tenía curiosidad de ver cómo estaba ahora, sino porque también forma parte de mis recuerdos de niño.

Mi padre tenía una fábrica de embutidos que repartía embutidos a las diferentes tiendas del pueblo. A veces me iba con él. Era genial. Conocía a toda la gente del pueblo, y me regalaban cosas en todas las tiendas. Recuerdo los caminos con la furgoneta por esas calles tan estrechas. Las vuelvo a ver y todavía no me explico cómo pasaba por ahí, pero pasaba.

Así que me he ido a una pequeña plaza y he empezado mi recorrido con una esquina que antes tenía mucho más encanto que ahora, y que albergaba una tienda que ya no está:

Primera tienda

La calle por la que subía está a la izquierda. Es curioso cómo se ven las cosas diferentes cuando uno es pequeño. Esta pequeña plaza me parecía mucho más grande.

Siguiendo por esa misma calle llego a la otra tienda que estaba en ella. Esta tienda sí existe todavía:

Segunda tienda

He seguido por la calle, y he tomado un par de vistas de la calle, que pueden resultar bastante atractivas para alguien que no conozca la ciudad. Un rincón acogedor en el que se ve el castillo:

Vista 1

Y otros monumentos que uno se encuentra por la misma calle:

Vista 2

Al final de la calle, no se puede seguir con el coche, así que o bien han cambiado la salida o mi padre tenía que dar la vuelta con la furgoneta (no sé dónde) para salir por donde entró a la calle.

En fin, uno de los muchos recuerdos agradables que guardo de mi padre.

WordPress de CVS

Bueno, pues acabo de actualizar al WordPress del CVS y, como es normal, nada de lo que había hecho funciona. Menos mal que el weblog en sí funciona y tiene todas las noticias. Como ya es muy tarde, creo que mañana le añadiré todas las mejoras. Menos mal que, según parece, el añadir todas las características va a ser cuestión sencilla, ya que sólo tendré que añadir un nuevo estilo (el mío). Veremos, pero mañana :)

Actualización: OK, ya funciona todo. He tenido que arreglar un pequeño fallo de wordpress, pero ya va todo bien. A ver si consigo tener actualizada la base con el CVS. Ya os contaré cómo lo hago. Ahora parece que será más sencillo, ya que la mayoría de las mejoras que he añadido van en mi propio "theme".

Michael Connelly

No quería perder la oportunidad de comentar algunos libros que acabo de leer de Michael Connelly. Llegué a él por casualidad cuando estaba en Estados Unidos. A sus libros me refiero, por supuesto :). Me enteré de que uno de sus libros, Blood Work (Deuda de sangre), se iba a llevar al cine con Clint Eastwood de protagonista. Eso me hizo interesarme por el libro, ya que siempre me han gustado las películas de Eastwood. Me pareció un libro genial, por el planteamiento, lo verídico de los personajes, la historia magníficamente trazada, lo inteligente de las reacciones, los detalles tan milimetrados, etc. Se llevó varios premios, de hecho. Por supuesto, a partir de ese libro me hice un fan de este escritor, y compré varios libros más.

Leyendo información sobre Connelly, me enteré de que sus novelas normalmente tenían como protagonista al detective Harry Bosch, aunque en Blood Work el protagonista era Terry McCaleb, un antíguo «profiler», como les gusta decir a los americanos.

La siguiente que leí fue A Darkness More Than Night (Más oscuro que la noche). De nuevo, un libro genial. La trama, tejida sobre cuadros de "El Bosco" (que además están en El Prado y que no voy a tardar mucho en ver en persona) resulta perfecta, y el hecho de ver trabajar juntos a los dos héroes de las novelas de Connelly, Bosch y McCaleb, un deleite. Diría que es la mejor historia que he leído en ninguna otra novela.

Hace poco acabo de terminar El Poeta (esta vez en español) y, por supuesto, no defrauda en absoluto. De nuevo, el protagonista no es Bosch (es curioso que haya leído justo las novelas en las que el personaje que más aparece en las novelas de Connelly no es protagonista), sino Jack McEvoy, un periodista de Colorado. Es curioso cómo Connelly entrelaza todas las historias. Por ejemplo, esta novela, "El Poeta", la escribió antes de "Más oscuro que la noche". En esta última también aparece, y McCaleb recuerda al periodista de un caso en el que le consultó algunos datos, precisamente el del poeta. Como yo leí los libros en orden inverso, no conocía al periodista ni sabía que era el protagonista de esta novela.

Finalmente, me estoy leyendo ahora The Narrows (no sé cuál es el título en español, ni siquiera si se ha traducido). Acabo de empezarlo, y según pone la carátula del libro, es la continuación de "El Poeta". Sólo por eso merece la pena :) Y ahora sí que es Bosch el que investigará. También está relacionado con este caso McCaleb, así que es otra oportunidad genial de ver a ambos personajes relacionados. Ya contaré qué me parece.

2005, año internacional de la física

Ayer tuve la oportunidad de asistir a una de las conferencias organizadas por la Universidad de Murcia en el año internacional de la física. Como sabréis, se cumplen 100 años de la publicación por parte de Albert Einstein de los artículos por los que después se recordaría, y que le darían finalmente el premio Nobel de física. La conferencia, en concreto El azar en Física y Biología y las matemáticas del azar, por el profesor D. Darío Maravall Casesnoves fue una delicia, una lección de matemáticas, física e historia todo en uno.

Entre las iniciativas que se promueven por la Universidad está una muy interesante: un concurso de física ¿Quién se anima? :)

MSN Search bot, mal comienzo

En principio, MSN Search podría ser un buscador como cualquier otro, quizá por debajo de Google, aunque yo no tengo suficientes conocimientos para decir si es mejor o peor. Hace unos días vi una noticia interesante en la que se decía que la beta de MSN search ofrecía los resultados de las búsquedas como fuentes RSS, lo cual me pareció una idea perfecta. Lo probé, y los resultados que daba ese buscador eran bastante malos: No encontraba mi página web, no ordenaba los resultados por tiempo, y por supuesto ningún tipo de pagerank. Bueno, se trata de una beta, pensé.

Ahora me encuentro con esto otro, un fallo del bot de búsqueda que hace que busque infinitamente en un sitio web generado dinámicamente... (más información aquí). Esperemos que la cosa mejore. Es increíble el interés que están despertando los motores de búsqueda últimamente: Lucene, Google Desktop Search, Yahoo Desktop Search, etc., etc.

Más mejoras para el weblog

Para que no se me olvide, encuentro a través de BoingBoing una interesante referencia a utilidades de Technorati... También queda por hacer en el blog:

* Hacerme una cuenta el Flickr y ver cómo conectarlo
* Implementar para cada noticia una búsqueda de realacionados a través de Technorati (como se hace en BoingBoing, precisamente).

A ver cuando tengo tiempo de hacerlo...

Boris is selling his car

My Vanderbilt friend Boris Kolpackov is selling his car, a Mazda 6 v6 with 220bhp... I would buy it if I where in the U.S., that's for sure, and... you know, if you are in the US and want a nice car with a fair price, contact him!

Propuestas de mejoras para este Weblog

He estado pensando en qué añadir al WebLog, y se me han ocurrido algunas. Entre las mejoras que me gustaría introducir, están: (las pongo aquí para recordarlas después)

* Número de usuarios suscritos a los feeds. Por ahora sólo puedo verlo con Bloglines, pero ya se me irá ocurriendo algo.
* Cosas derivadas de los logs de Apache, como por ejemplo, búsquedas de Google o de otros buscadores que llevan a las páginas de este weblog.
* Una lista de las noticias más "populares" (por número de comentarios o por número de lecturas).
* Lista de noticias relacionadas (iniciando una búsqueda en la base de datos).
* Un checkbox que indique si quieres recibir correos electrónicos cuando se envíe un comentario a una noticia.
* GR-Avatars (por ahora no funciona el sitio, no me puedo registrar).
* Algún photoblog o algo así.
* Links para feeds de cada categoría por separado.

Y alguna más se me ocurrirá. ¿Comentarios? ¿Sugerencias? ¡Serán bienvenidas!

GRAVATAR

Jaja, qué risa. No se me había ocurrido lo de Gravatar, pero me parece una idea muy interesante. Lo meteré también en el blog como mejora. Gracias a zootropo por darme la idea. ¿Tienes ya tu GR-Avatar?

Cambios en el Weblog

He añadido varias cosas al weblog:

* Mi perfil de Technorati (como se puede ver en la sección "links").
* Una búsqueda también de Technorati.
* Un enlace en cada noticia para verla en inglés. Utilizo Google para ello y construyo una URL que envía la página automáticamente al traductor. Espero que los usuarios ingleses también puedan acceder a este weblog, y aunque algunas entradas están en inglés, la mayoría está en español.

Tengo pendientes otras mejoras, pero las iré haciendo poco a poco. ¿Qué os parecen estas? :)

Interesante artículo sobre sistemas de control de versiones

De David Wheeler: Comments on OSS/FS Software Configuration Management (SCM) Systems. Ya comenté algo en otro artículo sobre los sistemas de control de versiones y también sobre Wheeler. Muy interesante, a tener en cuenta.

WordPress Anti-Spam, toma 4

Muy bien, cómo no. Ahora toca el turno a los trackbacks. Una vez que había eliminado los comentarios spam en WordPress, los spammers me bombardean con trackbacks. Estaba claro: también tenían que intentarlo por ahí. Ahora bien, la cuestión de los trackbacks es diferente que la de los comentarios... Los trackbacks están pensados para que los realice una máquina... Un usuario quiere hacer un trackback de una noticia mía y me pone como enlace, con lo que aparece en mi noticia con un enlace a la suya... Terciar con el spam en esto va a ser un problema diferente. Voy a estudiarlo y pongo una actualización.

Actualización: OK, simplemente he cambiado el nombre del fichero .php que hace el trackback. La otra solución era eliminar el mecanismo de trackback... Veremos si siguen llegando más trackbacks de spam... :( Voy a hacer también un trackback de la noticia original del anti spam a ver si funciona.

Más lecturas, coches, y comiendo solo en el despacho

Pues sí, hoy, aprovechando que iban a hacerle un pequeño arreglo a mi coche y que el taller está muy cerca del campus, he decidido quedarme a comer sólo en el despacho. Esto me ha dado la posibilidad de tener una interesante conversación sobre coches con un compañero que también ha aparecido por la facultad hoy, y de revisar la "blogsphere" y de leer el artículo que he citado de Paul Graham y de seguir las recomendaciones de "All Things Distributed": Feynman & REST.

Hackers and Painters

Qué buena historia del siempre magnífico Paul Graham, un pintor y programador: Hackers and Painters. Nunca había leído un artículo que resumiera muy bien la pasión por programar, pero no por programar como la mayoría de la gente hace en sus empresas, y como el mismo Paul Graham define, sino programar como pasión, como creación de algo bonito. Los distintos ensayos de Graham son una maravilla, con enlaces tan magníficos como este: Unskilled and Unaware of It (Mediocre y sin saberlo) :)

Happy new year! (And a hacker tale)

Pues sí, aunque no haya escrito en el weblog, he estado activo estos días de vacaciones. Por ejemplo, se me ocurrió conectarme nochevieja sobre las 23:40 y me llevé la sorpresa de que no sé qué cocd rporación me envió un correo electrónico amenazándome porque uno de mis ordenadores estaba haciendo "scans" sobre el puerto del ssh en sus máquinas. En efecto, me conecté a ese ordenador (una máquina UNIX) y vi que había cientos de procesos con nombres extraños que no recuerdo exactamente. Esos procesos eran lanzados con un script que hacía algún sleep (también lo veía ejecutando) y volvía a lanzarse para atracar otra IP. Dada la hora y día (recordemos, nochevieja, justo antes de las uvas), mi familia me requería, ya que siempre vamos a la plaza de Mula (mi ciudad), no tuve más remedio que apagar la máquina para poder estudiarla después. Quedaban entonces varias incógnitas, que siempre están presentes cuando un hacker entra en una máquina:

* Cómo ha entrado (encontrar el punto de entrada suele ser lo más excitante, porque hay que conocer muy bien la máquina y dónde buscar información en los logs)
* Cómo eliminar todo lo que ha creado.
* Cómo proteger la máquina para que no se vuelva a producir la entrada.

Cuando tuve un rato para comprobar la máquina, me encontré varias cosas curiosas. En primer lugar, respondí a la corporación que me envió el mensaje diciéndole que los "intentos de conexión" no se consideran delito (¿qué pasa por ejemplo si un usuario escribe la IP y se equivoca en el número?). En fin, seguía con las cosas curiosas:

* No había "casi" nada sospechoso en los logs del ordenador.
* No había registro en los ficheros ".bash_history".
* No he podido encontrar los programas que se estaban ejecutando en ese ordenador (he buscado de mil maneras, pero no los he encontrado).

Efectivamente, había algo sospechoso en los logs de login:



El acceso del 13 de diciembre parece el que hizo un programa intruso (quizá uno igual que los que se estaban ejecutando, que hacía pruebas de ssh). El caso es que entró. Pensé en un primer momento que por algún fallo de seguridad de ssh, pero estuve buscando fallos recientes de ssh y no vi ninguno... Simplemente la explicación más simple se daba: uno de los usuarios de mi máquina había puesto una clave muy sencilla, y el hacker simplemente había entrado. Después instaló otros programas ahí que hacían pruebas en otras IPs y con otros usuarios.

Una cuestión que surge es ¿por qué no encontré esos programas? Pueden pasar dos cosas: que estén escondidos por el disco (por favor, necesito ayuda en esto, si alguien tiene idea) o que los instalara en el directorio /tmp, que se borra automáticamente al iniciar el sistema de nuevo. Mala suerte.

El caso es que acabo de recordar el nombre del programa. Era pscan2, y con este dato, encuentro aquí un ejemplo de lo que pasó.

Eso me confirma otra cosa que sabía: no ha instalado un rootkit, lo cual está bien, porque no hay que restaurar ningún fichero.

Bien, el caso es que eso me ha servido para aumentar la seguridad de las máquinas bajo mi cargo (no hay mal que por bien no venga, como dicen). No es que la hubiera descuidado (en realidad no ha sido un fallo de seguridad ni un agujero, sino que la gente a la que he dado cuenta no ha tenido la decencia de poner una clave decente a su cuenta). El caso es que muestro lo que he hecho para asegurar los ordenadores. Me ha hecho investigar un poco en maneras de tener más controlados los ordenadores, en el caso de que, como es mi caso, tengas que administrar varios de ellos, y además, no sea ese tu principal cometido en la empresa o universidad donde trabajes. He aquí una lista de cosas que he hecho (los comentarios son bienvenidos):

* He actualizado el núcleo de todos los ordenadores al último disponible (normalmente las actualizaciones de núcleos arreglan fallos de seguridad).
* He eliminado todos los usuarios del sistema que no eran estrictamente necesarios. En adelante tomo nota mental de que tengo que obligar a que los usuarios pongan una clave decente. Otros sistemas como Red Hat obligan a que la clave no sea sencilla, pero no sé por qué Debian no lo lleva por defecto. Tendré que investigar cómo poner eso para que los ordenadores donde tengo cuentas de alumnos no tengan usuarios con claves fáciles.
* He eliminado todos los servicios que no eran estrictamente necesarios. Normalmente soy reticente a eliminar servicios aunque no hagan falta estrictamente. El tener un puerto "abierto" no significa que sea "inseguro", sino que simplemente tengo un servicio funcionando. Odio a los administradores que basan su seguridad en cerrar puertos. Los puertos no son malos, ni las aplicaciones vulnerables por el simple hecho de estar ahí en un puerto, porque el servidor web siempre está funcionando y tiene su puerto como el resto de aplicaciones... En fin. Esto lo he hecho cuando no sabía exactamente qué había pasado con ese ordenador.
* He instalado logcheck (disponible en el almacén de paquetes de Debian). Analiza los logs y envía un correo con las líneas sospechosas. He tenido que modificar el cron del paquete porque mandaba un correo cada hora (!). Ahora envía cada día. Tampoco seamos tan paranóicos :P
* He instalado snort (también de los paquetes de Debian). Muy versátil, comprueba situaciones de escaneos de puertos, conexiones sospechosas, etc. El único problema es que ocupa mucha memoria y estoy seguro de que enlentece el sistema... Sea todo por la seguridad.
* Quizá se me haya escapado algo de lo que he estado haciendo para hacer más seguro el sistema. Si me acuerdo de algo más, actualizaré la entrada.

Todos estos elementos han dado su fruto, y ya en el primer informe del snort veo cosas curiosas como esta:



gentileza de logcheck... Como siempre, me gustaría saber vuestros comentarios, ideas, etc. Y que al menos esto sirva para poner más a salvo los sitemas que administreis.