[
    {
        "lang": "JavaScript", 
        "imgs": [
            "zbeats-small.png", 
            "zbeats.png"
        ], 
        "link": [
            {
                "href": "http://kostspielig.github.io/zbeats", 
                "name": "Website"
            }, 
            {
                "href": "https://github.com/kostspielig/zbeats", 
                "name": "Code (Github)"
            }
        ], 
        "name": "ZBeats", 
        "desc": "This an Ableton Live inspired web app to make music by playing\nmultiple clips.  Tempo can be adjusted and everything is kept in\nsync.  The app was done mostly by [Maria\nCarrasco](http://www.carrasco.in) but I helped with some of the\nWebAudio, synchronization and React.js stuff.\n"
    }, 
    {
        "imgs": [
            "loop-small.png", 
            "loop.jpg"
        ], 
        "link": [
            {
                "href": "https://loop.ableton.com/program/state-open-source", 
                "name": "Website"
            }
        ], 
        "name": "Share the code: open source music tech", 
        "desc": "I organized and moderated a panel at the\n[Loop](https://loop.ableton.com) conference, where [Gianfranco\nCeccolini](http://moddevices.com/), [Marije\nBaalman](http://marijebaalman.eu/), [Soledad\nPenad\u00e9s](http://soledadpenades.com/) and [Paul\nDavis](https://en.wikipedia.org/wiki/Paul_Davis_(programmer))\ndiscussed the challenges and opportunities in open source music\ntechnology. [Sole](http://soledadpenades.com/2015/11/18/on-loop-2015)\nand [Paul](https://community.ardour.org/node/12978) wrote about\ntheir experience.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "transducers-small.png", 
            "transducers2.jpg"
        ], 
        "link": [
            {
                "href": "/talks/transducers-cppcon15", 
                "name": "Slides (HTML)"
            }, 
            {
                "href": "https://www.youtube.com/watch?v=vohGJjGxtJQ", 
                "name": "Video (Youtube)"
            }, 
            {
                "href": "http://cppcast.com/2015/12/juanpe-bolivar/", 
                "name": "Interview (CppCast)"
            }
        ], 
        "name": "Transducers: from Clojure to C++", 
        "desc": "I presented the work on [Atria](/do/atria) at\n[CppCon](http://cppcon.org/) in 2015.  The session describes the\ntransducers module and its implementation, which is somewhat\nsurprisingly, less stateful than the Clojure counterpart and very\nperformant.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "atria-small.png", 
            "atria.jpg"
        ], 
        "link": [
            {
                "href": "http://www.github.com/ableton/atria", 
                "name": "Code (Github)"
            }
        ], 
        "name": "Atria", 
        "desc": "Developed at Ableton from 2014, this is a collection of core C++\nlibraries with an emphasis on functional programming and\ninteractive immutable data models. It's *transducers* module was\n[presented in CppCon\n2015](https://www.youtube.com/watch?v=vohGJjGxtJQ).\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "cassowary-small.png", 
            "cassowary.png"
        ], 
        "link": [
            {
                "href": "http://www.github.com/ableton/aqt-cassowary", 
                "name": "Code (Github)"
            }
        ], 
        "name": "Aqt Cassowary", 
        "desc": "Developed at Ableton in 2015, this is plugin brings the power of\nthe [Cassowary constraint solver](http://overconstrained.io/) to\nQML, the Qt based JavaScript superset for declarative user\ninterfaces.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "cooper-small.png", 
            "cooper.jpg"
        ], 
        "link": [
            {
                "href": "https://github.com/arximboldi/cooper", 
                "name": "Code (Github)"
            }, 
            {
                "href": "/talks/europython-2015-lightning-talk", 
                "name": "Slides (HTML)"
            }, 
            {
                "href": "https://pypi.python.org/pypi/cooper", 
                "name": "PyPI"
            }
        ], 
        "name": "Cooper", 
        "desc": "Decorator library for safer cooperative methods in Python.  It\nallows to leverage the power of Python's multiple inheritance\nwithout so much of its drawbacks.  It was presented in a lightning\ntalk in [EuroPython 2015](https://ep2015.europython.eu/en/).\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "modernize-small.png", 
            "modernize.png"
        ], 
        "link": [
            {
                "href": "/talks/moderncpp", 
                "name": "Slides (HTML)"
            }
        ], 
        "name": "Modernize Your C++", 
        "desc": "I did this talk on modern C++ both in an *Ableton Dev Salon* and a\n[Berlin C++ Meetup](http://www.meetup.com/berlincplusplus/) between 2014 and 15.  It\ndiscusses value semantics and non-intrusive polymorphism through a\nprovocative fable, and introduces the [Atria](/do/atria) library.\n"
    }, 
    {
        "lang": "CoffeeScript", 
        "imgs": [
            "mixco-small.png", 
            "mixco.png"
        ], 
        "link": [
            {
                "href": "http://sinusoid.es/mixco", 
                "name": "Website"
            }, 
            {
                "href": "https://github.com/arximboldi/mixco", 
                "name": "Code (Github)"
            }
        ], 
        "name": "Mixco", 
        "desc": "This is a framework for doing advanced controller mappings for\n[Mixxx](http://www.mixxx.org). It promotes a more *literate* and\n*declarative* way of building the scripts, and auto-generates a\nlot of the boilerplate through a compilation step.  It also uses\nall the fancy technologies of the time (Gulp, NodeJS, etc.).\n"
    }, 
    {
        "lang": "CoffeeScript", 
        "imgs": [
            "heterarchy-small.png", 
            "heterarchy.png"
        ], 
        "link": [
            {
                "href": "http://sinusoid.es/heterarchy", 
                "name": "Website"
            }, 
            {
                "href": "https://github.com/arximboldi/heterarchy", 
                "name": "Code (Github)"
            }
        ], 
        "name": "Heterarchy", 
        "desc": "This library adds cooperative Python-style multiple inheritance to\nCoffeeScript.  The implementation is based on the famous [C3\nlinearization Dylan paper](linearization).\n"
    }, 
    {
        "lang": "ClojureScript", 
        "imgs": [
            "sinusoides-small.png", 
            "sinusoides.png"
        ], 
        "link": [
            {
                "href": "https://github.com/arximboldi/sinusoides", 
                "name": "Code (Github)"
            }
        ], 
        "name": "sinusoides", 
        "desc": "At some point I decided to rewrite this site in ClojureScript to\nplay a bit with it.  The site is in an ethernal Work In Progress\nstate, but this might motivate me to put more work on it.\n"
    }, 
    {
        "lang": "Bash", 
        "imgs": [
            "dotfiles-small.png", 
            "dotfiles.png"
        ], 
        "link": [
            {
                "href": "https://github.com/arximboldi/dotfiles", 
                "name": "Code (Github)"
            }
        ], 
        "name": "dotfiles", 
        "desc": "Since I discovered [GNU Stow](https://www.gnu.org/software/stow/)\nI realized that there where no more excuses for not using a VCS\nfor my dotfiles.  Here are my settings for XMonad, Emacs, Bash and\nand friends.\n"
    }, 
    {
        "lang": "CoffeeScript", 
        "imgs": [
            "eatout-small.png", 
            "eatout.png"
        ], 
        "link": [
            {
                "href": "http://www.eatoutberlin.com", 
                "name": "Website"
            }
        ], 
        "name": "Eat Out Berlin", 
        "desc": "[Maria Carrasco](http://carrasco.in) and I are hungry people\nso we made this site to collect the food places we like best in\nBerlin, and play with AngularJS along the way.  The content is an\nethernal work in progress, with most descriptions being just mocks\nfor now.  Pics are nice though.\n"
    }, 
    {
        "lang": "CoffeeScript", 
        "code": "https://github.com/jmdrouin/incredible-art", 
        "link": [
            {
                "href": "http://www.arthackday.net/projects/juan-pedro-bolivar-puente-jerome-morin-drouin-black-hole", 
                "name": "Website"
            }, 
            {
                "href": "https://github.com/jmdrouin/incredible-art", 
                "name": "Code (Github)"
            }
        ], 
        "name": "Black Hole", 
        "imgs": [
            "incredible-art-small.png", 
            "incredible-art.jpg"
        ], 
        "desc": "In 2013, [J\u00e9r\u00f4me\nMorin-Drouin](http://www.theincrediblecompany.com/) and I\nparticipated in the [ArtHackDay: Goin\nDark](http://www.arthackday.net/events/going-dark) in Berlin.  We\nmade this little piece about hidden things that can only be seen\nthrough movement -- movement of the self, and movement of the\nstars.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "meta-small.png", 
            "meta.png"
        ], 
        "link": [
            {
                "href": "/talks/meta.pdf", 
                "name": "Slides (PDF)"
            }, 
            {
                "href": "/talks/meta-16.05.2013.zip", 
                "name": "Materials"
            }
        ], 
        "name": "C++ Template Metaprogramming", 
        "desc": "In 2012 I talked about template metaprogramming at a *Ableton Dev\nSalon*, showing how C++ templates are lazy, purely functional,\nmeta-language with a unityped type system of its own.  Some of the\ncontent is a bit dated, as\n[Boost Hana](https://github.com/boostorg/hana) have refined the\ntechniques for C++14 and beyond.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "jpblib-small.png", 
            "jpblib.png"
        ], 
        "link": [
            {
                "href": "http://www.sinusoid.es/jpblib", 
                "name": "Website"
            }, 
            {
                "href": "https://github.com/arximboldi/jpblib", 
                "name": "Code (Github)"
            }
        ], 
        "name": "jpblib", 
        "desc": "The Jolly Python Basic Library is a collection of basic utilities\nthat I used in most projects, like metaprogramming tools,\nobservers, etc.  The library is now in a process of being split\ninto more meaningful components, like\n[Cooper](https://github.com/arximboldi/cooper).\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "ableton-small.png", 
            "ableton.png"
        ], 
        "link": [
            {
                "href": "http://www.ableton.com", 
                "name": "Website"
            }
        ], 
        "name": "Ableton", 
        "desc": "I worked for Ableton between 2011 and 2016, where I was one of the\ncore developers of Push, a hardware instrument, and Live, a\nleading digital audio workstation.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "gfits-small.png", 
            "gfits.png"
        ], 
        "link": [
            {
                "href": "http://sinusoid.es/python-avanzado", 
                "name": "Website"
            }
        ], 
        "name": "Advanced Python Course", 
        "desc": "A course in advanced Python targeted at astrophysics programmers\nthat I held in 2011 [at the IAA](http://www.iaa.es/). It included\nOO and functional programming, metaprogramming, GTK, library\ninterfacing, TTD, Django and others.\n"
    }, 
    {
        "lang": "PHP", 
        "imgs": [
            "jsxaal-small.png", 
            "jsxaal.png"
        ], 
        "link": [
            {
                "href": "http://www.nongnu.org/cvg-moodle", 
                "name": "Website"
            }, 
            {
                "href": "https://savannah.nongnu.org/projects/cvg-moodle", 
                "name": "Code (Savannah)"
            }
        ], 
        "name": "CVG Moodle plug-ins", 
        "desc": "Collection of Moodle plug-ins that were developed as a couple of\ninternships in the University of Granada between 2009 and 2011 to\nadapt it to our specific needs. They might be useful to some other\nComputer Science departments.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "psynth-small.png", 
            "psynth.png"
        ], 
        "link": [
            {
                "href": "http://www.psychosynth.com", 
                "name": "Website"
            }, 
            {
                "href": "https://savannah.gnu.org/projects/psychosynth/", 
                "name": "Code (Savannah)"
            }
        ], 
        "name": "GNU Psychosynth", 
        "desc": "A framework for the development of modular, interactive and\ncollaborative synthesisers targeted at live music performance. It\nwon the Spanish Inter-University Free Software contest in\n2008. Written in 2007 onwards.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "mixxx-small.png", 
            "mixxx.png"
        ], 
        "link": [
            {
                "href": "http://www.mixxx.org", 
                "name": "Website"
            }
        ], 
        "name": "Mixxx", 
        "desc": "Mixxx is a professional DJ software. I am mostly a user, but since\n2010 I have made a couple of patches and maintain the\n**JavaScript** MIDI mapping for the [M-Audio Xponent\ncontroller](http://www.mixxx.org/wiki/doku.php/m-audio_xponent).\n"
    }, 
    {
        "lang": "Haskell", 
        "imgs": [
            "hcrypt-small.png", 
            "hcrypt.png"
        ], 
        "link": [
            {
                "href": "/static/soft/hcryp-10.07.2011.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "HCrypt", 
        "desc": "Collection of cryptographic and modular arithmetic programs\nwritten in 2011 for a course in cryptography in the University of\nGranada. It includes high performant symmetric and asymmetric\ncryptographic programs, hashes, among other things.\n"
    }, 
    {
        "lang": "Matlab", 
        "imgs": [
            "mia-small.png", 
            "mia.png"
        ], 
        "link": [
            {
                "href": "/static/soft/mia-18.02.2011.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Artificial vision toolkit", 
        "desc": "An image processing and artificial vision toolkit with an user\ninterface. It includes several algorithms, including border and\ncorner detection and block matching. Written in 2011 in a course\nin models of artificial intelligence.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "mpi-small.png", 
            "mpi.png"
        ], 
        "link": [
            {
                "href": "/static/soft/pdp-27.01.2011.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "MPI algorithms", 
        "desc": "Some algorithms implemented using MPI and C++. Some of them, like\nbranch and bound-based, are implemented generically such that new\nalgorithms require minimal effort in filling the apropiate\nhooks. Written in 2010 for a university course in parallel\nprogramming.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "panda-small.png", 
            "panda.png"
        ], 
        "link": [
            {
                "href": "/talks/charla-juegos.pdf", 
                "name": "Slides (PDF)"
            }, 
            {
                "href": "/talks/charla-juegos.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Desarrollo r\u00e1pido de videojuegos con el panda y la pit\u00f3n", 
        "desc": "Another of the workshops organized by the [Hacklab Colina\nRoja](http://www.colinaroja.org). In this one from 2010 I talked\nabout the fundamentals of game development, with examples built in\nPanda3D and Python.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "noxim-small.png", 
            "noxim.png"
        ], 
        "link": [
            {
                "href": "https://launchpad.net/noxim-utu", 
                "name": "Code (Launchpad)"
            }
        ], 
        "name": "Noxim 3D", 
        "desc": "Noxim 3D is a modification of the [Noxim Network-on-Chip\nsimulator](http://noxim.sourceforge.net/) to support 3D\nnetworks. It can simulate several routing algorithms and the TSV\ndisposition is fully configurable. I wrote it in 2010 in the\nUniversity of Turku under the supervision of Alexander Yin.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "pigeoncide-small.png", 
            "pigeoncide2.png"
        ], 
        "link": [
            {
                "href": "https://savannah.nongnu.org/projects/pigeoncide", 
                "name": "Code (Savannah)"
            }, 
            {
                "href": "https://www.youtube.com/watch?v=ITEoz1KrCeY", 
                "name": "Video (Youtube)"
            }
        ], 
        "name": "Pigeoncide", 
        "desc": "A game written in 2010 with [Alberto Villegas\nErce](http://albertovillegaserce.blogspot.com/) and others in the\nUniversity of Turku were one is a crazy kill convinced to\nmassively extermine pigeons. The game features cool flockin AI and\nis looking for a 3D designer.\n"
    }, 
    {
        "lang": "Python", 
        "link": [
            {
                "href": "/static/soft/yaas-28.08.2010.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Yet Another Auction System", 
        "deps": "django==1.2\nPIL (Python Imaging Library)\n", 
        "imgs": [
            "yaas-small.png", 
            "yaas.png"
        ], 
        "desc": "An online auction system written in Django for a course on web\nsystem development in the University of Turku in 2010. It lacks a\nproper payment system but features a multi-format REST\ninterface among some other cool features.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "jagsat-small.png", 
            "jagsat.png"
        ], 
        "link": [
            {
                "href": "https://savannah.nongnu.org/projects/jagsat", 
                "name": "Code (Savannah)"
            }, 
            {
                "href": "https://www.youtube.com/watch?v=BZKwVIwxyrU", 
                "name": "Video (Youtube)"
            }
        ], 
        "name": "Code of Greed", 
        "desc": "A computer based Risk implementation featuring a novel touchable\ninterface. Written in 2010 under the supervision of the\n[TribeFlame]( http://www.tribeflame.com/) game company in the\nUniversity of Turku.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "overdose-small.png", 
            "overdose.png"
        ], 
        "link": [
            {
                "href": "/static/soft/overdose-0.1.2.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Overdose", 
        "desc": "A 3D game were you are a ruined trader who chooses to end his life\nby taking as much drug as he can &mdash; if the dealers and cops\nlet you! Written in 2008 for a university course in computer\ngraphics with its own engine on top of SDL.\n"
    }, 
    {
        "lang": "Haskell", 
        "imgs": [
            "hmech-small.png", 
            "hmech.png"
        ], 
        "link": [
            {
                "href": "/static/soft/hmech-24.06.2010.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "HMech", 
        "desc": "Artificial intelligence for the Battletech board game, the virtual\nboard where it runs can be [downloaded\nhere](/static/soft/Entorno_BattleTech_09-06-03.zip). It includes a 60\npages document describing its inner algorithms. Written in 2009\nfor a course in knowledge modelling in the University of Granada.\n"
    }, 
    {
        "lang": "Haskell", 
        "imgs": [
            "hform-small.png", 
            "hform.png"
        ], 
        "link": [
            {
                "href": "/static/soft/hform-0.1.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "HForm", 
        "desc": "A tool for evaluating and simplifying predicate logic\nexpressions. Includes a GTK user interface. Written in 2009\nfor a course in lambda calculus held in the University of Granada.\n"
    }, 
    {
        "lang": "Java", 
        "imgs": [
            "pc-small.png", 
            "pc.png"
        ], 
        "link": [
            {
                "href": "/static/soft/pc-27.05.2009.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Concurrent traffic simulator", 
        "desc": "A traffic jam simulator. Introduces non-determinism by running\neach car in a separate thread and the road topology is driven by\nan extensible framework. Written in 2009 for a course in\nconcurrent programming.\n"
    }, 
    {
        "lang": "Java", 
        "imgs": [
            "jpoker-small.png", 
            "jpoker.png"
        ], 
        "link": [
            {
                "href": "/static/soft/jpoker-23.01.2009.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "JPoker", 
        "desc": "A poker program with a SWT UI and a simple aritificial\nintelligence. Written in 2008 for a course in object oriented\nprogramming.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "cmodular-small.png", 
            "cmodular.png"
        ], 
        "link": [
            {
                "href": "/talks/c-modular.pdf", 
                "name": "Slides (PDF)"
            }, 
            {
                "href": "/talks/c-modular.tar.gz", 
                "name": "Slides (Latex)"
            }, 
            {
                "href": "/talks/c-modular-src.tar.gz", 
                "name": "Code (tar.gz)"
            }
        ], 
        "name": "ANSI C Modular", 
        "desc": "In 2008, as part of one of the few *Hackea y Lucha* workshop\nsessions we did at the [Hacklab Colina\nRoja](http://www.colinaroja.org), I held a session on modularity\nand C, covering libraries and binary compatibility, object\norientation, and plugin systems, backed up with a lot of sample\ncode.\n"
    }, 
    {
        "lang": "PHP", 
        "imgs": [
            "dicc-small.png", 
            "dicc.jpg"
        ], 
        "link": [
            {
                "href": "http://sinusoid.es/rae", 
                "name": "Website"
            }, 
            {
                "href": "/static/soft/rae-07.01.2011.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "\u00a1Mete tu palabra en el diccionario!", 
        "desc": "Automated XSS exploit of the official Spanish dictionary to\nsimulate user given definitions of non existant words. I notified\nthe bug to the dictionary maintainers, and the attack does no\nlonger work.\n"
    }, 
    {
        "lang": "ASM", 
        "imgs": [
            "asmpaint-small.png", 
            "asmpaint.png"
        ], 
        "link": [
            {
                "href": "/static/soft/asmpaint-09.01.2008.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "ASM Paint", 
        "desc": "A command based drawing application with support for script based\nanimations. Written in 2007 as part of a course on computer\norganization. It uses its own thin wrapper over SDL to interface\nwith the graphic hardware.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "ec2-small.png", 
            "ec2.png"
        ], 
        "link": [
            {
                "href": "/static/soft/ec2-24.06.2008.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "PC speaker player", 
        "desc": "This includes two tools for playing music on the PC speaker: a\nMS-DOS raw audio file player with filters and FX, and a Linux 2.6\nOSS driver that exposes the PC speaker as an audio\ninterface. Developed in 2008 for a course in computer\norganization.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "plisc-small.png", 
            "plisc.png"
        ], 
        "link": [
            {
                "href": "/static/soft/plisc-0.1.2.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "PLIS compiler", 
        "desc": "Compiler of my own languge with C-like semantics but maybe\nshorter syntax. Written in 2007 as part of a course in\ncomputer organisation in the University of Granada.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "mailcrawl-small.png", 
            "mailcrawl.png"
        ], 
        "link": [
            {
                "href": "/static/soft/mailcrawl-0.2.0.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Mail Crawl", 
        "desc": "A multi-threaded web crawler that finds email addresses on the\nweb. You may give it a list of root web pages and it will follow\nlinks dumping all unique email address it finds. Written in 2007\nas part of a course in formal languages in University of Granada.\n"
    }, 
    {
        "lang": "C++", 
        "imgs": [
            "yann-small.png", 
            "yann.png"
        ], 
        "link": [
            {
                "href": "/static/soft/yann-0.0.1.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Yet Another Neural Network", 
        "desc": "A program that executes layered neural networks. It uses a\npipelined multi-threaded evaluation algorithm that is described in\nits documentation. Written in 2008 for a university course in\ncomputation models.\n"
    }, 
    {
        "lang": "Java", 
        "imgs": [
            "harmonic-small.png", 
            "harmonic.png"
        ], 
        "link": [
            {
                "href": "/static/soft/harmonic-03.01.2008.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Harmonic", 
        "desc": "A clone of the [http://www.last.fm](Last.fm) site. It uses\nservlets and its own dispatching and DOM manipulation\nframework. The application itself was never fully finished.\n"
    }, 
    {
        "lang": "Python", 
        "imgs": [
            "member-small.png", 
            "member.png"
        ], 
        "link": [
            {
                "href": "/static/soft/member-28.10.2008.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "Member Manager", 
        "desc": "A program for the management of the members of an\norganisation. Features a GTK UI and multiple database systems\nsupport. Written in 2008.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "glmesh-small.png", 
            "glmesh.png"
        ], 
        "link": [
            {
                "href": "/static/soft/glmorph-12.05.2008.tar.gz", 
                "name": "Source (tar.gz)"
            }
        ], 
        "name": "GL Morph", 
        "desc": "A simple program for doing grid-based morphing transformation\nwritten in 2006. It includes a grid editor and an animation\nplayer.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "gnupdf-small.png", 
            "gnupdf.png"
        ], 
        "link": [
            {
                "href": "http://www.gnupdf.org", 
                "name": "Website"
            }, 
            {
                "href": "https://savannah.gnu.org/projects/pdf", 
                "name": "Code (Savannah)"
            }
        ], 
        "name": "GNU PDF", 
        "desc": "Since 2006 I occasionally contribute to the GNU PDF project. My\ngreater contributions are in the filters subsystem. It is a *FSF\nhigh priority project* so you are very welcomed [to\njoin](http://planet.gnu.org/gnupdf/?p=9).\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "gnujump-small.png", 
            "gnujump.png"
        ], 
        "link": [
            {
                "href": "http://gnujump.es.gnu.org", 
                "name": "Website"
            }, 
            {
                "href": "https://savannah.gnu.org/projects/gnujump", 
                "name": "Code (Savannah)"
            }
        ], 
        "name": "GNU Jump", 
        "desc": "Since 2005, when I had too much free time at high school, I\ndevelop and maintain this simple yet addictive arcade game\nwere one should jump ad-nauseum to survive.\n"
    }, 
    {
        "lang": "C", 
        "imgs": [
            "luciferino-small.png", 
            "luciferino.png"
        ], 
        "link": [
            {
                "href": "http://luciferino.sourceforge.net", 
                "name": "Website"
            }, 
            {
                "href": "http://sourceforge.net/projects/luciferino", 
                "name": "Code (SourceForge)"
            }
        ], 
        "name": "Luciferino", 
        "desc": "In 2003-2006 I developed this aim-and-shoot sidescroller game\nengine. It was never fully completed, but its core was reused to\nlater write GNU Jump.\n"
    }
]