Java Projects


The leRCoS project ( lego Remote Control System ) is a framework that allows standard Java programs (which run on a complete Java Runtime environment) to exploit the LEGO RCX Brick. leRCoS abstract the RCX Brick into a standard Java Object that makes your programm interact with the LEGO Mindostorms platform. Read more»

JOP: Java Operator Overloading

Operators overloading, is one of the great features of Object Oriented Languages like C++ and C# that increases code legibility and Java developers still can't use. JOP is mine proposal for operator overloading in the Java language. JOP is a simple compiler that allows operator overloading in Java. JOP is based on a subset of Java language syntax called Featherweight Java (FJ); It is a small pre-processor that translates FJ + Operator overloading syntax (jopc syntax) into Java files the java compiler (javac) can process and transform into bytecode. Read more»


Jenet is a CSP (constraint solving programming) simulator based on Neural Networks. Jenet implements the GENET (Generic Neural Network Simulator) algorithm plus a powerful graphical simulator that shows how a csp problem is translated into a Neural Network and in which way the network evolve to solve the problem. The graphic simulator is based on the JUNG open source library. Read more»

POW: Print Over Web

POW is the project I developed for the Ricoh-Sun contest 2005. It is a xlet type application allows printing of Word Wide Web resources. POW is a web browser plus a file excange frontend basend on FTP protocol. With POW you can browse web pages, searching for documents and print them without using a PC. Web browser uses only the HTTP protocol, different protocols support (for example FTP/SCP ecc..) is supplied by POW with a generic frontend for file exchange unbound from comunication protocol (prototype works with FTP). POW application placed second in Italian finalist and I get a special prize for my support in the constest forum. Read more»


BlueGrid is a middleware that provides parallel computing over J2ME devices using Bluetooth communication protocol. It allows J2ME devices to share computational load with other devices using a distributed scripting language called G-Script. G-Script has been designed upon a JavaScript like, open source, scripting language called F-Script. G-Script introduce the parallel and the task language constructs alows to define tasks and code sections where tasks can be executed in a distributed way thanks to BlueGrid. Read more»

J2P: Java to tuProlog

J2P simplify the invocation of the inference engine tuProlog (2P) from Java. The Prolog Description Language (IPL) permits to define interfaces for Prolog theories a stub generator can translate into Java classes. J2P creates Prolog theories Java wrappers and makes calls to Prolog predicates simple as invoking a Java method. Moreover J2P uses JavaBeans pattern in order to automatically traslate Java objects into Prolog predicates and viceversa using a marshaling and unmarshaling process which behaviour can be defined in the IPL definition file. Read more»

C++ Projects

JDL Parser

The Job Description Language is used, in Grid environment, to describe tasks submitted to the batch subsystem. JDL is an extension of the Condor's Classified Advertisements (classads). The parser is written in C++ and uses the Boost.Spirit API; Spirit is a (new generation) parser generator based on C++ template (meta) programming. Read more»


The main goals of the CppWfMS project is the development of a Workflow Management System (WfMS) for the e-science with the following properties: (i) mainly written in C++, (ii) based on Petri Nets formalisms and (iii) running on the top of the EGEE/gLite Grid middleware. Read more»


TopoWatch is an open source freezing detection software for automated fear-conditioning. TopoWatch can analyze video streams in several formats (MPEG-4) and trace the freezing behavior of the of the observed animal (tested on mice). TopoWatch is written in C++ and is capable of exploiting multicore architecture up to N cores. TopoWatch uses the FFMPEG library for video encoding, that means it can support all the video formats FFMPEG supports (AVI, MPEG-4, etc...) and is available for both Linux and Windows. Read more»


BPNN++ is a C++ implementation of a Feed-Forward Back-Propagation Neural Network with maximum of 2 hidden layers. BPNN++ makes hevily use of templates and it comes as C++ header with no dependencies to 3rd party libraries (except for STL). It means you can download it, #include "bpnn++.hpp" in your project and start using neural networks in C++. Read more»



under development



JCalendar is a simple Java component (extends JPanel class) used as date selector. Read more»

C++ Logging Library

The main issue of this C++ logging library is to be thread safe. This simple library has been built relying on Boost libraries; actually Boost.Thread and Boost.iostream libraries have been used. Read more»