Friday, March 11, 2016

El esfuerzo cooperativo al escribir software



Llevo tiempo pensando en que debía hacer algún software que me permitiera corregir los textos que escribo de manera más rápida. Para ello -es claro- se necesita un buen diccionario en español y hasta donde sé, no hay muchos buenos diccionarios que sean gratuitos. Hay sin embargo algunas alternativas, por ejemplo, tratar de usar el diccionario en español que viene con MsWord a través de OLE (Object Linking & Embedded), que es en realidad un protocolo para compartir información entre aplicaciones.

El caso es que me puse a investigar qué debía hacer y empecé por buscar componentes para Delphi (Turbo Pascal para Windows), que ya hiciese esta labor de corrección de forma sencilla, sin tenerme que poner a diseñar la estructura de datos del diccionario. Hallé en www.torry.net, algunos componentes. O eran de demostración o bien, costaban sus buenos dólares. Así que seguí investigando y eventualmente dí con un sitio web, el cual contiene un par de componentes para hacer corrección ortográfica en Delphi: TSpellChecker y TSpellLanguageComboBox. TSpellerChecker es un componente no-visual diseñado para poder añadir la corrección ortográfica a cualquier aplicación. Para ello usa los diccionarios de ISpell, un corrector que nació en una PDP y que eventualmente se portó a otros sistemas. Lo interesante de ISpell es que usa un formato que otros sistemas han imitado. ISpell tiene además otra virtud, hay muchos diccionarios de muchísimos idiomas, entre ellos el español.

Partiendo de esto, este par de componentes parecen ser los idóneos para el trabajo que quiero hacer. Hallo que incluso estos componentes de Delphi pueden usar los diccionarios instalados en MsOffice 95 o 97. El autor de la página indica que no puede garantizar que funcione con versiones más avanzadas de Office. Una ventaja más de estos componentes es que incluyen el código fuente, por lo que en principio, pueden modificarse para las necesidades particulares de los programadores.

Considerando esto, bajé e instalé los componentes en mi Delphi 7, que me sigue pareciendo una de las versiones más estables a pesar de que han salido actualizaciones que sin duda deben ser más poderosas pero para este particular programa, me basta el poder que me da. Cabe señalar que el autor original de los componentes es Alexander Obukhov, de Minsk, Bielorrusia, quien los escribió para Delphi 3. Sin embargo, Luzius Schneider, un suizo, se aplicó para actualizarlos.

Escribí pues un programa sencillo, que hace la corrección ortográfica de manera muy eficiente. Debo decir que la ventana de corrección tiene aún los botones de acciones (cambiar, saltar, ignorar, etcétera), en inglés, lo cual suena ridículo que sigan en ese idioma si la corrección es para el idioma castellano. Tengo que sentarme a leer el código fuente de los componentes para hacer los cambios, pero en realidad "se me quemaban las habas" por ver si el sistema podría funcionar con el diccionario en español de ISpell.

Y sí, funciona y lo hace bastante bien. He empezado a jugar con este programa y lo estoy usando para escribir mis artículos de unocero, buscando que los errores de dedo se minimicen. Igualmente, en algunos artículos pongo referencias y entonces he definido una serie de opciones del menú -que podrían cambiar- para insertar automáticamente texto como el de "Referencias:" u otros que me sean comunes. Vamos a ver cómo evoluciona el software.

Lo más interesante de esta experiencia es que de alguna forma el trabajo en equipo, colectivo, de diversos programadores, da la posibilidad de hacer una aplicación que bien podría considerarse complicada de escribir en algo que me llevo unas pocas horas. Bendito Internet y toda la gente que colabora porque el generar código se vuelva una labor menos complicada.

El programa me lo pueden pedir a mi correo morsa@la-morsa.com, el cual les mandaré para que lo prueben, incluso con el código fuente, para que vean cómo en el cómputo moderno se pueden hacer programas sumamente complejos en tan pocas líneas.


Referencias:

LS Speller 

No comments: