producing
OCamlI18N 0.3
OCamlI18N is a library for internationalization of Objective Caml programs. more>>
OCamlI18N (will) provide an I18N module modeling locales, time zones, calendars and dates, numbers and collations for any language, provided enough locale information has been given to him.
The design is heavily inspired by Javas model of localization classes and its motivation was to have a completely thread-safe implementation of internationalization for OCaml fans. If you have any suggestions about the code, contact me (mattam AT mattam DOT org).
OCamlI18N is distributed under the terms of the LGPL.
Enhancements:
- Makefile (VERSION): Set to 0.3, for first release of LDML parsing code.
- src/ISO*.ml*, src/KeyTypes.ml*, src/Variants.ml*, src/ISO_types.ml*: Support for ISO and LDML types, with direct encoding of the enumerations as variant types.
- src/generate_parser.ml: Parser generator, using camlp4 for code construction and capable of producing class types, implementations and parsing code from DTDs.
- src/LDML_types.ml*, src/LDML_impl.ml*: generated code for parsing LDML documents using pxp.
- src/LDML_support.ml*: Support functions for parsing.
- src/LDML.ml*: main entry point to access LDML information.
Duplicity 0.4.3
Duplicity is encrypted bandwidth-efficient backup using the rsync algorithm. more>>
Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.
The duplicity package also includes the rdiffdir utility. Rdiffdir is an extension of librsyncs rdiff to directories---it can be used to produce signatures and deltas of directories as well as regular files. These signatures and deltas are in GNU tar format.
Main features:
Easy to use: Although duplicity is a command-line utility, the semantics are relative simply. To take a basic example, this command:
- duplicity /usr scp://host.net/target_dir
- backs up the /usr directory to the remost host host.net via scp.
Encrypted and signed archives: The archives that duplicity produces can be encrypted and signed using GnuPG, the standard for free software cryptology. The remote location will not be able to infer much about the backups other than their size and when they are uploaded. Also, if the archives are modified on the remote side, this will be detected when restoring.
Bandwidth and space efficient: Duplicity uses the rsync algorithm so only the changed parts of files are sent to the archive when doing an incremental backup. For instance, if a long log file increases by just a few lines of text, a small diff will be sent to and saved in the archive. Other backup programs may save a complete copy of the file.
Standard file format: Athough archive data will be encrypted, inside it is in standard GNU-tar format archives. A full backup contains normal tarballs, and incremental backups are tar archives of new files and the deltas from previous backups. The deltas are in the format produced by librsyncs command-line utility rdiff.
- Although you should never have to look at a duplicity archive manually, if the need should arise they can be produced and processed using GnuPG, rdiff, and tar.
Choice of remote protocol: Duplicity does not make many demands on its archive server. As long as files can be saved to, read from, listed, and deleted from a location, that location can be used as a duplicity backend. Besides increasing choice for the user, it can make a server more secure, as clients only require minimal access.
- Currently local file storage, scp/ssh, ftp, rsync, and Amazon S3 are supported, and others shouldnt be difficult to add.
eq2png 0.01
eq2png is a simple Perl script to make it painless to produce Portable Network Graphic (PNG) images for OpenOffice Impress. more>>
Suppose you had a LaTeX snippet in a file named example-equation.tex: To produce the PNG image of this with black foreground and transparent background (the default), youd type:
eq2png example-equation.tex
INSTALLATION:
Youll need ImageMagick, dvips, and Perl.
Just copy the script somewhere into your path, and create a config file if you dont
like the default behavior.
EXAMPLE USAGE:
1) Produce an image of a equation at the command line:
eq2png int{a + b} = c -o intergral.png
If you dont specify an output file, it will default to eq.png
If you add the -b flag, it will make your equation bold (or try to). This is nice for presentations (where sometimes
thin lines dissapear).
2) Produce an image of .tex file snippet. The .tex file should only contain LaTeX code
code you want rendered (not preamble or other such stuff, which gets wrapped around your snippet).
For example, a file equation.tex might include one line, sum_{a}^b = x!.
You can then produce an image of this in the following way:
eq2png equation.tex #defaults to producing a png file with the same name, i.e., equation.png
or,
eq2png equation.tex -o outputfile.png #produce a png file with the name outputfile.png
NOTE: eq2png will only assume a filename is a .tex snippet if it ends in ".tex". So,
eq2png equation.eq
will produce a png image of the string equation.eq (probably not what you want).
To specify that the string is a filename, use the -f flag, e.g.,
eq2png -f equation.eq -o outputfile.png
NOTE: if you want to include LaTeX macros in your equations, just place a file named macros.tex (or symlink)
in your working directory. It will be included in the .tex code generated to produce your png file.
NOTE: if you need to include special LaTeX packages, see the config file stuff below.
Passepartout 0.7.0
Passepartout is a desktop publishing application. more>>
The main focus is on making it easy for the user to create publications with a flexible layout, typical examples being magazines, brochures and leaflets.
Passepartout is still in the early stages of development, but it is already quite usable.
Main features:
- A user-friendly GTK+-based interface
- Layout templates
- An XML-based typesetting engine called xml2ps
- User-defined text formatting with XSLT stylesheets
- Unicode support
- Importing EPS (Encapsulated PostScript) files
- Importing images in JPEG, TIFF, PNG (no transparency), XPM, PNM, RAS, BMP and GIF format
- Text running around image (or text) frames
- Printing to PDF, PostScript and EPS
- Support for Type1 and TrueType fonts
Flame Project 0.7.7
Flame Project is an Integrated Development Environment for producing Flash and Animated SVG files more>>
Imagine a free, easy to use GUI authoring environment that helps you create visually impressive and actually useful learning material. The short term goal for this project is to provide such an environment, and were well on the way to a first release for doing that.
Initially similar to Macromedia Captivate, but a big part is the support for Animated SVG. Flash has at least one serious design limitation (from my POV) making it nearly useless for comprehensive eLearning, and this appears to be addressed by the SVG spec.
The long term goal for this project is to provide both a complete authoring solution (like the Macromedia Flash IDE), and the components for server side communication, but thats a long way off. Lets finish the first bits first.
Mpdist 3.7.1
The mp distribution now consists of two programs, mp and mptool. more>>
The mp program will pretty print various files for you. It can be used in conjunction with a mail reading utility for producing a pretty print of your mail items. It can be used with a news reading tool to pretty print news articles.
Digests can also be printed, and this version can pretty print ordinary ASCII files as well. Support for personal organiser printing was added into the last released version. There are numerous configuration options to allow you to adjust the way mp generates its output.
The mptool program is a graphical frontend to mp. It makes it easy to configure the printout of your documents without having to remember lots of complicated command line arguments. It also supports drag and drop of text from other Gtk+ applications.
Autoconf 2.61
Autoconf is an extensible package of m4 macros that produce shell scripts to automatically configure software source code. more>>
These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of m4 macro calls.
Producing configuration scripts using Autoconf requires GNU m4. You must install GNU m4 (version 1.4 or later) before configuring Autoconf, so that Autoconfs configure script can find it. The configuration scripts produced by Autoconf are self-contained, so their users do not need to have Autoconf (or GNU m4).
ploticus 2.33
ploticus is a graphics, charting, and plot presentation package. more>>
ploticus is good for automated or just-in-time graph generation, handles date and time data nicely, and has basic statistical capabilities. It allows significant user control over colors, styles, options and details.
From the command line you can run ploticus using the pl command. The pl command can also be invoked via CGI. C developers can use libploticus. Other interfaces exist for packages such as Python.
Practical Query Analyzer 1.6
Practical Query Analyzer produces HTML reports on query statistics. more>>
PyScript 0.6.1
PyScript is a python module for producing high quality postscript graphics. more>>
Main features:
- All scripting is done in python, which is a high level, easy to learn, well-developed scripting language.
- All the objects can be translated, scaled, rotated, ... in fact any affine transformation.
- Plain text is automatically kerned.
- You can place arbitrary LaTeX expressions on your figures.
- You can create your own figure objects, and develop a library of figure primitives.
- Output is publication quality.

Vision Egg 1.2.1
High level interface between Python and OpenGL. It is also useful for anyone wishing to make use of the features of todays graphics cards. more>>
Vision Egg 1.2.1 brings users the convenience of a high level interface between Python and OpenGL. In addition to methods for automatic generation of traditional visual stimuli such as sinusoidal gratings and random dot patterns, it has a number of functions for moving numeric data, images, movies, text, and 3D objects to and from your video card and allowing use of some of its features like perspective distortion. Therefore, it is also useful for anyone wishing to make use of the features of today's graphics cards.
By harnessing the power of today's consumer graphics cards, producing visual stimuli of research quality now requires no specialized hardware beyond a relatively recent computer and graphics card.
Based on open standards, it runs on anything from cheap PCs to expensive special hardware for special needs. For example, running on some platforms, such as SGI workstations, the Vision Egg has a 10-bit luminance dynamic range (both pixel depth and DAC) and precise frame-by-frame control.
The Vision Egg is open source software (GNU LGPL). Therefore, you can be assured of a product that meets your needs but does not lock you in. Download it today and give it a try!
Major Features:
- Perform experiments using an inexpensive PC and standard consumer graphics card
- Perform experiments using a graphics workstation if special features needed
- Data acquisition and other realtime hardware control capabilities useful in electrophysiology and fMRI experiments, including gaze-contingent stimuli
- Dynamically generated stimuli can be changed in realtime via software or external hardware
- Produce traditional stimuli to replace legacy systems
- Produce stimuli not possible using other hardware
- Demo programs to get you started right away
- Run stimuli on your laptop - great for talks
- Free, open-source software
Sparklines for Java 1.2
Sparklines are intense, simple, wordlike graphics. more>>
Theres a PHP library for producing sparklines, and even a sparkline web service, but I wanted something I could use to generate sparklines in both Java and JSTL (and I thought it would be a fun project). (Its also worth checking out Whys minimalist python sparklines, which encode the image data directly in the HTML as a data: URI [this library allows you to encode the images as using either data: format or javascript: format (supported by IE) in JSTL])
JSTL examples
< %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" % >
< %@ taglib prefix="spark" uri="http://www.representqueens.com/taglibs/spark" % >
< c:set var="test" value="5, 35, 22, 19, 16, 10, 4, 33, 9, 12, 27, 36, 22" / >
< img src="< spark:bar name="test" color="red" / >" / >
will produce:
(I think the default size might be a little large).
The "name" attribute specifies the key to find the data (Uses JspContext.findAttribute). It expects the value to be either a List , a Number[], or a String of comma separated int values. Its the only manditory attribute.
The other attributes are width, height, spacing, color, highColor, lastColor, output. You can replace "bar" with "line" to get a linegraph (note: highColor and lastColor are currently not supported for line graphs).
The color attributes can either be a color name (a field name from java.awt.Color), or a HTML hex color (e.g. #ff0000 for red).
Enhancements:
- This release properly URL encodes parameters for server generated sparklines.
- This fixes an issue when using hex specified image colors.
- The tag parameter "background" has been added as a workaround for IE6 PNG transparency.
Bonk 0.6
Bonk is an audio compression program which can operate in either lossy or lossless mode. more>>
In lossy mode, it averages 14:1 compression while remaining almost perceptually lossless.
In lossless mode the original audio file can be recovered exactly. Lossless mode typically achieves around 2:1 compression.
Bonk compiles under Linux, FreeBSD, NetBSD and OpenBSD. (Note: I personally only have access to Linux machines. I cant test Bonk on other operating systems, just apply patches people send me. So if it isnt working on other systems, please email me!)
Advantages (as compared to MP3)
Simple algorithm, small code size
Compresses some types of audio better, especially audio with transients
Flexible: Bonk can compress music or speech at any sampling rate in either lossy or lossless mode
Disadvantages
Slow: Requires a 300MHz or higher machine for real-time playback
Non-standard: Probably better to use OGG and FLAC, as these are now becoming widely adopted
Enhancements:
- Work with gcc 3.1
PloneWorldKit 0.1
PloneWorldKit project is an out-of-the-box GIS for the Web. more>>
PloneWorldKit is a mapping solution for ZOPE Plone.
It is built around the worldkit engine and makes annotating fairly easy.
worldKit is an easy to use and flexible mapping application for the Web (a lightweight GIS). Its a SWF-based app, configured by XML, and with data fed by RSS.
Main features:
- Ubiquitous use in the Flash Player and with RSS feeds.
- Highly configurable look and feel. Can use images for marking annotations.
- Integrates with weblogging tools, and any software producing RSS.
- Annotations updated in the background, live.
- Displays photos within the map.
- Zoom & Pan. Integrates with Zoomify for high resolution images.
- Accepts input for Collaborative Cartography.
- Annotations are categorizable. Javascript interface for GIS layer functionality.
- Connects annotations for GPS track routes.
- ntegration of worldKit as a content type (Map)
- Complete TTW (Through The Web) configuration of worldKit attributes
- ZCatalog based XML and RSS generation (config.xml, rss.xml)
- 3 annotation content types (Node, Line, Polygon)
- Base classes for content type developers
- Categorization of annotations TTW
- Time Navigation out of the box using "modified" index
Math::String::Charset 1.27
Math::String::Charset is a simple charset for Math::String objects. more>>
SYNOPSIS
use Math::String::Charset;
$a = new Math::String::Charset; # default a-z
$b = new Math::String::Charset [a..z]; # same
$c = new Math::String::Charset
{ start => [a..z], sep => }; # with between chars
print $b->length(); # a-z => 26
# construct a charset from bigram table, and an initial set (containing
# valid start-characters)
# Note: After an a, either an b, c or a can follow, in this order
# After an d only an a can follow
$bi = new Math::String::Charset ( {
start => a..d,
bi => {
a => [ b, c, a ],
b => [ c, b ],
c => [ a, c ],
d => [ a, ],
q => [ ], # q will be automatically in end
}
end => [ a, b, ],
} );
print $bi->length(); # a,b => 2 (cross of end and start)
print scalar $bi->class(2); # count of combinations with 2 letters
# will be 3+2+2+1 => 8
$d = new Math::String::Charset ( { start => [a..z],
minlen => 2, maxlen => 4, } );
print $d->first(0),"n"; # undef, too short
print $d->first(1),"n"; # undef, to short
print $d->first(2),"n"; # aa
$d = new Math::String::Charset ( { start => [a..z] } );
print $d->first(0),"n"; #
print $d->first(1),"n"; # a
print $d->last(1),"n"; # z
print $d->first(2),"n"; # aa
This module lets you create an charset object, which is used to contruct Math::String objects. This object knows how to handle simple charsets as well as complex onex consisting of bi-grams (later tri and more).
In case of more complex charsets, a reference to a Math::String::Charset::Nested or Math::String::Charset::grouped will be returned.
The default charset is the set containing "abcdefghijklmnopqrstuvwxyz" (thus producing always lower case output).