You are in: Home » Software


This page contains a list of some of the software packages I have developed. Some of the projects are still active, depending on personal availability and current interests. All software is released as is without any implied or explicit guarantee of any kind.

Improved Linux Driver for Brother HL-L2360DN

The Brother HL-L2360DN is an inexpensive B/W laser printer with auto duplex and USB/Fast Ethernet connectivity. Brother provides printer drivers for Linux, but the drivers are only partially open source (they contain binary programs). However, the printer understands PCL6 and works perfectly with the standard pxlmono driver. Under Ubuntu 14.04 you can select Generic PCL 6/PCL XL Printer Foomatic/pxlmono from the Printer configuration panel, and everything wil work out of the box (setting the resolution, enabling/disabling duplexing); therefore, I feel to recommend this printer for those needing a cheap B/W laser ethernet printer with auto duplexing (Note: I did not test USB connectivity yet).

The PPD below is a minimal modification of pxlmono.ppd the adds support for the following printer-specific features:

The options above are supported through appropriate commands inserted into the PJL preamble. These commands are described in the Brother Printer Technical Reference Guide (while the Web page is in italian, the PDF document linked therein is in english).

The file Brother-HL-L2360DN.ppd is based on Generic-PCL_6_PCL_XL_Printer-pxlmono.ppd and is distributed under the terms of the GNU General Public License (GPL) as the original file.

Download (Last updated: 2014/11/2)

The Octave Queueing Package

A central server queueing network

The queueing package (previously known as qnetworks toolbox) is a GNU Octave package for analyzing Markov chains and queueing network models. It includes implementations of the MVA algorithm for open and closed QN (both single and multiclass networks are supported). The queueing package is free software, released under the terms of the GNU GPL version 3 or later.

Learn more...

Data Distribution Management (DDM)

Data Distribution Management icon

The High Level Architecture (HLA) specification (IEEE 1516) defines several Data Distribution Management (DDM) services to forward events generated on update regions to a set of subscription regions. For example, consider a simulation of vehicles moving over a two-dimensional terrain. In this case, each vehicle may be interested in events happening inside its area of interest (e.g., its field of view), that might be approximated with a rectangular region centered at the vehicle position. This kind of problem also arises in the context of Massively Multiplayer Online Games, where the game engine must send game updates only to players that might be affected, in order to reduce computation cost and network traffic. The DDM software package implements the Interval Tree Matching (ITM) algorithm for efficiently reporting intersections among d-dimensional rectangles. DDM is a joint work with Marco Mandrioli and Gabriele D'Angelo.

Learn more...


ErlangTW icon

ErlangTW (Erlang Time Warp) is a parallel/distributed simulation middleware based on the Time Warp synchronization protocol. ErlangTW is entirely written in Erlang, a concurrent, functional programming language specifically targeted at building distributed systems. ErlangTW allows simulation models to be executed either on single-core, multicore and distributed computing architectures. ErlangTW is a joint work with Luca Toscano and Gabriele D'Angelo. ErlangTW is free software, released under the terms of the GNU GPL, version 2.

Learn more...


Go-Warp icon

Go-Warp is a simulator based on the Time Warp synchronization algorithm and implemented using the Go programming language. Go is a general purpose programming language announced by Google in the late 2009 and now developed as an Open Source project. The Go language has good support for concurrency and communication; many features introduced in Go seem to have a good potential but its usage in Parallel And Distributed Simulation (PADS) is still not fully explored. Go-Warp is a joint work with Pietro Ansaloni and Gabriele D'Angelo. Go-Warp is free software, released under the terms of the GNU GPL, version 2.

Learn more...


P2P Cloud System (P2PCS) icon

Cloud Computing has gained popularity in both research and industrial communities. Cloud users can acquire computing resources on a need basis, achieving on demand scalability; Cloud providers can maximize resource utilizations of datacenters, increasing their return on investments. While Cloud systems are usually hosted in large datacenters and are centrally managed, other types of Cloud architectures can be imagined. P2PCS is a prototype implementation of a fully decentralized, P2P Cloud. A P2P Cloud allows organizations or even individual to build a computing infrastructure out of existing resources, which can be easily allocated among different tasks. P2PCS is a joint work with Michele Tamburini and Ozalp Babaoglu.

O. Babaoglu, M. Marzolla, M. Tamburini, Design and Implementation of a P2P Cloud System, proc. 27th Annual ACM Symposium on Applied Computing (SAC 2012), march 26—30, Riva del Garda, Italy, pp. 412—417, ACM ISBN 978-1-4503-0857-1 (see the publications page)


A Linux Webcam Server

Picture of the digital camera control server

In this project I extended a previous work on creating time-lapse movies with a Canon digital photo camera and gphoto. Here I describe how to build a webcam server with a Linux PC, a Canon PowerShot A80 digital camera and a Logitech webcam. The server can operate outdoor, and can be remotely controlled.

Learn more...

Producing Weather Maps with gnuplot and GNU Octave

Temperature map as of may 30, 2008

I created some simple scripts for automatically downloading temperature and rain data from the MeteoVeneto meteo site and producing some nice temperature and rain maps using nothing more than GNU Octave and gnuplot.

Learn more... (sorry, in italian only).

Time-lapse movies with gphoto2

Some time ago I began experimenting with gphoto2 to capture snapshots of clouds, and generating time-lapse movies.

Learn more...

Creating multi-page PDF documents from scanned images in Linux

Raw grayscale scanned image (skewed, with border) B/W image produced after deskewing and debordering

I describe a simple procedure for scanning documents, postprocessing the raw images and joining them together to produce PDF documents (note: no OCR is performed).

Learn more...


libsvmcell icon

libsvmcell is an optimized version of libsvm for the Cell Processor. libsvmcell allows efficient training of Support Vector Machines, taking full advantage of the multiprocessor capabilities of the Cell Broadband Engine.

Learn more...

Interpolation of two-dimensional scattered data using Continuous Global Surfaces

griddata_cgs.m is my simple implementation in GNU Octave of the algorithms described in Billings, S. D., Beatson, R. K and Newsam, G. N., 2001, Interpolation of geophysical data using continuous global surfaces, Geophysics, vol. 67, no. 6 (november-december 2002); pp. 1810—1822. These algorithms are useful for fitting two-dimensional scattered data using a continuous surface. The implementation is similar to the griddata Octave function. The source code for griddata_cgs.m is released under the GNU GPL version 3 or later.

Download (Last updated 2012/09/29)


libcppsim is a process-oriented, discrete-event simulation library written in C++, similar to C++Sim/JavaSim. libcppsim should be considered alpha-quality software. libcppsim is free software and is released under the terms of the GNU GPL version 2 or later.

This software is described in the paper: libcppsim: a Simula-like, Portable Process-Oriented Simulation Library in C++ Proc. ESM'04, the 18th European Simulation Multiconference (Graham Horton, editor), Magdeburg, DE, jun 13–16 2004, ISBN 3-936150-35-4, pp. 222—227 (see the publications page).

Download (Last updated: 2013/03/22)


umlPSI (UML Performance SImulator) is a software tool for performance evaluation of UML specifications. It is able to derive a process-oriented simulation model from annotated UML specifications, execute the model and compute performance measures. More informations can be found on the publications page. umlPSI should be considered alpha-quality software. umlPSI is free software and is released under the terms of the GNU GPL version 2 or later.

This software is described (among others) in the paper: UML-PSI: the UML Performance SImulator by M. Marzolla, S. Balsamo, Proc. of the First International Conference on the Quantitative Evaluation of Systems (QEST 2004), Enschede, The Netherlands, September 27-30, 2004, pp. 340—341, IEEE Computer Society, ISBN 0-7695-2185-1 (see the publications page).

Download (Last updated: 2004/05/29)

This page was last updated on January 11 2017 informativa sulla privacy