summaryrefslogtreecommitdiffstats
path: root/2019/talks/12.md
blob: e7f2b7e5ebe7d66c91ee3c889956f66b3fda7e99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
[[!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
```