softwares

I write software for a living, this is my repository of personal works.


xpm

x package manager

A sh script to provide a generic interface to whatever package manager your system uses.

The goal of this project is to avoid the requirement for doing the mental check required when interfacing with your systems package manager, useful if you hop between systems frequently.

install

install /softwares/xpm/xpm.sh [INSTALL DIR]/xpm

INSTALL DIR can be any directory in your $PATH...

read 'xpm'

catrm

A binutil that prompts the option to cat a file to stdout before removing it.

You could just create an alias/sh script for this but I felt like writing some C.

options

-ni = none-interactive mode, skip prompt - just cat & rm

  • gearsix

read 'catrm'

gearsix.net

This website is mostly stuff I'm interested in and work I've produced that I'd like to share.
There are a few subdomains as well (like my source code repository).

There's not much to say, since it's all available to see here. If you're curious how I built it, see mwim - this is the tool I built to build the website, you can see the source for the site here

To see upd...

read 'gearsix.net'

goldmark-mmd


Problem: In some parsers this will be rendered. Solution: mmd

mmd

Fork of the goldmark-meta extension for goldmark, both by yuin.

This extension provides parsing of metadata in markdown using a different syntax than most to avoid the metadata being improperly parsed by any markdown renderer that ...

read 'goldmark-mmd'

idx

idx.h is a small C library that provides a standard interface to the (non-standard) 64-bit system-alternatives of the standard library file indexing functions: fseek and ftell. These alternatives are required if you want to index a file that's potentially larger than 2GB (32-bits).

Background

This library exists because the standard library functions fseek and ftell are limited to using ...

read 'idx'

libdati

data and template interface

dati provides a unified interface for parsing data and templates. Ideally it will support all data and template languages, if it doesn't support one you want submit a PR or contact the developer. I've tried to make it easy to add support for new languages (provided a library to do the hard-work already exists).

It can be used as a Golang library or an executable tool, although it was built as a library first...

read 'libdati'

dati

dati [OPTIONS]

A tool for parsing data files, template files and executing them against eachother.

DATA

Data is a file written in any data language (e.g. JSON or YAML), a list of supported languages can be seen in the README for the dati library. These files provide key=value data.

dati generates a single data structure of all data contained within parsed data files. This super-structure is passed to each "root" temp...

read 'dati'

scripts

overview

A collection of personal scripts I use.

I use most of these scripts for convenience and to save on typing.

More recently I've been making an effort to learn PowerShell as I tend to use windows a fair bit too, so there are a few one-off scripts used for that too.

  • nix/ - Scripts for POSIX (Unix, MacOS, Linux, etc) machines. Mostly written in sh and bash.
  • win/ - Scripts...

read 'scripts'

tralloc

An C libray for tracking the size of heap-allocated memory blocks.

This is more of a proof-of-concept than anything and I wouldn't recommend using it in production. There's an accompanying article here: Tracking Allocations in C

Overview

This library provides several functions that act as wrappers around the stdlib memory allocation functions to provide information on the number of heap...

read 'tralloc'