Shake is a Haskell library for writing build systems - designed as a
replacement for make. To use Shake the user writes a Haskell program that
imports the Shake library, defines some build rules, and calls shake.
Thanks to do notation and infix operators, a simple Shake program is not
too dissimilar from a simple Makefile. However, as build systems get more
complex, Shake is able to take advantage of the excellent abstraction
facilities offered by Haskell and easily support much larger projects.
The Shake library provides all the standard features available in other
build systems, including automatic parallelism and minimal rebuilds. Shake
provides highly accurate dependency tracking, including seamless support
for generated files, and dependencies on system information (e.g. compiler
version).
Media::Type::Simple gives a simple functions for obtaining common file
extensions from media types, and from obtaining media types from file
extensions.
It is also relaxed with respect to having multiple media types associated with a
file extension, or multiple extensions associated with a media type, and it
includes media types for encodings such as gzip. It is defined this way in the
default data, but this does not meet your needs, then you can have it use a
system file (e.g. /etc/mime.types) or custom data.
By default, there is a functional interface, although you can also use an
object-oriented inteface. (Different objects will not share the same data.)
Unofficial Python API for retrieving data from Delicious.com.
This module provides the following features plus some more:
* retrieving a URL's full public bookmarking history including
* users who bookmarked the URL including tags used for such bookmarks
and the creation time of the bookmark (up to YYYY-MM-DD granularity)
* top tags (up to a maximum of 10) including tag count
* title as stored on Delicious.com
* total number of bookmarks/users for this URL at Delicious.com
* retrieving a user's full bookmark collection, including any private bookmarks
if you know the corresponding password
* retrieving a user's full public tagging vocabulary, i.e. tags and tag counts
* retrieving a user's network information (network members and network fans)
* HTTP proxy support
* updated to support Delicious.com "version 2" (mini-relaunch as of August 2008)
PyChecker is a python source code checking tool to help you find
common bugs. It is meant to find problems that are typically caught
by a compiler. Because of the dynamic nature of python, some warnings
may be incorrect; however, spurious warnings should be fairly infrequent.
PyChecker works in a combination of ways. First, it imports each
module. If there is an import error, the module cannot be processed.
The import provides some basic information about the module. For each
function, class, and method, the code within the function is checked
for possible problems.
Types of problems that can be found include:
* No doc strings in modules, classes, functions, and methods
* self not the first parameter to a method
* Wrong number of parameters passed to functions/methods
* No global found (e.g., using a module without importing it)
* Global not used (module or variable)
Net::IP::Match::Regexp allows you to check an IP address against one or
more IP ranges. It employs Perl's highly optimized regular expression
engine to do the hard work, so it is very fast. It is optimized for
speed by doing the match against a regexp which implicitly checks the
broadest IP ranges first. An advantage is that the regexp can be
computed and stored in advance (in source code, in a database table,
etc) and reused, saving much time if the IP ranges don't change too
often. The match can optionally report a value (e.g. a network name)
instead of just a boolean, which makes module useful for mapping IP
ranges to names or codes or anything else.
OpenConnect server (ocserv) is an SSL VPN server. Its purpose is
to be a secure, small, fast and configurable VPN server. It implements
the OpenConnect SSL VPN protocol, and has also (currently experimental)
compatibility with clients using the AnyConnect SSL VPN protocol.
The OpenConnect protocol provides a dual TCP/UDP VPN channel, and
uses the standard IETF security protocols to secure it. Both IPv4
and IPv6 are supported.
Ocserv's main features are security through provilege separation
and sandboxing, accounting, and resilience due to a combined use
of TCP and UDP. Authentication occurs in an isolated security
module process, and each user is assigned an unprivileged worker
process, and a networking (tun) device. That not only eases the
control of the resources of each user or group of users, but also
prevents data leak (e.g., heartbleed-style attacks), and privilege
escalation due to any bug on the VPN handling (worker) process. A
management interface allows for viewing and querying logged-in
users.
This module implements a scalable method of quickly propagating files
to a large number of servers in one or more locations via rsync or
scp.
This module and the included script, ccp, take a much more efficient
approach that is O(log n). Once the file(s) are been copied to a
remote server, that server will be promoted to be used as source
server for copying to remaining servers. Thus, the rate of transfer
increases exponentially rather than linearly.
Servers can be specified in groups (e.g. datacenter) to prevent
copying across groups. This maximizes the number of transfers done
over a local high-speed connection (LAN) while minimizing the number
of transfers over the WAN.
The number of multiple simultaneous transfers per source point is
configurable. The total number of simultaneously forked processes is
limited via Proc::Queue, and is currently hard coded to 32.
String::ToIdentifier::EN provides a utility method, "to_identifier" for
converting an arbitrary string into a readable representation using the ASCII
subset of \w for use as an identifier in a computer program. The intent is to
make unique identifier names from which the content of the original string can
be easily inferred by a human just by reading the identifier.
If you need the full set of \w including Unicode, see the subclass
String::ToIdentifier::EN::Unicode.
Currently, this process is one way only, and will likely remain this way.
The default is to create camelCase identifiers, or you may pass in a separator
char of your choice such as _.
Binary char groups will be separated by _ even in camelCase identifiers to make
them easier to read, e.g.: foo_2_0xFF_Bar.
fluxter is a newer incarnation of bbpager, which is like the name suggests a
pager tool for Blackbox.
The major changes to bbpager are:
- Accesses fluxbox configuration files, e.g. in ~/.fluxbox, rather than in
blackbox directories.
- Default styles come from the fluxbox configuration. Without
customization it will track the look of the current theme.
- The configuration files have been renamed to fluxter.bb (used in a
fluxbox environment) and fluxter.nobb (used in a non-fluxbox
environment). These files should go in fluxbox configuration
directories, such as ~/.fluxbox.
- The X resource entries in the configuration files use fluxter as a label,
rather than bbpager.
- Per-workspace wallpaper changing is supported by the addition of
per-workspace rootCommand configuration entries. For example:
fluxter.workspace0.rootCommand: Esetroot /usr/share/pixmaps/bg1.png
fluxter.workspace1.rootCommand: Esetroot /usr/share/pixmaps/bg2.png
fluxter.workspace2.rootCommand: Esetroot /usr/share/pixmaps/bg3.png
ftpfind - find directory&file on a ftp server
usage: /usr/local/bin/ftpfind URL [-proxy proxy_server] \
[-login login_name] [-password password] \
[-regexp pattern] [-type d|f|l] [-ls] [-print] \
[-delete|-get [directory] [-new] [-resume] \
|-put [directory] [-new] \
|-chmod 0???]