Encore is a set of utility classes written in Objective-C for GNUstep and
Mac OS X. The motivation of writing these classes was driven by
implementing the projects BDB and FT. The classes may be useful for other
projects as well.
The classes include
- logging: A flexible logging mechanism similar to log4j. Supports
logging levels, logging contexts, different output channels per context,
configuration per xml, ...
- XML-based reflection: a configuration mechanism which is based on XML and
uses inversion of control (see tests for an example)
- a simple testing framework
- StringUtils class
- an iterator interface
Libconfig is a simple library for manipulating structured configuration
files. The file format is more compact and more readable than XML. And
unlike XML, it is type-aware, so it is not necessary to do string
parsing in application code.
Libconfig is very compact -- just 25K for the stripped C shared library
(one-fifth the size of the expat XML parser library) and 39K for the
stripped C++ shared library. This makes it well-suited for
memory-constrained systems like handheld devices.
The library includes bindings for both the C and C++ languages. It works
on POSIX-compliant UNIX systems (GNU/Linux, Mac OS X, Solaris, FreeBSD)
and Windows (2000, XP and later).
This module tries to make it easy to build Perl extensions that use
functions and typemaps provided by other perl extensions. This means
that a perl extension is treated like a shared library that provides
also a C and an XS interface besides the perl one. This works as long
as the base extension is loaded with the RTLD_GLOBAL flag (usually done
with a
sub dl_load_flags {0x01}
in the main .pm file) if you need to use functions defined in the
module.
appdirs is small Python module for determining appropriate platform-specific
dirs, e.g. a "user data dir". Those are typically platform-specific, for
instance, if running on Mac OS X, you should use:
~/Library/Application Support/<AppName>
On Linux (and other Unices) the dir, according to the XDG spec, is:
~/.local/share/<AppName>
appdirs will help the application to choose an appropriate:
- user data dir (user_data_dir)
- user config dir (user_config_dir)
- user cache dir (user_cache_dir)
- site data dir (site_data_dir)
- site config dir (site_config_dir)
- user log dir (user_log_dir)
PyInstaller is a program that converts (packages) Python programs into stand-
alone executables, under Windows, Mac OS X, and Unix-like operating systems.
Its main advantages over similar tools are that PyInstaller works with any
version of Python since 2.4, it builds smaller executables thanks to
transparent compression, it is fully multi-platform, and uses the OS support
to load the dynamic libraries, thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with third-party packages
out-of-the-box. This means that, with PyInstaller, all the required tricks
to make external packages work are already integrated within PyInstaller
itself so that there is no user intervention required.
Shell Flags (shFlags) is a library written to greatly simplify the
handling of command-line flags in Bourne based Unix shell scripts (bash,
dash, ksh, sh, zsh) on many Unix OSes (Linux, Solaris, Mac OS X, etc.).
Most shell scripts use getopt for flags processing, but the different
versions of getopt on various OSes make writing portable shell scripts
difficult. shFlags instead provides an API that doesn't change across
shell and OS versions so the script writer can be confident that the
script will work.
shFlags is a port of the google-gflags C++/Python library.
Valgrind is a system for debugging and profiling un*x programs. With the tools
that come with Valgrind, you can automatically detect many memory management
and threading bugs, avoiding hours of frustrating bug-hunting, making your
programs more stable. You can also perform detailed profiling, to speed up and
reduce memory use of your programs.
The Valgrind distribution includes five tools: two memory error detectors, a
thread error detector, a cache profiler and a heap profiler. Several other
tools have been built with Valgrind.
Valgrind was initially ported to FreeBSD by
Doug Rabson (http://www.rabson.org/).
Valgrind is a system for debugging and profiling un*x programs. With the tools
that come with Valgrind, you can automatically detect many memory management
and threading bugs, avoiding hours of frustrating bug-hunting, making your
programs more stable. You can also perform detailed profiling, to speed up and
reduce memory use of your programs.
The Valgrind distribution includes five tools: two memory error detectors, a
thread error detector, a cache profiler and a heap profiler. Several other
tools have been built with Valgrind.
Valgrind was initially ported to FreeBSD by
Doug Rabson (http://www.rabson.org/).
ImPress is the WYSIWYG Publishing and Presentation for UNIX.
It can also be used within a WWW browser (e.g. Netscape) that is
capable of running the Tcl Plugin. The Tcl Plugin can be obtained from
the web site at: http://dev.scriptics.com/
ImPress can be significantly enhanced through use of several modified utilities:
o Pstoedit - Allows you to translate EPS files to Tk for ImPress use.
o Font3D - Translates TrueType font strings to vectorized Tk.
o Type1inst - Aids in maintaining Ghostscript Fontmaps and X11 fonts.dir files.
The TeXworks project is an effort to build a simple TeX front-end program
(working environment) that will be available for all today's major desktop
operating systems. It is deliberately modeled after Dick Koch's award-
winning TeXShop for Mac OS X.
TeXworks includes an integrated PDF viewer, based on the Poppler library,
and supports source/preview synchronization. This capability is based on
the "SyncTeX" feature developed by Jerome Laurens, and supported by both
the pdfTeX and XeTeX programs in TeX Live, and other current distributions.