Hugs98 on the iPhone

20 septiembre 2008

It’s true! Haskell on the iPhone.

If you are like me and love to learn programming languages but your duties don’t allow you to test that lovely brand new algorithm on a computer ( as there is no one near available … being at the park is a good example ).

Now you can, … on your iPhone  ;)

Hugs98 is  *THE* Haskell interpreter, it almost supports all Haskel98 specification, you can check all the details at http://www.haskell.org/Hugs/index.html

Please enjoy this hugs98 package for the iPhone installable at cydia and installer, it is included by default in the comunity sources, so you’ll only have to refresh your sources and it will be there, in the development section.

Just install com.wordpress.argaldo.hugs98 (hugs98) and/or com.wordpress.argaldo.hugs98-packages (hugs98-packages) if you want full hugs libraries ( as included in hugs98 source distribution ).

Then, open the console application and run ‘hugs’.

For the brave user:

Here are the links where you can access the .deb files that package hugs for the iPhone:

com.wordpress.argaldo.hugs98

com.wordpress.argaldo.hugs98-packages

La décima dimensión

4 septiembre 2006

Imaginarse a partir de la quinta dimensión es difícil, la décima prácticamente imposible. He aqui una ayuda en forma de presentación flash que nos lleva hasta la décima dimensión: http://www.tenthdimension.com/flash2.php.

Descripción en modo texto para amantes de lynx o evitadores de flash.

rdfEn estos días estoy preparando una presentación sobre un caso concreto de aplicación de tecnologías semánticas y concretamente le he echado un vistazo entre otras cosas al estado de las soluciones de almacenamiento de documentos RDF.

Las bases de datos RDF, al igual que que las bases de datos XML, son de esas tecnologías que vas encontrando a lo largo de la vida de manera recurrente, tecnologías muy prometedoras pero que no tienen mayor aceptación fuera de entornos académicos y entornos de uso muy específicos ( léase el caso de Tamino o Xindice de Apache ). Esperemos que las bases de datos RDF tengan un mayor recorrido que las basadas únicamente en XML por el contenido que almacenan y las mayores posibiilidades que se les auguran.

Algunas bases de datos RDF disponibles para su utilización en proyectos de rango empresarial, en su mayoría Sofware libre, son:

Kowari y su trabajo derivado (“fork”) Mulgara (los eternos problemas de licencias), son bases de datos nativas RDF, transaccionales y con grandes capacidades de conectividad, servicios web, API y JRDF ( la que pretende ser una estandarización de librerias de acceso a documentos RDF ) y si pecan de algo es de no haber adoptado todavía SPARQL como lenguaje de consulta, aunque si permiten consultas a través de TQL (Tucana Query Language).

Sesame , es una base de datos RDF que puede ser desplegada en un amplio tipo de soportes, únicamente en memoria, en sistemas de archivos, en bases de datos relacionales, etc… Tiene dos interfaces de acceso, HTTP y Servicios web utilizando SOAP como transporte y soporta RQL como lenguaje de consulta tanto de documentos RDF como RDF-S. El soporte de SPARQL en Sesame ( gracias al paquete SPARQL engine ) está previsto en la versión 2.0 que a fecha de hoy todavía esta en fase alpha-3.

Intellidimension RDF gateway, esta es comercial, es nativa, solo funciona en sistemas Windows e incluye un lenguaje de consulta basado en SQL y un servidor web para la creación de paginas web basadas en datos semánticos gracias a un lenguaje de scripting incluído en el paquete.

D2RQ, o como tratar bases de datos( generalmente relacionales ) como si fuesen bases de datos RDF, programado en Java y que utiliza un lenguaje especial, D2RQ Mapping Language, para establecer las relaciones entre una ontología y un modelo relacional. Una manera rápida de proveer acceso semántico a información almacenada en una base de datos relacional.

RDFDB, una pequeña base de datos RDF nativa con acceso desde Perl y/o C con un lenguaje de consulta similar a SQL

Son dignas de mención las tecnologías semanticas de Oracle 10g, que persisten tripletes RDF en la base de datos permitiendo la búsqueda utilizando SQL, concretamente una extension de PL/SQL.

Joseki no es una base de datos RDF propiamente pero si es un servidor que implementa una interfaz de consulta SPARQL para Jena.

candado.gifRecientemente he tenido conocimiento a través del blog de enrique dans de los sistemas OFF (Owner Free Filing system) de compartición de archivos. El sistema funciona utilizando la bien conocida técnica de encriptación a través de claves de un solo uso, que de una manera sencilla se puede resumir en lo siguiente:

Para compartir el archivo, se genera una caché con una colección de números aleatorios (deberían ser realmente aleatorios, si no la desencriptación sería trivial si se llega a descubrir el patrón generador) de 128 Kb, se divide el archivo a enviar a través del sistema en bloques de 128 Kb y se aplica la función XOR a cada uno de los bloques y uno de los numeros aleatorios generado en un primer momento. Como producto se consigue un bloque encriptado del mismo tamaño que el bloque original pero que no conserva ninguna de la información original. A partir del bloque generado es posible conseguir el bloque original sin mas que aplicar la función XOR sobre el bloque generado y la clave de un solo uso utilizada para encriptar, además, la clave utilizada queda excluída para siguientes operaciones. Cada numero aleatorio se utiliza una única vez, de ahi la potencia y seguridad de la clave de un solo uso, el único algoritmo de encriptación que no se puede romper. Para la reconstrucción de un archivo determinado, se debe guardar un índice de claves de un solo uso utilizadas, asi como los bloques generados y su posición relativa dentro del archivo dividido para poder reconstruir el archivo a partir de sus bloques codificados. Realmente este proceso no es tan sencillo, se realiza alguna operación XOR mas encadenada, el funcionamiento completo está explicado en el documento disponible en la web de OFF titulado “On copyright numbers with an application to the Gesetzklageproblem”.

Ahora bien, claramente este sistema pretende poder compartir archivos en una red P2P sin tener que preocuparse por implicaciones legales de violación de derechos de autor, ya que se postula que los numeros aleatorios y el resultado de su aplicación a otros números ( a través de operaciones lógicas, las que entiende un ordenador ) no estan protegidos por derechos de autor o en todo caso el numero aleatorio y el producto serían propiedad del que encripta. Parece la panacea en cuanto al debate derechos de autor / intercambio de archivos, pero me surgen las siguientes dudas…

Con este sistema se puede asegurar que la información transmitida a traves de una red de compartición de archivos no es la original y protegida por derechos de autor, pero, ¿No prohiben la mayoria de obras originales el tratamiento y difusión de trabajos derivados de sus obras?

¿Acaso una operación logica sobre una obra original que genera otra con contenido aleatorio no se puede considerar trabajo derivado simplemente por la naturaleza aleatoria o (pseudoaleatoria) del resultado?

¿Que ocurre con la prohibición que incluyen muchas obras por la cual no es posible hacer ningun tipo de modificación sobre el contenido digital de la misma?

¿Una vez aislado uno de los bloques de 128 Kb de la obra original protegida por derechos de autor, se puede asegurar que no es un bloque aleatorio de la misma naturaleza que el bloque generado como producto de las operaciones del sistema OFF?

¿Es el caos una consecuencia del orden o viceversa?

¿Algún abogado en la sala?

google y sus n-gramas

10 agosto 2006

ngramaHace unos días que google anunció en su blog de investigación que en un breve plazo ofrecerá a la comunidad investigadora un corpora de n-gramas de palabras que ha ido recogiendo durante todos estos años. En total aseguran haber procesado mas de un billón de n-gramas y que publicarán los resultados de un subconjunto de 1,146,580,664 de estos a través del LDC.

Un n-grama es un subsecuencia de n elementos de una secuencia dada, que aplicada al corpus de texto que ofrecerá google se traduce en combinaciones de n caracteres a partir de una palabra o conjunto de palabras. Los n-gramas poseen caracteristicas estadísticas que los hacen apropiados para la caracterización de textos en general e identificación de idioma de un texto en particular (es notable el estudio de Cavnar y Trenkle N-Gram-Based Text Categorization proponiendo una técnica sencilla basada en la determinacion empírica de la diferencia de un texto y otros categorizados), para reconocimiento de lenguaje (que no reconocimiento de voz), detección de errores gramaticales, aplicaciones de extracción de texto (OCR), etc..

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.