Tag Archives: software

Objective-HyperGraph is born!

It has been a while since I started working on a city transportation testbed framework, codename “Keiko“, and, during the process I found some obstacles that I have overcome one way or another; but I have also realized of the importance of data structures, and the programming language I am using, Objective-C, lacks plenty of them (as opposed to, for instance, Java).

For that reason, and since transportation is a great area to study traversal (routing) algorithms, as well as the typical problems of finding the minimal path (and its derivatives), I decided to start a parallel project to create a small library of common data structures. Starting with… hyper-graphs! And its name is… Objective-HyperGraph!

Why hyper-graphs and not just graphs? Well… because hyper-graphs are just an abstraction (and powerful) of graphs, hence, it would not make much sense augmenting the design later on to allocate hyper-graphs when a graph is a hyper-graph with the constraint of no more than two nodes per edge (while a hyper-graph can have… any!).
Ok… this project is also a consequence of my M.Sc. thesis :) where I studied hyper-graphs heavily… and I guess I married them (sort of ;)

I shall say that I am not actively using this library with Keiko, but I have modified its design to use it in a future version. It is not that I do not trust Objective-HyperGraph project, but rather a question of efficiency, Keiko is using two-dimensional adjacency matrices (to be honest… three-dimensional ;) and at this stage of development I would have to throw away all that, hence I prefer to continue testing and debugging that design so Objective-Hyper-Graph can benefit from it later on (and Keiko will benefit as well).
At the same time, Objective-HyperGraph aims at being more than a library for graphs/hyper-graphs in Objective-C. I would like to see an efficient and simple library of data structures in Objective-C and… open-source!

So… let’s bring those queues, stacks, lists, vectors, trees, heaps,… are you up to the challenge of collaborating with classical algorithms? Or why not your own algorithms?
Check it out at Google Code ;)

Uncategorized

SVK: Secure Virtual Keyboard (in JavaScript)

I finally got it, after a few days of debugging and testing I finally have the first release of a nice and open source virtual keyboard programmed in JavaScript for your webapps wich randomly moves inside a container for each keystroke.

Get the first (and beta) release of SVK v0.01 (Secure Virtual Keyboard). Decompress the files, and load kb.htm in your favourite web browser (right now, only supporting IE6 and FF1.5, but more browsers are coming…). One more thing… I’m Spanish as well as the keyboard image; but using any other keyboard shouldn’t be too hard (next release will include a much better documentation).

I first saw a nice keyboard like this in the Grupo Santander Supernet’s login system. The truth is that this is an open source implementation of their work. I have used some of their images, so until I got an answer from them about the license of the used images I have to warn you not to use them for any commercial purpose, just academic purpose.

My implementation uses the Prototype framework, but I will release a Prototype-free version in a few days (two weeks or so). I also use CSS to load and apply some filters to the images instead of loading all diferent images with JavaScript (check their application and check mine). We both use the map HTML tag to map the different keys of the keyboard, although I don’t really use the image of the img HTML tag; I have a transparent image where I use the map, but this image is inside a div which has the real keyboard image as a background (and this is where I apply the random movement as well as the opacity filter).

Because of my obsession with object-oriented development, I have found some issues with IE (what a surprise.. eh?): creating areas for the map with the DOM core function createElement() worked but IE didn’t do nothing when clicking; so I finally used the innerHTML property (check the _createMap method, non-working code is included but commented).

There’s still a lot of work to do, check the README file, but I think my approach is a good start to get a nice virtual keyboard and also secure. I encourage you to read the LICENSE terms (GNU/GPL v2) and remember what I said about the images (it would be nice if someone did a Creative Commons keyboard)

Happy downloading, and feedback (bugs, request features, fixes for known issues,…) is welcome.

Update [30-09-2006]: Check the demo page :D (Remember… only IE6 and FF1.5 are officially supported…)

Update [24-04-2008]: I’m working on a new version! And… demo page fixed (sorry for taking so long)

Uncategorized

Bytefx: una librería (muy ligera) de efectos

Vía Ajaxian, me entero de la aparición de una nueva librería, muy ligera (poco menos de 3KB), de efectos visuales en javascript llamada bytefx (Simple effects in few bytes).

En la web principal de la librería hay un pequeño API así como pequeños ejemplos de uso. No obstante, también tienen un par de páginas de muestra para ver lo que se puede hacer con la librería; aunque en estos momentos sólo funciona una de las dos.

Los efectos que se pueden generar con esta librería son:

  • Filtrado alpha (alpha)
  • Limpieza de intervalos entre transiciones (clear)
  • Gradiente de color; sí como el gradiente de color que hace WordPress (color)
  • Arrastre de elementos (drag)
  • Transición de imagen; crea una transición alpha de un elemento a otro (fade)
  • Mover un elemento (move)
  • Posicionar un elemento (position)
  • Redimensionado de un elemento (size)

Es compatible con los siguientes exploradores web:

  • IE 5.5+
  • FF1+
  • Konqueror 3.X+
  • Opera9+
  • Safari2+

…y algo menos compatible con:

  • IE5
  • Opera 7 y 8

Esta librería se asemeja a otras como script.aculo.us o moo.fx, aunque es bastante más simple pero útil para dar un poco de magia a nuestras webs; así que otra más a tener en cuenta a la hora de elegir la librería que usaremos en nuestros proyectos para crear los efectos gráficos :)

Me gusta mucho esta librería porque no exige el uso de la libreria prototype, vamos que no está basada en prototype, y de nuevo por su ligereza, ¿te había dicho que es muy ligera? (Menos de 3 KB) :P

A veces, no es necesario utilizar la librería más potente si podemos hacerlo con otra más simple, ¿para qué desperciar potencia que no tenemos intención de utilizar?

Uncategorized

Alcohol 52%: gratuito al 52%

Estaba yo navegando por la web de Alcohol (sí… ya sé que es tarde, pero hasta el próximo lunes no empiezo las clases, así que tengo que aprovechar) y me he topado con el anuncio de que el hermano pequeño de Alcohol 120% es, desde hace 6 días (el 20 de éste mes), gratuito.

La licencia es para uso personal no comercial en una sóla máquina.

Para aquellos que no conozcan las maravillas de éste programa y su hermano mayor, se trata de un programa de copias de seguridad de CD’s y DVD’s así como de emulación de una o varias unidades de CD o DVD. Vamos, que el programa permite, teniendo una imagen de los discos (copia del contenido del disco físico en un fichero en el disco duro) de un juego de ordenador o de los de un programa, simular que hemos introducido los discos físicamente en la unidad de CD o DVD que podamos tener o no ;).

Utilizado con frecuencia para copiar juegos de ordenador (que suelen estar protegidos con fuertes protecciones para evitar las copias) porque permite realizar duplicados exactos. Pero, mejor que sea Alcohol-Soft quien te explique todas las características.

Las diferencias de esta versión frente a las de su hermano mayor son la imposibilidad de escribir a discos físicos una imagen de un disco (es decir, grabar una imagen a un CD ó DVD), el máximo de 6 unidades virtuales de CD ó DVD y… la instalación de una de esas engorrosas barras de búsqueda (Protection Database Search Toolbar), o lo que es lo mismo: spyware y ese es el motivo por el que titulo la entrada como “gratuito al 52%”; desconozco si se podrá quitar o incluso no instalar. Nada en este mundo es gratis, aunque es un avance.

En cualquier caso, feliz descarga a aquellos interesados.