<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ledgerplot, branch master</title>
<subtitle>Plot data from an hledger accounting file
</subtitle>
<id>http://git.twilken.net/ledgerplot/atom?h=master</id>
<link rel='self' href='http://git.twilken.net/ledgerplot/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/'/>
<updated>2026-03-30T15:35:39Z</updated>
<entry>
<title>Autodetect missing date ranges in `fetch-market-rates'</title>
<updated>2026-03-30T15:35:39Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-30T15:35:39Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=6b33df188bff09d878afb6e60531d98f9c5f0ffa'/>
<id>urn:sha1:6b33df188bff09d878afb6e60531d98f9c5f0ffa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.6.0</title>
<updated>2026-03-22T22:31:43Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-22T22:14:56Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=e38f3a16e5c05951cfd5ee0b8b49700a9d4ce755'/>
<id>urn:sha1:e38f3a16e5c05951cfd5ee0b8b49700a9d4ce755</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Only fetch and append new market rate data</title>
<updated>2026-03-22T22:31:43Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-22T22:12:56Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=e0a3445d5769988f44b2ba61845c0c1850a08ef5'/>
<id>urn:sha1:e0a3445d5769988f44b2ba61845c0c1850a08ef5</id>
<content type='text'>
Re-use the existing market rate data, and only fetch new data. This should
reduce the number of retries needed as we can reliably get a hundred or so
data points before disconnection.
</content>
</entry>
<entry>
<title>Retry fetching market rates on disconnection</title>
<updated>2026-03-22T22:31:43Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-22T22:12:12Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=3dc3f353da7d7a15b5073510ddcf932b4d55a34c'/>
<id>urn:sha1:3dc3f353da7d7a15b5073510ddcf932b4d55a34c</id>
<content type='text'>
Pick up where we left off, and fetch the remainder of the market rate data on
disconnection. WebSocket disconnections seem frequent, but random, with the
Boerse API.
</content>
</entry>
<entry>
<title>Extract market state ID formatting</title>
<updated>2026-03-22T22:29:17Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-22T22:27:45Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=fdcee8e32008bbfb643be57ec3c9a27bf1fe8a5e'/>
<id>urn:sha1:fdcee8e32008bbfb643be57ec3c9a27bf1fe8a5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Teach ledgerplot new currencies CZK, NOK, INR</title>
<updated>2026-03-03T19:30:18Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-03-03T19:30:18Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=9ac2a20bb3c07e34397c189c7550893ab3b73a1a'/>
<id>urn:sha1:9ac2a20bb3c07e34397c189c7550893ab3b73a1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.5.0</title>
<updated>2026-02-23T20:18:58Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-02-23T20:18:58Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=94e34bb9893eed7d359770005dde5428f642d24b'/>
<id>urn:sha1:94e34bb9893eed7d359770005dde5428f642d24b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use new market rate API URL and handle auth failures</title>
<updated>2026-02-23T20:17:16Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2026-02-23T20:17:16Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=e5a58c66455f15915bd0f41e4a4dfca32db9ce52'/>
<id>urn:sha1:e5a58c66455f15915bd0f41e4a4dfca32db9ce52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.4.0</title>
<updated>2025-12-23T12:11:59Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-12-23T12:11:59Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=bc1a2f89b7944b2531d79cbf876d766c077a60ea'/>
<id>urn:sha1:bc1a2f89b7944b2531d79cbf876d766c077a60ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Switch to new Boerse Frankfurt API host</title>
<updated>2025-12-23T12:09:16Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-12-23T12:09:16Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=b99035dc47016bde8d1aa897a387faec2363161b'/>
<id>urn:sha1:b99035dc47016bde8d1aa897a387faec2363161b</id>
<content type='text'>
This new host is now used in the web frontend. The old host still seems to
work, but may stop working in future.
</content>
</entry>
<entry>
<title>Sanity-check successful token response</title>
<updated>2025-12-23T12:08:47Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-12-23T12:08:47Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=0287418c66d4af76f6edb14ce9ee289fe05cc912'/>
<id>urn:sha1:0287418c66d4af76f6edb14ce9ee289fe05cc912</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use API host as Origin for Boerse Frankfurt API</title>
<updated>2025-12-23T12:08:21Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-12-23T12:07:23Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=958bec63a3554689313a750b1e90174863b46721'/>
<id>urn:sha1:958bec63a3554689313a750b1e90174863b46721</id>
<content type='text'>
The token generator now seems to use the Origin host as part of checking the
hashes on its side, so set one it accepts.

Extract the origin host from the given URL, to allow using a different API
hostname.
</content>
</entry>
<entry>
<title>Test assoc-path function</title>
<updated>2025-04-28T13:46:01Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-28T13:46:01Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=6a2678d522563e27eca04cd00c326141ffb0bbb8'/>
<id>urn:sha1:6a2678d522563e27eca04cd00c326141ffb0bbb8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Uniformly use short package names</title>
<updated>2025-04-28T13:38:19Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-28T13:38:19Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=db2c22c0372b084398f4a0ffe9b60be2321f8021'/>
<id>urn:sha1:db2c22c0372b084398f4a0ffe9b60be2321f8021</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Handle If-Modified-Since properly for ECB API</title>
<updated>2025-04-28T13:30:01Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-28T13:30:01Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=0e77b5de7fff7b92a6026695e314abad68f63d0c'/>
<id>urn:sha1:0e77b5de7fff7b92a6026695e314abad68f63d0c</id>
<content type='text'>
If-Modified-Since must be provided a date that was previously returned as a
response's Last-Modified header, else it doesn't have any effect.

Store each response's Last-Modified header in a magic comment in the resulting
file; then re-read it avoid re-fetching the same data multiple times.
</content>
</entry>
<entry>
<title>Make `delete' more robust</title>
<updated>2025-04-07T08:03:48Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-07T08:03:48Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=90a317da3b331f75fa3c9d8a405dfd43d7115ffb'/>
<id>urn:sha1:90a317da3b331f75fa3c9d8a405dfd43d7115ffb</id>
<content type='text'>
This works without `setq' because at that point in the code, the "auth"
element is the last in the list, but don't rely on that.
</content>
</entry>
<entry>
<title>Release 1.3.0</title>
<updated>2025-04-06T22:01:37Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-06T22:01:16Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=31b3f543603b55b99df5458e77bbec037d6b447d'/>
<id>urn:sha1:31b3f543603b55b99df5458e77bbec037d6b447d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move to Websocket API for market prices</title>
<updated>2025-04-06T21:59:58Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-06T21:59:58Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=71998570dac4da14f9a8bea76dfa554c0c69483d'/>
<id>urn:sha1:71998570dac4da14f9a8bea76dfa554c0c69483d</id>
<content type='text'>
The old API seems to be decommissioned, so use the Websocket API that the
Boerse Frankfurt website uses.
</content>
</entry>
<entry>
<title>Fix Boerse Frankfurt API 'security' measures</title>
<updated>2025-04-06T21:58:23Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-04-06T20:25:48Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=fd0605c8df33e89eb37bcff9124b11c8ce4900f8'/>
<id>urn:sha1:fd0605c8df33e89eb37bcff9124b11c8ce4900f8</id>
<content type='text'>
The new token- and Websocket-based API needs two more headers.

These also require a SHA256 hash, so replace the md5 package with ironclad,
which is already pulled in by another package anyway.
</content>
</entry>
<entry>
<title>Document idea</title>
<updated>2025-01-07T19:43:20Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2025-01-07T19:43:20Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=94ef897416008a734670474c53792e28614ade20'/>
<id>urn:sha1:94ef897416008a734670474c53792e28614ade20</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.2.1</title>
<updated>2024-11-17T22:03:02Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-11-17T22:03:02Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=3c77c09c00dcf97fb3dbdf6a89d91bdba835ecd9'/>
<id>urn:sha1:3c77c09c00dcf97fb3dbdf6a89d91bdba835ecd9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Extract version number from asdf system</title>
<updated>2024-11-17T22:02:37Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-11-17T22:01:51Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=9d2577315043271eb855973c62dcc200c0c3bfff'/>
<id>urn:sha1:9d2577315043271eb855973c62dcc200c0c3bfff</id>
<content type='text'>
Guile doesn't support #p pathnames in its reader, so use a plain string for
compatibility.
</content>
</entry>
<entry>
<title>Ignore ledger errors for cashflow data as well</title>
<updated>2024-11-17T21:57:41Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-11-17T21:56:42Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=10b160c6ea0da205256268516f9a709f4a1dbe4e'/>
<id>urn:sha1:10b160c6ea0da205256268516f9a709f4a1dbe4e</id>
<content type='text'>
This was missed in commit 18ec6cbf9cdb731bcb695165904e60b05b26ab1f.
</content>
</entry>
<entry>
<title>Document idea</title>
<updated>2024-10-10T20:12:56Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-10T20:12:56Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=42a5fb22d311f681f88b3e3b390df235677b8b23'/>
<id>urn:sha1:42a5fb22d311f681f88b3e3b390df235677b8b23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove already-implemented idea from readme</title>
<updated>2024-10-10T19:46:17Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-10T19:46:17Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=2bb0ce23845e8ef6f880b6fe84472eb2b73aa513'/>
<id>urn:sha1:2bb0ce23845e8ef6f880b6fe84472eb2b73aa513</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.2.0</title>
<updated>2024-10-10T19:14:17Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-10T19:14:17Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=5b4a5bb96834c53be78bdede7944247a97f03577'/>
<id>urn:sha1:5b4a5bb96834c53be78bdede7944247a97f03577</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow user-configurable limit on number of processes</title>
<updated>2024-10-10T19:12:44Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-10T19:12:44Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=8f09e06a1c4a3c42db8ded965ce2ab6678cdde5b'/>
<id>urn:sha1:8f09e06a1c4a3c42db8ded965ce2ab6678cdde5b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Limit the number of parallel hledger processes</title>
<updated>2024-10-10T19:08:48Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-10T19:08:48Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=da7bb75cfc2c0667a61fa607aa53cb2036e43ac9'/>
<id>urn:sha1:da7bb75cfc2c0667a61fa607aa53cb2036e43ac9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Print exceptions and carry on in daemon mode</title>
<updated>2024-10-08T20:56:50Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-08T20:56:50Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=5af250e8f552d3b4644a2884e752a2fe4634791e'/>
<id>urn:sha1:5af250e8f552d3b4644a2884e752a2fe4634791e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix whitespace typo</title>
<updated>2024-10-08T20:51:57Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-10-08T20:51:57Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=27a436552454a2ba5fe4c25bd130f8030d4de8ae'/>
<id>urn:sha1:27a436552454a2ba5fe4c25bd130f8030d4de8ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Include periodic transactions as forecasts</title>
<updated>2024-03-14T19:28:34Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-03-14T19:27:14Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=43423e7eaf18540ef865e9e3084e11f974e9e17a'/>
<id>urn:sha1:43423e7eaf18540ef865e9e3084e11f974e9e17a</id>
<content type='text'>
Periodic transactions can be used to forecast future income and expenses
without entering it manually for all future months.

This only applies after the very last posted transaction, so future-dated
transactions block periodic transactions completely until their posting date.
</content>
</entry>
<entry>
<title>Ignore transaction errors when invoking hledger</title>
<updated>2024-03-14T19:26:43Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-03-14T19:25:10Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=18ec6cbf9cdb731bcb695165904e60b05b26ab1f'/>
<id>urn:sha1:18ec6cbf9cdb731bcb695165904e60b05b26ab1f</id>
<content type='text'>
This lets me see at least the valid data in the plots while editing my ledger
file. Most of the time, errors will come from the end-of-month "balances"
posting, which only asserts accounts' observed balances.
</content>
</entry>
<entry>
<title>Document ideas</title>
<updated>2024-03-14T16:52:33Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-03-14T16:52:33Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=5bda4b3ee335f9fde67b749b85b9595271da0b76'/>
<id>urn:sha1:5bda4b3ee335f9fde67b749b85b9595271da0b76</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't keep refetching exchange rates if we won't get any more data</title>
<updated>2024-03-03T13:12:20Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-03-03T13:07:15Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=c3806bc1b31decf118f3e1083c1a20d90b085f63'/>
<id>urn:sha1:c3806bc1b31decf118f3e1083c1a20d90b085f63</id>
<content type='text'>
When running `ledgerplot -e` on a weekend, it would keep re-fetching the same
data each time, because there's no data returned for non-business days.
</content>
</entry>
<entry>
<title>Release 1.1.2</title>
<updated>2024-02-29T17:20:17Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-29T17:20:17Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=01bf26c82a34f0cf62d4a74cff68b09b9918423d'/>
<id>urn:sha1:01bf26c82a34f0cf62d4a74cff68b09b9918423d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Create plots up to the end of the month</title>
<updated>2024-02-12T19:31:42Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-12T19:31:12Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=f54cbe65e926725a4a109a2ac4f106d5d474682f'/>
<id>urn:sha1:f54cbe65e926725a4a109a2ac4f106d5d474682f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.1.1</title>
<updated>2024-02-11T21:27:54Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T21:27:54Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=dc03b640943c2323d4940942cfdb363099a77e82'/>
<id>urn:sha1:dc03b640943c2323d4940942cfdb363099a77e82</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix handling of the final day in the range</title>
<updated>2024-02-11T21:13:27Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T21:13:27Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=2440768c0ba97111fccfdd3ddeb894c571d3dd66'/>
<id>urn:sha1:2440768c0ba97111fccfdd3ddeb894c571d3dd66</id>
<content type='text'>
Previously, ledgerplot would add a column for the *end-date*, but hledger
wouldn't return any data for it. Update our date-handling functions to match
hledger's behaviour.
</content>
</entry>
<entry>
<title>Protect against temporarily missing ledger file</title>
<updated>2024-02-11T20:32:47Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T20:32:47Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=285ecaaa12364444c7058965946306881876c3e0'/>
<id>urn:sha1:285ecaaa12364444c7058965946306881876c3e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document improvement idea</title>
<updated>2024-02-11T19:35:10Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T19:35:10Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4c4eab638d4d21f38cf3edd94d031c5afe1bde29'/>
<id>urn:sha1:4c4eab638d4d21f38cf3edd94d031c5afe1bde29</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.1.0</title>
<updated>2024-02-11T19:26:11Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T19:26:11Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4f3467efb56e7c4c7174c64182dc1f52fd643254'/>
<id>urn:sha1:4f3467efb56e7c4c7174c64182dc1f52fd643254</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Extend unit tests to handle monthly income table</title>
<updated>2024-02-11T19:25:44Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T19:25:44Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=dcfc3633679af17b35c0a291f2e200fcac1a5633'/>
<id>urn:sha1:dcfc3633679af17b35c0a291f2e200fcac1a5633</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document manual testing procedure</title>
<updated>2024-02-11T19:16:48Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T19:16:48Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=7556d61db9f6c9559f42bd74f60ee57fe53413ca'/>
<id>urn:sha1:7556d61db9f6c9559f42bd74f60ee57fe53413ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Store monthly income data in database</title>
<updated>2024-02-11T19:09:21Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T19:09:21Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=78f9ccdca87b8ef7d2c189c76d478ecdf8ce9ef5'/>
<id>urn:sha1:78f9ccdca87b8ef7d2c189c76d478ecdf8ce9ef5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve temporary file handling</title>
<updated>2024-02-11T16:55:15Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:53:21Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=f47f8d496ed98c0120f74f36c1c7c15e25b32781'/>
<id>urn:sha1:f47f8d496ed98c0120f74f36c1c7c15e25b32781</id>
<content type='text'>
(temporary-directory) is already the default behaviour for :directory.

Also, give the file a sensible name in case it is left over.
</content>
</entry>
<entry>
<title>Test the parser gets the account names we expect</title>
<updated>2024-02-11T16:52:00Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:52:00Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=d8f4435e97ba2b2db8392e811bc7960288633617'/>
<id>urn:sha1:d8f4435e97ba2b2db8392e811bc7960288633617</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Name top-level test suite</title>
<updated>2024-02-11T16:51:56Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:51:56Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=db0c4b73c4b68e08dd098e92d1028b091e3689d2'/>
<id>urn:sha1:db0c4b73c4b68e08dd098e92d1028b091e3689d2</id>
<content type='text'>
Don't rely on the default suite being called 'nil'.
</content>
</entry>
<entry>
<title>Mock out ledger file for unit tests</title>
<updated>2024-02-11T16:40:01Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:40:01Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=0ae2f4feb61ccb383d84c30c59e937cd3a22c174'/>
<id>urn:sha1:0ae2f4feb61ccb383d84c30c59e937cd3a22c174</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Exit with an error status when tests fail</title>
<updated>2024-02-11T16:29:36Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:29:36Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=d2c0e5b176268414111ab2efa6e99f1b0a9c5b64'/>
<id>urn:sha1:d2c0e5b176268414111ab2efa6e99f1b0a9c5b64</id>
<content type='text'>
Fiveam doesn't do this automatically.
</content>
</entry>
<entry>
<title>Escape DB column names properly for monthly expenses</title>
<updated>2024-02-11T16:09:13Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:09:13Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=13958ffa0aebf290fc9889666c1b34b5d888aaf4'/>
<id>urn:sha1:13958ffa0aebf290fc9889666c1b34b5d888aaf4</id>
<content type='text'>
This avoids errors down the line due to mismatching column names between the
"create table" and "insert" statements.
</content>
</entry>
<entry>
<title>Autodetect top-level account names from LEDGER_FILE</title>
<updated>2024-02-11T16:08:28Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T16:08:05Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=fc9e60875e0b2059b080a19b53d103660045e2e0'/>
<id>urn:sha1:fc9e60875e0b2059b080a19b53d103660045e2e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Handle --version option</title>
<updated>2024-02-11T15:06:37Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T15:06:37Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=3abe9345a85613fefdcf1a750a5593981626e0c3'/>
<id>urn:sha1:3abe9345a85613fefdcf1a750a5593981626e0c3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release 1.0.0</title>
<updated>2024-02-11T14:59:36Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T14:59:36Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=531abc6eded1732f91091fdc837ae7d28758ce67'/>
<id>urn:sha1:531abc6eded1732f91091fdc837ae7d28758ce67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move more constants closer to their point of use</title>
<updated>2024-02-11T14:44:16Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T14:44:16Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=087f556f9413b3e5709a261ccd6b5e7748c174eb'/>
<id>urn:sha1:087f556f9413b3e5709a261ccd6b5e7748c174eb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document recommended ledger file header and to-do items</title>
<updated>2024-02-11T14:37:09Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T14:35:52Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=f7e82ae22617e5385f159563c0b803524ba1945d'/>
<id>urn:sha1:f7e82ae22617e5385f159563c0b803524ba1945d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move exchange-rate-related constants into the appropriate file</title>
<updated>2024-02-11T14:34:53Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T14:34:53Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=1932551aa0a874ea7d41a5d4c3f52fd334088db6'/>
<id>urn:sha1:1932551aa0a874ea7d41a5d4c3f52fd334088db6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document the tool and its build process</title>
<updated>2024-02-11T13:11:29Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T13:11:07Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4c53122c50447d31448dc1e5f2fa96f63127ec06'/>
<id>urn:sha1:4c53122c50447d31448dc1e5f2fa96f63127ec06</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add fiveam unit test dependency</title>
<updated>2024-02-11T13:10:26Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T13:10:26Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4f647a364c0c7c586483ecbd7979746d7c512719'/>
<id>urn:sha1:4f647a364c0c7c586483ecbd7979746d7c512719</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean up Guix build</title>
<updated>2024-02-11T12:47:43Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T12:47:43Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=b0ba36b4c2b61c6ef2ad1c506bd9e7a2f3e3372b'/>
<id>urn:sha1:b0ba36b4c2b61c6ef2ad1c506bd9e7a2f3e3372b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Watch input files using inotify if requested</title>
<updated>2024-02-11T12:25:28Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T12:25:28Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=c1fcd055ee2384c001a64221a461244c1d42b5e1'/>
<id>urn:sha1:c1fcd055ee2384c001a64221a461244c1d42b5e1</id>
<content type='text'>
This allows re-running reports whenver the input files change, e.g. for use on
an unattended server where the ledger file is synced automatically.
</content>
</entry>
<entry>
<title>Build executable as part of Guix package</title>
<updated>2024-02-11T12:25:05Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-11T12:25:05Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4d4d1e10d373001d5057214a2f87d39ec2e50896'/>
<id>urn:sha1:4d4d1e10d373001d5057214a2f87d39ec2e50896</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Annotate most functions with type declarations</title>
<updated>2024-02-10T22:34:41Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-10T22:34:41Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=9db6b38135bd6608b8983c4c630d0f12098ae15a'/>
<id>urn:sha1:9db6b38135bd6608b8983c4c630d0f12098ae15a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Detect declared liquid accounts automatically</title>
<updated>2024-02-10T22:07:59Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-10T22:01:57Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=64af7796046a101c31bd5f609f1fc673a829e7ab'/>
<id>urn:sha1:64af7796046a101c31bd5f609f1fc673a829e7ab</id>
<content type='text'>
Let users declare liquid accounts in their ledger file directly using
directives like:

  account assets:cash   ; tag:liquid

This means account names don't have to be hardcoded and don't appear in the
command line, for better data security.
</content>
</entry>
<entry>
<title>Basic command-line interface</title>
<updated>2024-02-10T21:41:52Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-10T21:41:52Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=45be7ea66c40bf64386b288a9b8eba9062a20aa5'/>
<id>urn:sha1:45be7ea66c40bf64386b288a9b8eba9062a20aa5</id>
<content type='text'>
Allow choosing modes of operation (i.e. gnuplot or write-to-database), and
fetch exchange rates on demand.
</content>
</entry>
<entry>
<title>Separate functions for interfacing with hledger and gnuplot</title>
<updated>2024-02-10T20:58:10Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-10T20:58:10Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=d054646000a011de82512638f2c522796c7c618e'/>
<id>urn:sha1:d054646000a011de82512638f2c522796c7c618e</id>
<content type='text'>
This should make it simpler to support a gnuplot-only or database-only mode of
operation. It also makes the "main" module cleaner.
</content>
</entry>
<entry>
<title>Create unit tests for database functions</title>
<updated>2024-02-10T20:49:44Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-10T20:43:49Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=4d9a6dd4159d680d18c4508065daaa8b4e243946'/>
<id>urn:sha1:4d9a6dd4159d680d18c4508065daaa8b4e243946</id>
<content type='text'>
This replaces the ad-hoc Makefile-based manual testing.
</content>
</entry>
<entry>
<title>Write monthly expense data to Postgres</title>
<updated>2024-02-07T17:59:22Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-02T12:42:00Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=7d97fe3af9bf643e9b3a5e86e09572b3f2a8e875'/>
<id>urn:sha1:7d97fe3af9bf643e9b3a5e86e09572b3f2a8e875</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow writing plot data to Postgres</title>
<updated>2024-02-02T11:45:27Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-02T11:44:17Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=42af9e5222f9375d860be2e639c0540a490370a2'/>
<id>urn:sha1:42af9e5222f9375d860be2e639c0540a490370a2</id>
<content type='text'>
This allows Grafana to consume the same data and plot it, instead of using
Gnuplot.
</content>
</entry>
<entry>
<title>Add basic test package with an example test</title>
<updated>2024-02-02T11:45:27Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-02T10:03:35Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=6bf56a0726effe59b28774a11374645da150bf48'/>
<id>urn:sha1:6bf56a0726effe59b28774a11374645da150bf48</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move source files into src/</title>
<updated>2024-02-02T11:45:26Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-02-02T10:02:54Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=15cee26f79c4a2079ac2183c94185f606d4ffca2'/>
<id>urn:sha1:15cee26f79c4a2079ac2183c94185f606d4ffca2</id>
<content type='text'>
In preparation for adding a basic test package.
</content>
</entry>
<entry>
<title>Use guix shell for dev environment</title>
<updated>2024-01-03T11:06:29Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2024-01-03T11:06:29Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=9614074e0237638128c04fa613c725039209862b'/>
<id>urn:sha1:9614074e0237638128c04fa613c725039209862b</id>
<content type='text'>
...and make the initial compilation work without quicklisp installed.

The LD_LIBRARY_PATH mangling doesn't seem to be needed any more if using a
Guix shell.
</content>
</entry>
<entry>
<title>Package using Guix</title>
<updated>2023-12-01T22:34:16Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-12-01T22:34:16Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=fcbe50176f444a339a0ba2ab2b1ac65e772dfefc'/>
<id>urn:sha1:fcbe50176f444a339a0ba2ab2b1ac65e772dfefc</id>
<content type='text'>
This allows spinning up a development environment with minimal effort.
</content>
</entry>
<entry>
<title>Remove unneeded ql:quickload before asdf:make</title>
<updated>2023-11-27T23:04:26Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T23:04:26Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=efb1812637213cafe7ed104cb560767c6a45886e'/>
<id>urn:sha1:efb1812637213cafe7ed104cb560767c6a45886e</id>
<content type='text'>
This shows some potentially-helpful compilation warnings, if applicable.
</content>
</entry>
<entry>
<title>Prefer type over satisfies for efficiency</title>
<updated>2023-11-27T23:04:08Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T23:04:08Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=c5fa8399523deb36eeae26818259737d31129bbe'/>
<id>urn:sha1:c5fa8399523deb36eeae26818259737d31129bbe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change to new ECB API URL and improve caching</title>
<updated>2023-11-27T23:03:19Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T23:03:19Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=b88c518b73b2e1adc61ebfa0dfb05d45a8dd064c'/>
<id>urn:sha1:b88c518b73b2e1adc61ebfa0dfb05d45a8dd064c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor assoc-path function</title>
<updated>2023-11-27T17:22:10Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T17:22:10Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=8238c0b7b1609f5afcb8c77077533506df389172'/>
<id>urn:sha1:8238c0b7b1609f5afcb8c77077533506df389172</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make functions more easily testable</title>
<updated>2023-11-27T17:21:52Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T17:21:52Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=811f6e4d34ac8633b74f53ac0149cb18c1c4cbbb'/>
<id>urn:sha1:811f6e4d34ac8633b74f53ac0149cb18c1c4cbbb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move constant to constants.lisp</title>
<updated>2023-11-27T17:21:34Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-27T17:21:34Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=9bc7aae212128629ae8a79fb3f45cd0923fc1851'/>
<id>urn:sha1:9bc7aae212128629ae8a79fb3f45cd0923fc1851</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use on-the-day prices for balance charts</title>
<updated>2023-11-04T19:09:41Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-04T19:09:41Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=99282c2781d12283fb1cac1132571fdfde818efa'/>
<id>urn:sha1:99282c2781d12283fb1cac1132571fdfde818efa</id>
<content type='text'>
This shows value fluctuations over time for e.g. ETFs, instead of holding
their price constant as the report date's price.
</content>
</entry>
<entry>
<title>Fetch ETF and stock market prices from Frankfurt Stock Exchange</title>
<updated>2023-11-04T19:09:21Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-11-04T19:09:21Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=b181ef6c88fab3348017e9ec252bbf1e99fc8e57'/>
<id>urn:sha1:b181ef6c88fab3348017e9ec252bbf1e99fc8e57</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use `install` to install final binary</title>
<updated>2023-10-28T13:41:58Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-10-28T13:41:58Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=c93d16016bc59394ca2eca44dab075424a165a0e'/>
<id>urn:sha1:c93d16016bc59394ca2eca44dab075424a165a0e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add note about useful option</title>
<updated>2023-10-28T13:37:12Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-10-28T13:37:12Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=93f6dcad1add18f2e96886230a0b9cdf5d23b534'/>
<id>urn:sha1:93f6dcad1add18f2e96886230a0b9cdf5d23b534</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Put exchange rates file in current directory as fallback</title>
<updated>2023-10-28T13:36:52Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-10-28T13:36:52Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=564e6e5990b7c5044a9c14480399649341d78bdc'/>
<id>urn:sha1:564e6e5990b7c5044a9c14480399649341d78bdc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix number formatting function</title>
<updated>2023-05-31T18:50:03Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-05-31T18:50:03Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=f91749f436deada1480298aad75f2cef86670e84'/>
<id>urn:sha1:f91749f436deada1480298aad75f2cef86670e84</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace `date-calc' and custom date handling with `local-time' package</title>
<updated>2023-05-30T20:14:42Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-05-30T20:14:42Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=08b3818683bc0042c681bd617c470a0281d099fb'/>
<id>urn:sha1:08b3818683bc0042c681bd617c470a0281d099fb</id>
<content type='text'>
This package is available in Guix, unlike `date-calc'.
</content>
</entry>
<entry>
<title>Add plot titles</title>
<updated>2023-05-23T20:32:03Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-05-23T20:32:03Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=bc7dcfbd65043815e6d8814ddbd9e53fb15415c0'/>
<id>urn:sha1:bc7dcfbd65043815e6d8814ddbd9e53fb15415c0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial commit</title>
<updated>2023-05-22T21:46:09Z</updated>
<author>
<name>Timo Wilken</name>
</author>
<published>2023-05-16T20:58:46Z</published>
<link rel='alternate' type='text/html' href='http://git.twilken.net/ledgerplot/commit/?id=d2768bec4e2fe5502c6762eb773e0d68d874fc8c'/>
<id>urn:sha1:d2768bec4e2fe5502c6762eb773e0d68d874fc8c</id>
<content type='text'>
</content>
</entry>
</feed>
