[[!meta title="Ledger-mode - Quiliro Ordóñez"]]
[[!meta copyright="Copyright © 2019 Quiliro Ordóñez"]]
[[!template id=vid
src="https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-12-ledger-mode--quiliro.webm"
type="video/webm"]]
### Download
- [Video](https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-12-ledger-mode--quiliro.webm)
### Notes
```org
* What is plain text accounting?
'Doing all accounting on plain text files'
- Flexibility :: Easier to adapt to situations
- Security :: YOU control of your data
- Traceability :: Control your processes
* What is ledger-cli
Ledger is a powerful, double-entry plain-text accounting system that
is accessed from the UNIX command-line.
- Flexibility :: Multiple currencies (even imaginary), infinite
account recursion
- Auditability :: No secrets
- Stability :: Small footprint, yet powerful
- Performance :: Lightweight
- Reports, reports and reports :: Ask for anything
* What is ledger-mode
Performance at your fingertips.
- Transactions now easy
- all-terrain vehicle
- Quick Workflow
* ledger-mode examples
** New transaction
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c> <RET> <BKSP> 0 <RET>
4. <C-c C-a> 01 <RET>
5. Mike's Store
6. <RET> <TAB>, Expenses:Food
7. (<SPC>*2) $25
8. <RET>, Assets:CheckingAccount
9. M-q
** Copying transactions
1) Open Emacs
2) <C-x C-f> books.ledger
3) <C-c C-a> 02 <RET>
4) MegaPaper
5) <RET> <TAB>, Expenses:Supplies
6) (<SPC>*2) $12
7) <RET>, Assets:CheckingAccount
8) M-q
9) C-c C-k
10) 03 <RET>
11) (<SUPR>*2) 34
** Account balance
1. Open Emacs
2. <C-x C-f books.ledger
3. bucket Assets:CreditCard
4. <C-c C-a> 04 <RET>
5. Novo-PC
6. <RET> <TAB> Assets:Technology
7. (<SPC>*2) $23
8. M-q
9. C-c C-k
10. 05 <RET>
11. (<SUPR>*2) 50
12. M-q
13. <M-b M-b>
14. <C-c C-p> <RET>
** Transactions' report
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 06 <RET>
4. MegaPaper
5. <RET> <TAB>, Expenses:Supplies
6. (<SPC>*2) $15
7. <RET>, Assets:CheckingAccount
8. M-q
9. <C-c C-o C-r> y reg
10. <RET>
11. q
** Account prediction (done before)
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 07 <RET>
4. MegaPaper
5. <RET> <TAB>, Expenses:Supplies
6. (<SPC>*2) $18
7. <RET>, Assets:CheckingAccount
8. M-q
** Accounts payable
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 08 <RET>
4. Mike's Store
5. <RET> <TAB>, Expenses:Food
6. (<SPC>*2) $47
7. <RET>, Liabilities:AccountsPayable
8. C-c C-a 09 <RET> me <TAB>
9. <RET> <TAB> l <TAB> a <TAB>
10. (<SPC>*2) $100
11. <RET> a <TAB> c <TAB>
12. M-q
13. C-p
14. <C-c C-p> <RET>
** Accounts receivable
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 10 <RET>
4. Ministry of Culture
5. <RET> <TAB>, a <TAB> :AccountsReceivable:NatGov
6. (<SPC>*2) $4000
7. <RET>, Income:Sales
8. M-q
9. C-p
10. <C-c C-p> <RET>
** Payee list (done before)
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 11 <RET>
4. MegaPaper
5. <RET> <TAB>, e <TAB> s <TAB>
6. (<SPC>*2) $56 <RET>
7. Assets:CheckingAccount
8. M-q
9. C-p M-b
10. <C-c C-o C-r> payee (<RET>*2)
** Net worth
1. Open Emacs
2. <C-x C-f> books.ledger
3. <C-c C-a> 12 <RET>
4. m <TAB>
5. <RET> <TAB>, l <TAB> <TAB>
6. (<SPC>*2) $55
7. <RET>, a <TAB> c <TAB>
8. M-q
9. C-c C-p Income|Liabilities
* Example ledger-cli file
; -*- ledger -*-
2019/11/01 Mike's Store
Expenses:Food $25
Assets:CheckingAccount
2019/11/02 MegaPaper
Expenses:Supplies $12
Assets:CheckingAccount
2019/11/03 MegaPaper
Expenses:Supplies $34
Assets:CheckingAccount
bucket Assets:CreditCard
2019/11/04 Novo PC
Assets:Technology $23
2019/11/05 Novo PC
Assets:Technology $50
2019/11/06 MegaPaper
Expenses:Supplies $15
Assets:CheckingAccount
2019/11/07 MegaPaper
Expenses:Supplies $18
Assets:CheckingAccount
2019/11/08 Mike's Store
Expenses:Food $47
Liabilities:AccountsPayable
2019/11/09 MegaPaper
Liabilities:AccountsPayable $100
Assets:CheckingAccount
2019/11/10 Ministry of Culture
Assets:AccountsReceivable:NatGov $4000
Income:Sales
2019/11/11 MegaPaper
Expenses:Supplies $56
Assets:CheckingAccount
2019/11/12 MegaPaper
Liabilities:AccountsPayable $55
Assets:CheckingAccount
;;; books.ledger ends here
```
### Transcript
```org
Hello. My name is Quiliro Ordóñez. I am from Quito, Ecuador [, South
America, America] and would like to present [to you]: How you can save
money by knowing what you have.
This presentation is licensed under the terms of the Creative Commons
Attribution-ShareAlike 4.0 International Public License.
[Saving money can be done by using plain text accounting to know
profoundly what you own.] What is plain-text accounting? Plain-text
accounting is doing all your accounting on plain-text files. Why do
it on plain-text files? For three reasons: for flexibility, for
security, and for traceability.
Flexibility comes because it is easier to adapt to situations. If you
have different software that needs different input data, then
plain-text is what you need.
Security: You control all your data because plain-text files are very
readable. They don't need a certain software to read them.
Tracebability because you can control your processes. If you have
plain-text accounting, you can practicaly do anything you want.
Ledger Command Line Interface. What is it? Ledger is a powerful,
double-entry, plain-text accounting system that is accessed from the
Unix command-line.
It is [very] flexible because you can have multiple currencies. You
can even have imaginary currencies. And you can have infinite account
recursion, among many other things.
It is auditable. Since it is libre software (free as in freedom), you
can read the code; you can modify the code; you can use it as you
want. You can use it for business. You can sell it. You can give it
away. You can distribute it [exact copies]. You an [also]
redistribute it [modified versions]. You can do anything you want to
[and with] it.
It is stable. It has a small footprint; yet it is very powerful. The
performance is great because it is so lightweight.
The most important characteristic of most plain-text accounting
software (among them Ledger Command Line Interface) is that you can
have all the reports you want. You create the reports you need. If a
report is not predefined, you can define it yourself [on the fly].
And you can change the software also. So it is very, very useful.
There is a tool for Emacs that is called ledger-mode. This tool lets
you attain more performance. Emacs can be used for editing files. If
you want to edit [them] quickly, then you use Emacs. ledger-mode is
no exception [to this rule]. It is used as a template system.
Transactions are entered very easily. It is an all terrain vehicle.
There is a very workflow. If you are watching this presentation, you
can see you can have a lot of reports, you can add transactions
easily, you can copy them. You have a lot of functionality in this
software.
Please use free software. Your freedom is very important. If you
have to pay for it, please do it. When one person uses free software,
[that] frees other people too. So it is very important for society
that people use free software.
I would like to thank Richard Stallman for starting the free software
movement and [continuously to the day] making it known to users that
software freedom is very important for all the other freedoms such as:
freedom of speech, freedom of reunion. All [human] rights in modern
society must be exerted by way of technology. Test it. You can see
what it does. If you think it is difficult to use the keyboard, then
you can add the commands as icons [or as menu items] and then just
click on them. I think that takes too long. But if you are a newbie,
you can learn to add the icons [and menu items] and use them until you
learn the keyboard way to do it. Go ahead and welcome to our Free
[GNU] World. I would be very glad to help out, if you need me.
Bye! :-)
quiliro@fsfla.org
quiliro on Freenode IRC.
(+593)876 31031
```