The goal of SENSE is to practice what we preach by
developing software following or deomonstrating the
techniques or methodologies we advocate. When there are
no intelectual property rights conflicts we try to make
our software available in free and/or open-source form.
So far, we have released includes the following software projects:
an integrated platform for large scale software engineering studies.
Alitheia Core works by importing the source code repository, mailing list archives and bug databases for a software project in a unified storage schema and running various analysis tools on the projects.
Alitheia Core is free software, distributed under the 2-clause BSD license. More information can be found in the project's website.
is a source code analyzer and refactoring browser
for collections of C programs. It can process workspaces of multiple
projects mapping the complexity introduced by the C preprocessor back
into the original C source code files. CScout takes advantage of modern
hardware advances (fast processors and large memory capacities) to
analyze C source code beyond the level of detail and accuracy provided
by current compilers and linkers.
allows the declarative specification and drawing of a number of UML
diagrams. See also the
titled On the declarative specification
of models. IEEE Software, 20(2):94-96, March/April 2003.
A tool suite that provides console-based access to the Windows clipboard,
registry, databases, document properties, and links. See also the
conference paper Outwit:
Unix tool-based programming meets the Windows world. In USENIX 2000
Technical Conference Proceedings, pages 149-158, San Diego, CA, USA,
June 2000. Usenix Association.
connects a remote command to local input and output processes without
the data copy and context switching overhead of the customary rsh or
will delete files from the specified set targeting a given
distribution of the files within time as well as size, number, and age
constraints. Its main purpose is to keep a set of daily-created backup
files in manageable size, while still providing reasonable access to
older versions. Specifying a size, file number, or age constraint will
simply remove files starting from the oldest, until the constraint is
met. The distribution specification (exponential, Gaussian (normal),
or Fibonacci) provides finer control of the files to delete, allowing
the retention of recent copies and the increasingly aggressive pruning
of the older files. You can read more in the
of file sets. ;login:, 28(3):39-42, June 2003.
is a program that converts BibTeX files into HTML (specifically XHTML
1.0). The conversion is mostly done by specialized BibTeX style files,
derived from a converted bibliography style template. This ensures that
the original BibTeX styles are faithfully reproduced.
is a secure suite of tools that eliminates code injeciton attacks based on a generic approach. Two applications of our approach have been presented in a journal and conference paper respectively.
is a very fast regular expression library for java. See also the article titled, Vassilios Karakoidas and Diomidis Spinellis. FIRE/J: Optimizing regular expression searches with generative programming. Software: Practice and Experience, 38(6):557-573, May 2008
NGCE - Network Graphs for Computer Epidemiologists
Graphs are useful data structures capable of representing eficiently many technological and social networks.
Because of this specific property they are utilized in the simulation-based studies of new algorithms and protocols.
Inspired by the popular TGFF (Task Graphs For Free) toolkit, which creates task graphs for embedded systems,
we present the NGCE, an easy to use graphical graph generator that produces graphs for the study of the
propagation of viral agents in complex networks.
ckjm - Chidamber and Kemerer Java Metrics.
The program ckjm calculates Chidamber and Kemerer object-oriented metrics by processing the
bytecode of compiled Java files. The program calculates for each class the following six
metrics: (1) WMC: Weighted methods per class, (2) DIT: Depth of Inheritance Tree,
(3) NOC: Number of Children, (4) CBO: Coupling between object classes,
(5) RFC: Response for a Class and (6) LCOM: Lack of cohesion in methods
Pipe Namespace in the Portal Filesystem.
The portal filesystem allows a daemon running as a userland program to pass descriptors to
processes that open files belonging to its namespace. It has been part of the *BSD operating
systems since 4.4 BSD. I recently added a pipe namespace to its FreeBSD implementation.
This allows us to perform scatter gather operations without using temporary files, create non-linear
pipelines, and implement file views using symbolic links.
Indywiki aims to explore
different ways of browsing the Wikipedia universe, through an intuitive GUI
Power calculates the voting power of voters with weighted votes in