1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from December
2012</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"12.rss" type=
"application/rss+xml" />
15 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from December
2012.
</h3>
26 <a href=
"http://people.skolelinux.org/pere/blog/Ledger___double_entry_accounting_using_text_based_storage_format.html">Ledger - double-entry accounting using text based storage format
</a>
32 <p>A few days ago I came across
33 <a href=
"http://joeyh.name/blog/entry/hledger/">a blog post from Joey
34 Hess
</a> describing
<a href=
"http://ledger-cli.org/">ledger
</a> and
35 hledger, a text based system for double-entry accounting. I found it
36 interesting, as I am involved with several organizations where
37 accounting is an issue, and I have not really become too friendly with
38 the different web based systems we use. I find it hard to find what I
39 look for in the menus and even harder try to get sensible data out of
40 the systems. Ledger seem different. The accounting data is kept in
41 text files that can be stored in a version control system, and there
43 are at least
<a href=
"https://github.com/ledger/ledger/wiki/Ports">five
44 different implementations
</a> able to read the format. An example
45 entry look like this, and is simple enough that it will be trivial to
46 generate entries based on CVS files fetched from the bank:
</p>
54 <p>The concept seemed interesting enough for me to check it out and
55 look for others using it. I found blog posts from
56 <a href=
"http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine
58 <a href=
"http://bugsplat.info/2010-05-23-keeping-finances-with-ledger.html">Pete
60 <a href=
"http://blog.andrewcantino.com/blog/2010/11/06/command-line-accounting-with-ledger-and-reckon/">Andrew
62 <a href=
"http://blog.iphoting.com/blog/2012/11/29/command-line-double-entry-accounting/">Ronald
63 Ip
</a> describing how they use it, as well as a post from
64 <a href=
"https://groups.google.com/forum/?fromgroups=#!topic/ledger-cli/r0oWjwbQ9Bo">Bradley
65 M. Kuhn
</a> at the Software Freedom Conservancy. All seemed like good
66 recommendations fitting my need.
</p>
68 <p>The
<a href=
"http://packages.qa.debian.org/l/ledger.html">ledger
</a>
69 package is available in Debian Squeeze, while the
70 <a href=
"http://packages.qa.debian.org/h/haskell-hledger.html">hledger
</a>
71 package only is available in Debian Sid. As I use Squeeze, ledger
72 seemed the best choice to get started.
</p>
74 <p>To get some real data to test on, I wrote a
75 <a href=
"http://www.nuug.no/tools/lodo2ledger">web scraper
</a> for
76 <a href=
"http://www.lodo.no/">LODO
</a>, the accounting system used by
77 the
<a href=
"http://www.nuug.no/">NUUG
</a> association, and started to
78 play with the data set. I'm not really deeply into accounting, but I
79 am able to get a simple balance and accounting status for example
80 using the "
<tt>ledger balance
</tt>" command. But I will have to
81 gather more experience before I know if the ledger way is a good fit
82 for the organisations I am involved in.</p>
88 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu
">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug
">nuug</a>.
93 <div class="padding
"></div>
97 <a href="http://people.skolelinux.org/pere/blog/
61_kommuner_lenker_n__til_FiksGataMi_fra_sine_nettsider.html
">61 kommuner lenker nå til FiksGataMi fra sine nettsider</a>
103 <p>For noen dager siden omfavnet nok en kommune NUUGs
104 <a href="http://www.fiksgatami.no/
">FiksGataMi</a>. Med 61 kommuner
105 som lenker til FiksGataMi fra sine hjemmesider er «markedsandelen» 14%
106 (av 429 kommuner). Siden
107 <a href="http://people.skolelinux.org/pere/blog/
59_kommuner_omfavner_n__FiksGataMi.html
">siste
108 oppdatering i november</a> har kommunene Re og Vågsøy kommet til og
109 slår følge med kommunene Askim, Askøy, Audnedal, Aure, Balestrand,
110 Bærum, Eide, Farsund, Flekkefjord, Folldal, Gran, Grue, Hadsel,
111 Halden, Halsa, Hamar, Hobøl, Holtålen, Hægebostad, Høyanger,
112 Kongsberg, Kristiansund, Kvinesdal, Kviteseid, Levanger, Lindesnes,
113 Luster, Lyngdal, Løten, Mandal, Marnardal, Moss, Namsos, Nissedal,
114 Nordreisa, Randaberg, Rindal, Sel, Sirdal, Skiptvet, Sortland,
115 Spydeberg, Stange, Stjørdal, Stord, Søgne, Sør-Odal, Tolga, Trysil,
116 Tynset, Tysvær, Ullensvang Herad, Utsira, Vennesla, Verdal, Vågan,
117 Vågå, Våler og Åseral. Oppdatert liste er tilgjengelig fra
118 <a href="http://wiki.nuug.no/grupper/fiksgatami/positivemottakere
">NUUGs
119 wiki</a>. Kartet er dog ikke oppdatert med de siste kommunene.</p>
121 <p>Kanskje du bør høre med din kommune om de vil bli mer aktive
122 brukere av FiksGataMi? Se
123 <a href="http://people.skolelinux.org/pere/blog/
40_kommuner_lenker_n__til_FiksGataMi_fra_sine_nettsider___gj_r_din_.html
">en
124 tidligere bloggpost</a> med tips om hvordan det kan gjøres.</p>
126 <p>I snitt rapporteres det nå via FiksGataMi ca. 60 meldinger fra
127 innbyggerne i uka om feil på offentlig infrastruktur.</p>
133 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami
">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk
">norsk</a>.
138 <div class="padding
"></div>
142 <a href="http://people.skolelinux.org/pere/blog/Scripting_the_Cerebrum_bofhd_user_administration_system_using_XML_RPC.html
">Scripting the Cerebrum/bofhd user administration system using XML-RPC</a>
148 <p>Where I work at the <a href="http://www.uio.no/
">University of
150 <a href="http://sourceforge.net/projects/cerebrum/
">Cerebrum user
151 administration system</a> to maintain users, groups, DNS, DHCP, etc.
152 I've known since the system was written that the server is providing
153 an <a href="http://en.wikipedia.org/wiki/XML-RPC
">XML-RPC</a> API, but
154 I have never spent time to try to figure out how to use it, as we
155 always use the bofh command line client at work. Until today. I want
156 to script the updating of DNS and DHCP to make it easier to set up
157 virtual machines. Here are a few notes on how to use it with
160 <p>I started by looking at the source of the Java
161 <a href="http://cerebrum.svn.sourceforge.net/viewvc/cerebrum/trunk/cerebrum/clients/jbofh/
">bofh
162 client</a>, to figure out how it connected to the API server. I also
163 googled for python examples on how to use XML-RPC, and found
164 <a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-python.html
">a
165 simple example in</a> the XML-RPC howto.</p>
167 <p>This simple example code show how to connect, get the list of
168 commands (as a JSON dump), and how to get the information about the
169 user currently logged in:</p>
172 #!/usr/bin/env python
175 server_url = 'https://cerebrum-uio.uio.no:8000';
176 username = getpass.getuser()
177 password = getpass.getpass()
178 server = xmlrpclib.Server(server_url);
179 #print server.get_commands(sessionid)
180 sessionid = server.login(username, password)
181 print server.run_command(sessionid, "user_info", username)
182 result = server.logout(sessionid)
186 <p>Armed with this knowledge I can now move forward and script the DNS
187 and DHCP updates I wanted to do.
</p>
193 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin
</a>.
198 <div class=
"padding"></div>
200 <p style=
"text-align: right;"><a href=
"12.rss"><img src=
"http://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
211 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
213 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
215 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
217 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
219 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
221 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
223 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
225 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
227 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
229 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
231 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
233 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
3)
</a></li>
240 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
242 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
244 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
246 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
248 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
250 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
252 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
254 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
256 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
258 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
260 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
262 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
269 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
271 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
273 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
275 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
277 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
279 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
281 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
283 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
285 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
287 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
289 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
291 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
298 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
300 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
302 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
304 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
306 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
308 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
310 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
312 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
314 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
316 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
318 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
320 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
327 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
329 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
340 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
342 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
344 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
346 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
3)
</a></li>
348 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
3)
</a></li>
350 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
12)
</a></li>
352 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
354 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
57)
</a></li>
356 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
117)
</a></li>
358 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
9)
</a></li>
360 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
7)
</a></li>
362 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
364 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
162)
</a></li>
366 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
21)
</a></li>
368 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
370 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
9)
</a></li>
372 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
9)
</a></li>
374 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
32)
</a></li>
376 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
17)
</a></li>
378 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
5)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
25)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
217)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
148)
</a></li>
390 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
6)
</a></li>
392 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
394 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
39)
</a></li>
396 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
60)
</a></li>
398 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
400 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
402 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li>
404 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
4)
</a></li>
406 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
408 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
410 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
412 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
28)
</a></li>
414 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
416 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li>
418 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
39)
</a></li>
420 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
3)
</a></li>
422 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
5)
</a></li>
424 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
12)
</a></li>
426 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
1)
</a></li>
428 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
7)
</a></li>
430 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
35)
</a></li>
432 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
434 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
26)
</a></li>
440 <p style=
"text-align: right">
441 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.4
</a>