Skip to content

Instantly share code, notes, and snippets.


Simon Michael simonmichael

View GitHub Profile
simonmichael / 10000x10000x10.journal
Created Jul 1, 2020
10,000-transaction journal file
View 10000x10000x10.journal
This file has been truncated, but you can view the full file.
2000-01-01 transaction 1
1 1 A
1:2 -1 A
2000-01-02 transaction 2
1:2:3 2 A
1:2:3:4 -2 A
2000-01-03 transaction 3
simonmichael /
Last active Jan 28, 2020
draft of new close doc

close, equity
Adds a "closing balances" transaction to the main journal file, that brings selected account balances to zero. Also (by default), adds the inverse "opening balances" transaction to a new journal file (creating it if necessary), restoring those account balances as they were in the old journal.

This can be used to bring asset/liability balances forward into a new journal file, or to close out revenues/expenses to retained earnings at the end of an accounting period. More on this below.

simonmichael / Makefile
Last active Mar 26, 2020
cron job to autocommit journal & related files
View Makefile
# cron
# install ./crontab as the active crontab
@crontab ./crontab
# overwrite ./crontab with the active crontab
@crontab -l >./crontab
simonmichael /
Last active Nov 8, 2019
bash scripts for starting hledger(-ui) in various ways
# short aliases for hledger commands
alias h='hledger'
alias acc='hledger accounts'
alias act='hledger activity'
alias add='hledger add'
alias bal='hledger balance'
alias close='hledger close'
alias iadd='hledger-iadd --date-format %Y/%m/%d'
alias print='hledger print'
alias reg='hledger register'
simonmichael /
Last active Oct 23, 2019
Build times of hledger dependencies on a slow machine

Build times in minutes of hledger's dependencies, running cabal and ghc 8.4.4 with a single Cortex-A53 CPU and 4G RAM, emulated on some faster machine.

From xiroux on #hledger:

sm: If you wanna take a look at the times, I just listed the files in .cabal-sandbox/lib/ with their last modification time and computed how much time passed between one file and another. The data is here:

simonmichael / hledger-print-location.hs
Last active Oct 6, 2019
hledger script, prototyping print --location
View hledger-print-location.hs
#!/usr/bin/env stack
{- stack runghc --verbosity info
--package hledger-lib
--package hledger
--package here
--package text
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
simonmichael / a.bash
Last active Dec 4, 2019
scripts for finding available versions in nixpkgs
View a.bash
# Some nixpkgs query scripts inspired by #nixos chat.
# Goal: find the HASH that will let an install command like
# nix-env -i -f -A hledger hledger-web hledger-ui
# install the latest available build of the packages, on all platforms of interest.
# These scripts don't seem to quite do that but they help.
NIXARCHS="darwin linux"
HLEDGERPKGS="hledger hledger-ui hledger-web"
# show help for the following commands
This file has been truncated, but you can view the full file.
Fri Jul 26 00:40 2019 Time and Allocation Profiling Report (Final)
hledger +RTS -P -RTS bal -V -f examples/1000x1000x10.journal
total time = 1.35 secs (1347 ticks @ 1000 us, 1 processor)
total alloc = 1,482,942,296 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc ticks bytes
simonmichael / a.txt
Created May 18, 2019
nix show-config
View a.txt
11:41:36 ~$ nix show-config
allow-import-from-derivation = true
allow-unsafe-native-code-during-evaluation = false
allowed-impure-host-deps = /System/Library /bin/sh /dev /usr/lib
allowed-uris =
allowed-users = *
auto-optimise-store = false
build-hook = /nix/store/1jz25hcma179wbpi56blgajw47n5kgqd-nix-2.2.1/libexec/nix/build-remote
build-poll-interval = 5
build-users-group =
simonmichael / pricing.ledger
Created May 14, 2019
Testing ledger cost/price syntax, lots, revaluation, capital gains
View pricing.ledger
; Test ledger cost/price syntax, lots, revaluation, capital gains
P 2019-01-01 ETC 11 EUR
P 2019-02-01 ETC 12 EUR
; Fluctuating cost/price
; @, @@
; { }, {{ }}
; "functionally.. no difference"
You can’t perform that action at this time.