• P2PPP - Peer to Peer Planning Poker


    An implementation of ‘Planning Poker’ often used in software feature estimation.

    This version uses WebRTC data channels to coordinate votes between the players, which reduces the need for a server to track this state and improves running costs and performance.

    p2ppp.kothar.net — [Source code] (https://github.com/kothar/p2ppp)

  • CompactList


    CompactList implements the List<Long> interface, but internally it uses a tree of variable word-width segments to improve performance and memory usage compared to an ArrayList.

    Performance tends to be worse for appends than an ArrayList but better for inserts. Memory usage is significantly reduced, even for incompressible random data where it approaches the memory use of an array of primitive longs (which happens to be the internal representation in this case).

    There are some performance metrics over at the GitHub repository. My aim is to use this for the internal index representation in CSView, which already uses an earlier version of this data structure.

    Source code at GitHub

  • Magnets


    After reading this article about Magnetic Poetry I was taken by the idea that the fridge was no longer the central notice board of the home:

    Our age-old impulses haven’t gone away—changes in technology have just encouraged us to take them elsewhere. “It used to be the fridge door was the center of the home,” Kapell says. “That’s where people would hang their kids’ art, leave notes for each other, put pictures, all that stuff.”

    So, I thought I would create a digital magnetic notice board, replete with fridge poetry, postcards and photos. I’ve got a few loose ends to tie up, but I’m pretty happy with the proof of concept.


  • Languamatch


    Languamatch was an experimental service for locating language exchange partners based on shared interests and skill levels.

    (Currently offline)

  • Furor


    Furor is a web content curation tool for businesses.

    (Currently offline)

  • SlimTweet


    SlimTweet tries to shorten a message by applying a set of rules. For example, and will be replaced by &, while it is will be replaced by it's.

    Substitutions will be made one at a time until the message reaches a target length (140 characters by default).

    If SlimTweet still can’t make the message fit, it will start tweaking the Unicode characters which make up your message, without changing its appearance too much. For example, the digraph vi will be replaced by the roman numeral character . When rendered in a standard font, these substitutions are nearly inⅵsible.


  • jGraphViz


    Graphviz is a widely used graph layout package developed by AT&T.

    There exist several ways of using Graphviz from Java, but in most cases the Graphviz command line tools are called to parse files containing a graph definition and render a rasterised image of the graph.

    This is unsatisfactory for many interactive applications, and a more direct interface to the layout algorithms is desirable. Java bindings generated using SWIG already exist as part of the Graphviz source code, however they are very low-level.

    jGraphViz aims to build on these low-level bindings to provide a more flexible interface to the graph model and layout system. It also provides some basic support for rendering the resulting layouts using GEF , and packages the library as an OSGi plugin compatible with Eclipse and other OSGi containers.

    Source code at SourceForge

  • Javada


    Javada automatically generates bindings which allow Ada and Java to talk to each other.

    Source code at BitBucket

  • Eclipse CORBA Plugin


    An Eclipse editor plugin for CORBA IDL files

    eclipsecorba.sourceforge.netSource code