diffoscope will try to get to the bottom of what makes files or
directories different. It will recursively unpack archives of many kinds
and transform various binary formats into more human readable form to
compare them. It can compare two tarballs, ISO images, or PDF just as
easily.
It can be scripted through error codes, and a report can be produced
with the detected differences. The report can be text or HTML. When no
type of report has been selected, diffoscope defaults to write a text
report on the standard output.
diffoscope is developed as part of the 'reproducible builds' Debian
project. It is meant to be able to quickly understand why two builds
of the same package produce different outputs. diffoscope was previously
named debbindiff.
powerman is free Unix/Linux software that controls (remotely and in
parallel) switched power distribution units. It was designed for remote
power control of Linux systems in a data center or cluster environment, but
has been used in other environments such as embedded management appliances,
home automation, and high availability service management.
powerman can be extended to support new devices using an expect-like
scripting language. It communicates with devices natively using telnet,
raw socket, and serial protocols. It also can drive virtual power control
devices via a coprocess interface. The coprocess mechanism has been used
to extend powerman to communicate with devices using other protocols such
as SNMP, IPMI, Insteon, X-10, and VXI-11.
powerman can control equipment connected using any combination of the above
methods and provide unified naming for the equipment and parallel execution
of control actions.
QPxTool is the Linux way to get full control over your CD/DVD drives.
It is the Open Source Solution which intends to give you access to
all available Quality Checks (Q-Checks) on written and blank media,
that are available for your drive. This will help you to find the
right media and the optimized writing speed for your hardware, which
will increase the change for a long data lifetime.
These tests are actually supported:
* PIE / PIF Scan
* TA Scan
* Jitter / Beta Scan
* Transfer Rate Scan
* C1-, C2- and CU-Scan
* Blank Media Quality Check
* FE/TE Scan on blank media
* FE/TE Scan on written media
See webpage to get a list of the currently supported hardware.
Bomstrip is a very simple tool that removes BOM's (byte-order-marks)
from utf-8 files. Actually, it is a set of tools that all do the same
thing, but - for added entertainment value - in multiple programming
languages (python, c, java, brainfuck, ook!, perl, sed, postscript,
pascal, unlambda, limbo, haskell, ocaml, php, ruby). You want to always
have this tool within hand-reach, no matter where you are and which
compilers/interpreters you keep close to you.
Each tool reads from stdin and writes to stdout. It accepts no options
or arguments. It never writes into files directly. All files are public
domain. It exists for the purpose of noting how stupid BOM's in utf-8
files are.
Oh, in case you didn't know yet: utf-8 does not have byte-ordering
issues, so there is absolutely no need to have three bytes (the
utf-8-BOM) that do not say anything about the byte-order (since there
is nothing to say).
ITS Tool allows you to translate your XML documents with PO files, using rules
from the W3C Internationalization Tag Set (ITS) to determine what to translate
and how to separate it into PO file messages.
PO files are the standard translation format for GNU and other Unix-like
systems. They present translatable information as discrete messages, allowing
each message to be translated independently. In contrast to whole-page
translation, translating with a message-based format like PO means you can
easily track changes to the source document down to the paragraph. When new
strings are added or existing strings are modified, you only need to update
the corresponding messages.
ITS Tool is designed to make XML documents translatable through PO files by
applying standard ITS rules, as well as extension rules specific to ITS Tool.
ITS also provides an industry standard way for authors to override translation
information in their documents, such as whether a particular element should be
translated.
This package provides parsing and rendering functions for XML. It is
based on the datatypes found in the xml-types package. This package is
broken up into the following modules:
* Text.XML: DOM-based parsing and rendering. This is the most commonly
used module.
* Text.XML.Cursor: A wrapper around Text.XML which allows bidirectional
traversing of the DOM, similar to XPath.
* Text.XML.Unresolved: A slight modification to Text.XML which does not
require all entities to be resolved at parsing. The datatypes are
slightly more complicated here, and therefore this module is only
recommended when you need to deal directly with raw entities.
* Text.XML.Stream.Parse: Streaming parser, including some streaming
parser combinators.
* Text.XML.Stream.Render: Streaming renderer.
Libtre is an attempt to create a lightweight, robust, and efficient fully
POSIX compliant regexp matching library. There is still some work left, but
the results so far are promising.
At the core of Libtre is a new algorithm for regular expression matching with
submatch addressing. The algorithm uses linear worst-case time in the length
of the text being searched, and quadratic worst-case time in the length of the
used regular expression. In other words, the time complexity of the algorithm
is O(M2N), where M is the length of the regular expression and N is the length
of the text. The used space is also quadratic on the length of the regex, but
does not depend on the searched string. This quadratic behaviour occurs only
on pathological cases which are probably very rare in practice.
This is an implementation of Rabin and Karp's streaming hash, as described
in "Winnowing: Local Algorithms for Document Fingerprinting" by Schleimer,
Wilkerson, and Aiken. Following the suggestion of Schleimer, I am using
their second equation:
$H[ $c[2..$k + 1] ] = (( $H[ $c[1..$k] ] - $c[1] ** $k ) + $c[$k+1] ) * $k
The results of this hash encodes information about the next k values in
the stream (hense k-gram.) This means for any given stream of length n
integer values (or characters), you will get back n - k + 1 hash values.
For best results, you will want to create a code generator that filters
your data to remove all unnecessary information. For example, in a large
english document, you should probably remove all white space, as well as
removing all capitalization.
Used in its basic form, this module provides an interface for generating
basic HTML form elements much like HTML::StickyForms does. The main
difference is HTML::SuperForm returns HTML::SuperForm::Field objects
rather than plain HTML. This allows for more flexibilty when generating
forms for a complex application.
To get the most out of this module, use it as a base (Super) class for
your own form object which generates your own custom fields. If you
don't use it this way, I guess there's really nothing Super about it.
Example are shown later in the document.
The interface was designed with mod_perl and the Template Toolkit in
mind, but it works equally well in any cgi environment.
There's Pod::PXML and Pod::XML, so why do we need Pod::Xhtml? You need
an XSLT to transform XML into XHTML and many people don't have the
time or inclination to do this. But they want to make sure that the
pages they put on their web site are well-formed, they want those
pages to use stylesheets easily, and possibly they want to squirt the
XHTML through some kind of filter for more processing.
By generating well-formed XHTML straight away we allow anyone to just
use the output files as-is. For those who want to use XML tools or
transformations they can use the XHTML as a source, because it's a
well-formed XML document.