|
|
Public Software
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.
Software we have released includes the following projects:
-
CScout
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.
-
UMLGraph
allows the declarative specification and drawing of a number of UML
diagrams. See also the
article
titled On the declarative specification
of models. IEEE Software, 20(2):94-96, March/April 2003.
-
Outwit
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.
-
Socketpipe
connects a remote command to local input and output processes without
the data copy and context switching overhead of the customary rsh or
ssh pipelines.
-
Fileprune
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
article
Organized pruning
of file sets. ;login:, 28(3):39-42, June 2003.
-
bib2xhtml
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.
-
SSuite
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.
-
FIRE/J
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
-
Regular Expression Benchmark Utility
is an application written in 100% Java. It was implemented to test FIRE/J execution speed and compatibility
against other Regular Expression Engines in Java. The FIRE/J regular expression library is designed to
provide maximum execution speed, while remaining portable across different machine architectures.
To achieve that, FIRE/J transforms each regular expression into a tailor-made class file, which is
compiled directly to Java virtual machine (JVM) bytecodes.
-
SARE - Simple API for Regular Expressions
- SARE stands for Simple API for Regular Expressions. Its an API that provides event
based regular expression parsing. SARE's API is very simple. The developer need only to
implement an interface, action event handler and attach it to the specific group of SARE parser.
-
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
application.
-
Voting
Power calculates the voting power of voters with weighted votes in
an assembly.
|