Comment by candiddevmike

Comment by candiddevmike 5 days ago

9 replies

I'd embrace plain text accounting more if it had a better schema. Ledger's is absolutely atrocious, and it drives my OCD nuts trying to use vim to "write" accounting entries.

I think my ideal PTA would be some kind of jsonnet-based system where I can create/call functions to generate journal entries.

FredPret 5 days ago

You never have to look at it. I have an Excel - one file a year - with a schema that makes sense to me, then a Python script to convert that to {year}.beancount. The script is triggered by fswatch.

So I get a browser frontend with fava and data input in Excel.

It’s non-trivial, but then so is any form of accounting.

wuming2 5 days ago

GNU recutils should become the standard backend. Plain text db which has a powerful albeit simple records format, proper ids, enforces constraints, removes need of silly type conventions better defined in fields with %type, built in encryption. Foreign keys. Auto generated fields. Regex.

No one in their right of mind will want to manually edit the data store holding critical accounting data. 99% of the times should be ETL with the odd visual check for inspiration.

  • euroderf 4 days ago

    A recutils clone in Go would be pleasantly hackable for whipping up some double-entry.

    • wuming2 3 days ago

      The wheel is there already. Call librec from Lua and speed up your plain text accounting with LuaJIT.

      • euroderf 18 hours ago

        Lua oh noes. I pick a language and stick with it for years. Currently Go.

XorNot 5 days ago

For a time I threw together a bunch of python scripts which did billing for me based on YAML files which struck a nice balance of readability vs programmability (since YAML turns into lines quite well and has less special character noise).

  • mrngm 2 days ago

    > less special character noise

    I hope you've at least once stumbled upon the existence of https://noyaml.com/ and/or, at the time, were familiar with the quirks regarding number interpretation.

BeetleB 4 days ago

I suggest use some other tool for data entry, and as long as you can figure out its internal format, write a script to output to ledger. That's what I do with KMyMoney.

speleding 4 days ago

ledger can validate that all account names are pre-defined, are formatted in a specific way with regard to decimal and thousands separator, their currency specified and a few more things. (None of these are enforced by default, but for any serious use of ledger you would want to set `--strict` in your .ledgerrc file)

What else would you want ledger to enforce? We actually have a few very specific (to us) rules we enforce, but we do that via a ruby script. That's the power of plain text accounting: you can just whip up a small script to do validation for you.