Cosas mías

June 25, 2005

La Piedra Lunar, Wilkie Collins

Filed under: Lecturas
Leído: Edición Electrónica bajada de por ahí
Disponible: Editorial Bruguera, Libro Amigo, 1512/1023
84-02-09820-7

Moonstone, 1868

Relectura que, para mi propia tristeza, no ha resistido el paso del tiempo. Considerada como la primera novela de corte netamente policíaco (recordemos que anteriormente Edgar Allan Poe escribió dos cuentos precursores del género, y recordemos también la cercanía temporal de otra gran obra policíaca como es El misterio del cuarto amarillo de Gaston Lerroux, así como las inigualables obras de Conan Doyle sobre Sherlock Holmes -próximas relecturas todas-), el género no está formado todavía, pero ya la obra engloba casi todos, sino todos, los elementos que conforman a este tipo de narraciones.

Por un lado tenemos el misterio irresoluble, que en este caso es la desaparación de un diamante de proporciones gigantescas, cuyo nombre da título a la obra. Por otro, una serie de posibles sospechosos en mayor o menor grado, formados por los habitantes de una finca inglesa típicamente decimonónica, criados incluidos. Luego, un sospechoso mayor que es a todas luces inocente, para seguir en escala descendente hasta el último habitante de la casa e incluso algunos vecinos. También está el investigador famoso y de penetrante inteligencia, quien, primero de todo hace aparecer a la policía como estúpida y más tarde se equivoca él mismo. Y, por supuesto, el malo es quien menos sospecha el lector.

Como vemos la obra es precursora de todas las del género, aunque se encuentra narrada de una forma un tanto original y poco utilizada en la actualidad. Igual que en La dama de blanco, los hechos se van describiendo según la narración del personaje más importante del momento, consiguiendo así un collage que diversifica la lectura, aunque en esta obra los estilos entre los diferentes narradores son más uniformes, con la posible excepción del mayordomo Betterdge, su Robinson Crusoe y su punto de vista del mundo un tanto peculiar y misógino.

La obra es larga, da vueltas sobre sí misma y, para más decepción, no se dan todos los datos para que el atento lector pueda resolver el misterio -o al menos acercarse a él. Detallista, barroca, dieciochesca, dickensiana (cómo no), quizás no hubiera sobrevivido al tiempo si no fuera el precursor del género policíaco.

Una anotación, para beneficio del autor: la Piedra Lunar, robada de un santuario hindú, retorna al mismo, no por voluntad de los propietarios europeos (ladrones ellos), sino por la astucia de los cuidadores originales de la piedra, cerrando así el círculo. Si el autor hubiera querido, habrían atrapado al los poseedores originales, pero, quizás para no atentar contra la ideología centrada en el europeismo del bienpensante lector de la época en que fue escrita, y sin emisión de juicio de valor alguno por parte del escritor, Collins justifica indirectamente a los hindúes ladrones, pero los castiga con una penitencia mayor por haber matado a cierto europeo. Y, por supuesto, la piedra es restituida, cerrando magistralmente la novela y compensando a todos.

June 23, 2005

zxFortunes actualizado

Filed under: Programación

Como esta tarde no tenía muchas ganas de currar en serio, tocando acá y tocando allá, al final he cogido el zxFortunes y he hablilitado dos nuevas opciones:

No permitir citas repetidas. Ahora, una vez que se ha mostrado una cita, ésta ya no vuelve a aparecer hasta que se hayan mostrado todas o se cambie algo de la configuración. Ha sido muy fácil de añadir. Cuando se genera el fichero índice, si la opción de no repetidas está habilitada, se crea un nuevo fichero binario con una posición de tipo bool para cada cita. Cuando se saca una, se escribe true en la posición; si se saca una que ya lo había sido antes, pues se va recorriendo el archivo hasta encontrar un false o volver a llegar a la original. En este caso, se reinicia el fichero y se devuelve la original. Esto se realiza en dos métodos nuevos, “OnlyOneFortuneGetNextUnread” y “OnlyOneFortuneInit”, que se encuentran en FormFortunes.cs.

Firmas de correo con el formato de Opera. Ahora estoy usando el Opera para todo, y no soporta el tener un fichero de texto con la cita. Cada cuenta tiene su propio fichero con el pie, pero todo el asunto lo controla directamente el programa, y no te deja como opción dirigirlo a un fichero de texto. Pero como es ya clásico en este programa, un usuario avanzado puede hacer lo que quiera, así que abrimos el archivo opera6.ini que está en “System.Environment.SpecialFolder.ApplicationData” más “Opera\Opera\profile”. Allí buscamos la cadena “Mail Root Directory”, que indica la carpeta donde se encuentra almacenado el correo. Nos vamos a la misma y abrimos “accounts.ini”. Para cada cuenta hay una entrada llamada “Signature File” que contiene el nombre del fichero que se corresponde con la firma. Lo único que resta es guardar en todos y cada uno de esos ficheros nuestra cita en formato unicode. Esto se realiza en el método “ProcessOperaEmailSign()”.

Ahora la versión del programa es la 1.1 y se puede bajar de aquí.

June 22, 2005

Sistemas de Tiempo Real y Lenguajes de Programación, Alan Burns y Andy Wellings

Filed under: Programación, Lecturas
Addison Wesley, 2002
84-7829-058-3

Real-Time Systems and Programming Languages, 3rd Edition, 1989, 2001

Como ya dije en un comentario anterior, nada nuevo bajo el sol. Comienza con una explicación de los términos más comunes aplicados a la programación en tiempo real, para luego ir detallando aspectos de la misma.

Cada capítulo empieza con un resumen de la terminología empleada, para luego entrar en detalles sobre el tema a tratar; desde mi punto de vista, la profundidad es escasísima salvo alguna excepción. Si lo que el autor cita es todo lo que se sabe en la actualidad sobre el punto tratado, poco estudiado está el tema. Quiero creer que es el autor el que no entra en detalles.

Luego se centra en la forma en que cada lenguaje de programación soporta el tema. Los lenguajes principalmente tratados son ADA, C con soporte POSIX y Java en tiempo real, aunque a veces entra a detallar elementos de otros lenguajes como Occam, Modula y otros todavía más extraños, cuando éstos destacan en algún punto. No conozco ADA, muy poco de Java, pero sí que conozco el C: muy poca profundidad en general. Si el lenguaje soporta la característica, la cita; si no, da unas breves indicaciones sobre cómo se podría implementar y termina.

Luego viene un resumen (quizás lo más valorable del libro), una bibliografía y ejercicios que no me he molestado en mirar salvo excepciones.

Lo cierto es que el libro es muy flojo en general, recorriendo rápidamente todos los temas y a veces yéndose por las ramas, como cuando se pone a desvariar sobre el tiempo, hablando en térmimos filosóficos. No lo recomiendo ni siquiera para un principiante, y menos aún para un profesional que se gane las habichuelas programando sistemas en tiempo real.

Lo más destacable es la explicacion sobre concurrencia, contención y bloqueos de procesos, con el tema de programación de bajo nivel; quizás se hubiera salvado el libro si hubiese tratado estos temas con más amplitud y profundidad.

Un extracto del índice: Fiabilidad y tolerancia a fallos, Excepciones y manejo de excepciones, Programación concurrente, Comunicación y sincronización basada en variables compartidas, Sincronización y comunicación basada en mensajes, Acciones atómicas, procesos concurrentes y fiabilidad, Control de recursos, Capacidades de tiempo real, Planificación, Sistemas distribuidos, Programación de bajo nivel, El entorno de ejecución, Un caso de estudio en Ada.

Rendimiento C++/C#/Java en Windows y Linux

Filed under: Programación

He leído en el CUJ de Julio (C/C++ Users Journal) un artículo intitulado Micro Benchmarking C++, C#, and Java (sólo pasando por caja), lo que traducido al castellano podría ser algo así como “Pruebas de micro rendimiento para C++/C# y Java”.

El artículo es bastante corto y escueto; el autor indica qué elementos de juicio ha decidido, el hardware y las versiones de las herramientas. Los ensayos consisten en pruebas repetidas con pequeños bloques de código, como operaciones con enteros, en coma flotante, matrices, ordenación, instanciación, excepciones, tablas de dispersión y cosas así.

Este señor ha ejecutado los programas en Linux (Sun java 1.4.2 y 1.5, gcc, intel c, mono) y en Windows XP+SP2 (SUN java 1.4.2, java 5, net 2, net 1.1sp1, ms c++ 7.1). Las versiones java han sido verificadas tanto en el lado cliente como en el servidor.

Personalmente considero que, dado lo delicado del tema, el artículo es todo lo serio que puede ser.

RESULTADOS
En contra de mi opnión personal, y creo que en la de muchos, lo más destacable es la velocidad de Java, comparable a la de C++, tanto en ambas plataformas (excepto en rendimiento con operaciones de enteros del lado cliente, cosa que no entiendo) como en forma cruzada. Tan sólo tarda unos pocos milisegundos más en hacer las cosas. El .NET en general se queda después de Java (salvo excepciones con un rendimiento igual al ms c++ 7.1).

El ganador indiscutible es el GCC bajo Linux, que supera en rendimiento al C++ de Microsoft en casi todo (qué lástima que el autor no haya probado el gcc-win32), y el perdedor indiscutbile es Mono 1.0.6, con el peor rendimiento en casi todo (incluso dos y tres veces más lento que el más lento), seguido del lado cliente de Java, aunque sólo a veces.

TERRA INCOGNITA
Sabemos que Java es lento. No hay mas que instalar Eclipse para darse cuenta de ello. O cualquier otra aplicación grande. En mi experiencia personal es más lento que el .NET, por lo menos la sensación del usuario es esa. Sin embargo, en estos tests de rendimiento, gana. Y no es un problema de consumo de memoria, porque si tienes memoria suficiente (1,5 GB en mi caso), también lo es (me refiero con esto a que no tira de archivo de paginación, por lo que todo el asunto queda entre la RAM, la MMU y el procesador).

¿Dónde está, pues la lentitud en Java?

June 20, 2005

Una breve historia de casi todo, Bill Bryson

Filed under: Literatura
RBA Libros, 2004
84-7871-175-9

A Short History of Nearly Everything, 2003

Todas las alabanzas que se hayan hecho del libro son pocas. La forma que tiene el autor de explicar los acontecimientos, incluyendo anécdotas, juicios de valor, pinceladas de color donde la aridez priva, es única. Mejor que el Asimov divulgativo. Mejor que el Sagan divulgativo. Igual a Daniel J. Boorstin en su obra Los Descubridores, que no es poco decir.

Bill comienza con el origen del universo, para ir saltando, poco a poco, hasta el origen del hombre, pasando por el sistema solar, la formación de la tierra, el origen y desarrollo de la vida, la química, el ADN, el origen de las especies, y un largo etcétera. La obra es un recorrido -un tanto apresurado, eso sí- por todo el conocimiento humano, desde lo más abstracto como la teoría de cuerdas, hasta la más prosaico, como nuestra evolución.

Y cuando las cosas no están claras no las omite o las rodea. Todos sabemos que la física de partículas consiste en uno de los embrollos más grandes que hay en la actualidad; también conocemos que las teorías de supercuerdas y M son de lo más abstruso y artifical. Tampoco está nada claro en el momento justo en que se inició la vida, ni el por qué de las grandes extinciones; muchos interrogantes, muchas inconsistencias y fallos en la teorías nominalmente aceptadas; todo esto, y más, es lo que aparece en la obra.

Y no digamos cuando comienza a hablar del origen del hombre, lo poco que se sabe y lo mucho que se supone. El autor confirma una de mis teorías personales: es completamente imposible saber cómo eran unos seres que simplemente han dejado una serie de huellas en un poco de barro, así como es completamente imposible conocer la capacidad mental de alguien por el tamaño de su cerebro…

Cuando terminas de leer el libro te das cuenta de lo poco que sabemos, de lo cerca que estamos de la Orilla Cósmica en palabras de Carl Sagan, y de que no somos precisamente un dechado de virtudes ni lo mejor que ha hecho la evolución; simplemente somos lo único que hay y ya está.

Una cosa que me llama la atención de la última parte del libro es que no aparece Atapuerca ni por espejeras, lo que me lleva a pensar que quizás ese yacimiento no sea tan importante como nos lo quieren hacer ver (recordemos que la Dama de Elche para la mayoría de los estudiosos extranjeros es una falsificación); que se trata más bien de una comidilla institucional, tan cara a este país de charanga y pandereta, este país nuestro. Esto, claro, es una reflexión personalísima, y quiero creer que errónea.

June 13, 2005

El futuro de Borland C++ Builder

Filed under: Programación

No suelo entrar mucho en la web de Borland últimamente, pero resulta que han cambiado por completo la apariencia de la misma. Pero lo interesante no es eso, sino que me ha dado por navegar por ella y he encontrado una página que indica el soporte de los productos de C++ y he visto algo como Borland C++ 2005, que ya de por sí es algo un tanto intrigante.

Pero como antítesis a lo que diría cierto personaje de dibujos animados, eso no es todo, amigos, puesto que en la BDN acaban de publicar un corto vídeo mostrando funcionalidades del nuevo C++ Builder.

Entre lo que dicen, y lo que se deja ver, es otra vuelta de tuerca para la programación visual, pues al todavía no superado paradigma two-ways (el que haya manejado el entorno sabrá a lo que me refiero), añaden todas las funcionalidades del Visual Studio 2005 y, además, al fondo, se ve una pestaña con el texto refactoring, pestaña sobre la que no dicen nada.

¿Soportará el C++ Builder de Borland refactorización en C++, una cosa que al parecer Microsoft no ha conseguido? ?Seré tan pavo que volveré a pasar por caja despúes de haber parado con la versión 4.0?

El único inconveniente que veo es que sólo se trata de programación win32, no se nombra nada acerca de C++ sobre .NET

Microsoft seguirá soportando las MFC

Filed under: Programación

Steve Texeira, Director of Partner Strategy for Microsoft Visual C++ (lo que quiera que signifique), en un artículo recientemente publicado en la MSDN, afirma que Microsoft continuará ofreciendo soporte y mejorando las MFC, de modo que cuando llegue el nuevo Longhorn (¿llegará algún día, me pregunto yo?), existirá soporte para Avalon, encapsulándolo ala MFC.

También afirma que las clases de la MFC han sido actualizadas para soportar las nuevas caracteristicas de seguridad incluidas en la CRT (la biblioteca estándard de C, ya sabes: fopen, strlen, etc., etc..) y que se permite una interactuación sin problemas entre la tecnología .NET y el código nativo.

Todo esto, claro está, es lo que lleva/llevará el Visual Studio 2005 (quitando lo de Avalon); personalmente me parece una forma de tranquilizar un poco a los cienes y cienes de empresas y programadores que todavía usan las MFC para sus desarrollos, así como una declaración de intenciones bastante clara, pero como está escrita con ese tonillo comercial tan característico de Microsoft que personalmente a mi me pone los pellillos de la nuca de punta, considero que es un tanto poco creíble, más que nada porque hace poco uno de los bloggers de Microsoft, Larry Osterman, ponía en su blog algo sobre el tema, quizás advirtiéndonos de que no todo el monte es orégano.

Independientemente de las intenciones de Microsoft, el post de Larry es bastante intersante, y más todavía muchas de las respuestas, todas ellas bastante razonadas y razonables. Es casi un deber leer el hilo entero si estás interesado en el tema.

June 12, 2005

Vitales, Gregory Bear

Filed under: Lecturas
Ediciones B, Nova 163
84-666-1135-5

Vitals, 2000

Dos hermanos gemelos investigan el mismo tema, pero como están peleados, cada uno va por su parte, aunque ambos siguen la mísma línea de investigación: cómo alargar la vida. Ese es el punto de partida, y casi desde el principio la acción se sobrepone a cualquier otra cosa en este libro. Uno de los hermanos muere, el otro continua la investigación con los datos que le deja su gemelo, aparte de los suyos propios.

Todo el libro está narrado en primera persona, aunque por diferentes personajes, hasta el punto de que a veces resulta un poco confuso. También causa confusión cierto retroceso temporal que marca hechos que el lector debe conocer pero que no pueden ser narrados antes por motivos del desarrollo de la trama. Con esto no estoy diciendo que sea un libro confuso, sino que en dos o tres lugares del libro el desarrollo se corta de forma brusca, aunque nada desagradable.

Ciencia ficción, lo que se dice ciencia ficción, no es. Porque entonces obras como Sáhara de Clive Cussler, Doble Fuego de Ken Follet, o las series de politica-ficción de Jack Ryan, y otras muchas, también lo serían. La diferencia estriba en que, mientras otras obras han sido escritas por autores del mal llamado género del Best Seller, ésta lo ha sido por un autor de ciencia ficción. Nos encontramos en la época actual, alguien busca la inmortalidad y alguien quiere impedirlo, todos luchas entre sí con sus mejores armas y, al final, no todo lo que debía ser, es.

Como características marcadamente clásicas en la literatura actual, los malos no son tan malos como parece, ni los buenos tan buenos como nos gustaría, de hecho hay malos que no lo son, y otros peores que sí lo son. No quiero entrar en detalles por no desvelar el final, que gira en 90 grados hacia todas partes (quizás el único rasgo de ciencia ficción de la obra), aunque ciertamente previsible a partír del último cuarto del libro (¿qué final argumental no es previsible, o intubile si se quiere, a partir del último cuarto de cualquier libro de aventuras?), pero lo cierto es que se trata de un buen final; no obstante, quizás consciente de haber tenido que tomarse ciertas libertades con el desarrollo lineal del argumento, Bear, en un epílogo, pone en boca del protagonista un resumen cronológico de los sucesos acaecidos en la obra.

El libro es un thriller marcadamente macabro, con elementos históricos hábilmente modificados, completamente lleno de acción de principio a fin, acción que se antepone al tratamiento filosófico y moral, pero sin dejar a la obra desprovista de su contenido ético, tan caro a la ciencia ficción actual.

Una forma entretenida y divertida de pasar la tarde/noche del sábado.

June 11, 2005

La dama de blanco, Wilkie Collins

Filed under: Lecturas
Suma de Letras, Punto de Lectura, 172/2
84-663-0509-2

The Woman in White, 1859

920 páginas dan para mucho, pero éste no es el caso. El argumento ha sido clasificado como de mistero, pero lo cierto es que no; desde mi punto de vista, la obra no es más que una novela costumbrista de la época, folletinesca ella, ambientada en la clásica época de gente de bien -léase aristócratas ellos- y con un argumento bastante dickensiano.

Independientemente de la clasificación que hace el autor en partes, la obra está dividida en dos; diremos que en la primera -hasta la página cuatrocientos y pico-, el argumento se arrastra miserablemente lento, casi desesperante. Son tantas las florituras sentimentalmente insulsas que llega un momento en que quedas completamente empalagado de tanto dulzor, sobre todo las provenientes del dibujante Hartwright; casi es una bendición cuando retoma el hilo de la narración la hermanastra de Laura, más hombruna ella, más rigurosa y más formalmente narradora. Y es que en esta obra los papeles están cambiados; la hermana de Laura es casi un chico, el hermando de Laura es casi una chica -hasta puntos un tanto risibles-, y Hartright (ciervo de derechas) se encuentra entre medias, a caballo entre un hombre de la época y algo un tanto más deslavazado. Quizás sea éste el límite al que se atrevió llegar Collins para hacernos ver que en su época también había chicos que eran chicas y chicas que eran chicos.

En la segunda parte la acción se dispara. Y digo dispara en relación a la primera, porque es ahora cuando la obra se convierte en una novela y deja de ser una descripción paisajística de interiores y exteriroes, tanto humanos como de valles y colinas, casas y jardines. El ritmo crece hasta convertirse en algo más razonable, y comienzan a producirse los hechos que llevan al final, a la solución satisfactoria de todos los problemas, con Laura restaurada a su grandeza por sus más íntimos amigos.

Pobre Laura, llevada de aquí para allá, zarandeada tanto por los buenos como por los malos (y aquí los buenos son buenos siempre y los malos, malos siempre), marioneta movida por hilos invisibles, sin caracter, sin pretensiones, sin vida interior, mero vehículo para que Collins se explaye en los interiores de casi todos los demás personajes, olvidando a la pobrecita en su triste y zarandeada soledad.

¿Quién ha dicho que la telenovela es un invento moderno? Para aquellos que así lo afirmen, que hagan el favor de leer el libro, que se van a llevar una gran sorpresa.

Parece que Collins se cansa de escribir, pues el ritmo se va acelerando continuamente, para llegar a un final un tanto ultrarrápido -la confesión de Fosco y sus momentos finales-, o quizás se estaba saliendo de tamaño dada la extensión de la obra, de forma que sus lectores ya estaban cansados de ver cómo se iba alargando la trama. Recordemos que la novela se publicó por entregas, y posiblemente se fuera escribiendo también por entregas.

La obra se ha considerado como de misterio. Yo considero que no es cierto, puesto que el misterio del conde, y otros que quedan sin resolver pero que el atento lector seguro adivina, no son mucho más diferentes que los de otras obras, en las que el duque robó el título, el hijo de tal es de cual y fulanito es, en realidad, el heredero al trono (por poner unos ejemplos). Ya sé que la divisoria es muy fina, sobre todo en las obras que marcan el comienzo de un género, pero lo cierto es que, mientras que La Piedra Lunar (próxima relectura) sí es policiáca, ésta no es de mistero. Esto es, por supuesto, una opinión completamente personal.

June 8, 2005

zxSameGame (Presentación)

Filed under: Programación

Bueno, al fin me he decidido ha recomenzar mi último proyecto Open Source. Y digo recomenzar porque lo tenía casi terminado cuando un desastre informático (por culpa exclusivamente mía), lo mandó a donde quiera que esté el paraíso (o infierno) de los programas informáticos.

Es muy posible que a los linuxeros les suene el nombre. Se trata de un juego que viene en los escritorios de Gnome y de KDE, pero que para Windows no existe (o al menos yo no he visto ninguna variante libre). También se encuentra en la plataforma Pocket PC con el nombre de JawBreaker; de hecho viene integrado dentro del propio Windows PocketPC 2003.

El juego consiste en ir quitando figuras contiguas e iguales, haciendo click sobre alguna de ellas. Las demás se desplazan para cubrir los huecos, desplazamiento que se produce de diferentes formas según el modo de juego. y también según el modo de juego, pueden aparecer más figuras o no. El jugador podrá componerse sus figuras y configurar el programa para que acepte sus propios diseños, de modo que, aparte de los tres que voy a entregar (los dos que hay para linux y un nuevo hecho por un colega que es diseñador gráfico), se podrán hacer tantos como se quiera, con un número relativamente ilimitado de figuras. Para indicar las figuras que van a desaparecer si se hace click, éstas girarán al pasar el ratón por encima de ellas.

El proyecto va a estar hecho con Visual Studio 2005 bajo C++/CLI (las extensiones .NET); de momento la Beta 2 (Aunque tendré acceso a las Release Candidate) y, en el caso de que lo termine antes de que salga el VS (allá por noviembre, según dicen las malas lenguas), firmaré una licencia de esas que te permiten sacar una beta.

De momento ya tengo hecho el menú, la ventana Acerca de y estoy con la configuración (la parte que va a componer las teselas y demás). En la próxima entrega hablaré del nuevo símbolo de instanciación del C++ (^) y las diferencias entre pila, montón y montón manejado.

Get free blog up and running in minutes with Blogsome
Theme designed by Gary Rogers