* Haskellerz talk 2021-04-29

** blurb
Inside hledger: an architectural tour and how-to

hledger is a suite of CLI, TUI and WUI tools, file formats, and
documentation for doing accounting with plain text. It is something
that's not yet common: an end-user application written in Haskell,
that aims to be easy to install, robust and pleasing to use, on all
major platforms, including by non-techies.

I have been building and growing hledger and the hledger project for
about 15 years. In this talk I will, after a quick intro to plain text
accounting and hledger, give a tour of hledger's architecture,
codebase, significant evolutions, and some design principles. Then
I'll give some practical tips on how to: add your own custom hledger
commands; use hledger from your own app; troubleshoot hledger
behaviour; investigate bugs; and create effective pull requests. This
will hopefully go smoothly, and the Q&A we can go deeper on whatever
you like.

Simon: https://joyful.com
hledger: https://hledger.org
Plain Text Accounting: https://plaintextaccounting.org

** preliminary outline
*** Inside hledger: an architectural tour and how-to
**** quick intro to accounting, plain text accounting, hledger
10m
**** project goals
**** a look at the essential functionality in its earliest/simplest form
**** a fast run through the evolution since then
**** a tour of the codebase and project today (2021Q2)
**** design principles
25m

**** how to script hledger
**** how to integrate hledger in your app
***** run cli, capture csv/json
***** run hledger-web, use http-json api
***** link with hledger-lib and/or other hledger packages, call public functions
**** how to investigate a hledger bug
***** basic troubleshooting - docs, comparison, minimisation, reproduction, support
***** code debugging
**** how to submit a pull request
25m

**** Q & A
30m

