Selected software projects by RW Penney

cryptmount

cryptmount is a utility for the GNU/Linux operating system which allows on-demand user-mode mounting of encrypted filing systems. It also assists the system administrator in creating and managing encrypted filesystems based on the kernel's dm-crypt device-mapper target.

cryptmount automatically performs the various stages of configuring any supporting loopback and devmapper devices needed to access an encrypted filesystem before actually mounting it (after an optional fsck), but without requiring the user to be explicitly granted root privileges through either knowing the root password or through tools such as sudo. By allowing ordinary users to mount encrypted filing systems only when needed, cryptmount allows filesystems that are only used intermittently to be left in a more secure state than if they have to be made available by the system administrator whenever the system is booted.

Recent changes include:

  • Porting LUKS functionality to use libcryptsetup (Release 5.0)
  • Support for TRIM/allow_discards option for solid-state disks (Release 4.5)
  • Support for systemd (Release 4.4)
  • Use of environmental variables within configuration files (Release 4.3)
  • Protection against accidental formatting of encrypted swap partitions (Release 4.2)
  • Support for user-defined options to 'fsck' when checking filesystems (Release 4.1)
  • Support for encrypted filesystems without separate keyfiles or partition headers (Release 4.0)
  • Support for mounting LUKS partitions (Release 3.1)
Release Date Sources Debian packages Debian pu
cryptmount-6.2.0 07Jan23 .tar.gz
.tar.gz.sig
.orig.tar.gz
.orig.tar.gz.asc
.changes (-2)
.dsc (-2)
.debian.tar.xz (-2)
.deb (-2)
.orig.tar.gz
.orig.tar.gz.asc
.changes (-1+deb12u1)
.dsc (-1+deb12u1)
.debian.tar.xz (-1+deb12u1)
.deb (-1+deb12u1)
cryptmount-6.1.1 20Dec22 .tar.gz
.tar.gz.sig
cryptmount-6.1.0 08Oct22 .tar.gz
.tar.gz.sig
.orig.tar.gz
.orig.tar.gz.asc
.changes
.dsc
.debian.tar.xz
.deb (amd64)
cryptmount-5.3.3 01Jan21 .tar.gz
.tar.gz.sig
.orig.tar.gz
.orig.tar.gz.asc
.changes
.dsc
.debian.tar.xz
.deb (amd64)
.orig.tar.gz
.orig.tar.gz.asc
.changes (-1+deb11u1)
.dsc (-1+deb11u1)
.debian.tar.xz (-1+deb11u1)
.deb (amd64) (-1+deb11u1)

cryptmount is also listed on GitHub, SourceForge and is available as a Debian package or Ubuntu package.

cryptmount command-line screenshot

Simple Python Fixed-Point Module

SPFPM is a Python module for basic mathematical operations on (binary) fixed-point numbers. It is implemented in pure Python, based on Python's arbitrary precision long-integer datatype, and offers facilities for basic arithmetic, square-roots, simple trigonometric functions, printing etc. The resolution of the fractional part of the numbers can be adjusted, allowing essentially arbitrary precision arithmetic.
=== 6bits ===
sqrt(2)~ 1.42
sqrt(2)^2 ~ 2.01
exp(1) =  2.73

=== 24bits ===
sqrt(2)~ 1.41421359
sqrt(2)^2 ~ 2.00000011
exp(1) =  2.71828186

=== 96bits ===
sqrt(2)~ 1.41421356237309504880168872421075
sqrt(2)^2 ~ 2
exp(1) =  2.71828182845904523536028747133230

Recent changes include:

  • Methods for printing binary/octal/hexadecimal representations (Release 1.4)
  • Improved access to constants such as π, √2, exp(1), log(2) (Release 1.1)
  • Porting to Python-3.0 (Release 1.0)
  • Support for restricting range of integer part (Release 0.6)
Release Date Sources
spfpm-1.6 04Jun22 .tar.gz
.tar.gz.sig
spfpm-1.5 21Mar20 .tar.gz
.tar.gz.sig
spfpm-1.4 16Apr18 .tar.gz
.tar.gz.sig
spfpm-1.3 24Feb18 .tar.gz
.tar.gz.sig

spfpm is also listed on GitHub, on the Cheese Shop and on SourceForge.

spfpm screenshot

pmcyg

pmcyg is a tool for creating customized sets of Cygwin(TM) packages, e.g. for building self-contained installers on CDROM, DVDs or USB keys. It takes a user-supplied list of Cygwin package names, and downloads only those packages and their dependencies from a Cygwin mirror site, to create a partial mirror of the Cygwin release. This avoids having to download over 20GB of the official Cygwin release, and allows minimalistic installations that can be as small as 40MB.
Release Date Sources
pmcyg-3.2 29May23 .tgz
.tgz.sig
pmcyg-3.1 09Oct21 .tgz
.tgz.sig
pmcyg-3.0 28Sep20 .tgz
.tgz.sig

pmcyg is also listed on GitHub, and on the Cheese Shop.

pmcyg Tkinter GUI

UTC Engineering Clock

This is a simple Rust application for showing a real-time display of the current time, taking particular care to synchronize on-screen updates with the start of each UTC second and making statistical estimates of the offset of the local system clock from NTP time references. While some desktop clock applications may provide a display update every second, this could occur at an arbitrary time within each second, thereby limiting the precision when trying to visually confirm the accurate time on a wristwatch, for example. eng-clock predictively estimates the time at which each 4Hz screen-update should occur, and uses a Bayesian estimation process to measure both the mean NTP clock-offset and its margin of error.

eng-clock is available via GitHub.

Statistical UTC time-display with estimated offset

Vim cheat-sheet

This is a self-contained HTML document which provides an aide-memoire for commonly used Vim editor commands. It provides examples of basic motion, editing, window-splitting and macro operations, within a flexible HTML layout that can be used directly within a browser or printed to suit different page geometries. Screenshot of Vim cheat-sheet

attoXML

attoXML is a set of simple C++ classes for generating XML documents that can be easily converted into neatly formatted output files. It is intended for applications where one needs a self-contained mechanism for programmatically generating a well-formed tree of XML elements for output into a text-file, but where the same application does not need to ingest or parse similar files. attoXML provides flexible facilities for adding attributes, textual elements etc., but avoids the complexities of full namespace support, text normalization etc.

An example XML document produced via attoXML is available here.

Release Date Sources
attoxml-0.2 05Jun12 .tar.gz
attoxml-0.1 26May12 .tar.gz
XML document from attoXML

Last updated 20th Mar 2024
© Copyright 2006-2024, RW Penney