2008-10-10 12:16:55 +04:00
hledger project notes
2009-11-26 01:11:17 +03:00
=====================
2007-07-02 18:36:58 +04:00
2009-07-10 21:24:51 +04:00
* principles
** We aim to make reliable, maintainable, usable, useful software, sustainably.
** "bugs" are errors, as in the programmers messed up
** packaging before docs before tests before fixes before refactoring before features
** automate
** measure
** test continuously, test everything
** less is more
2010-03-19 23:01:26 +03:00
** pair programming/code review
2009-07-10 21:24:51 +04:00
** inspiration
2007-08-04 18:51:45 +04:00
"...simplicity of design was the most essential, guiding principle.
Clarity of concepts, economy of features, efficiency and reliability of
implementations were its consequences." --Niklaus Wirth
2008-11-08 20:41:14 +03:00
"The competent programmer is fully aware of the limited size of his own
skull. He therefore approaches his task with full humility, and avoids
clever tricks like the plague." --Edsger Dijkstra
2009-04-04 01:02:45 +04:00
2007-08-04 18:51:45 +04:00
* to do
2009-07-10 21:24:51 +04:00
** packaging, installability
*** easier installation
2009-09-30 06:17:03 +04:00
**** all platforms
2009-07-10 21:24:51 +04:00
***** binary build/publish process
***** reduce dependencies
***** split packages ?
2009-09-30 06:17:03 +04:00
**** linux
2009-07-10 21:24:51 +04:00
***** keep up with debian/ubuntu haskell packagers
2009-09-30 06:17:03 +04:00
**** mac
2009-07-10 21:24:51 +04:00
***** easy data entry, then
***** easy installer
***** easy startup
2009-09-30 06:17:03 +04:00
**** windows
2009-07-10 21:24:51 +04:00
***** easy data entry, then
***** easy installer
***** easy startup
** documentation, marketing
*** add missing
**** hledger/ledger feature matrix
*** reduce
2009-09-30 06:17:03 +04:00
*** aesthetics
**** better screenshots/images
*** automation
2009-04-04 13:25:25 +04:00
**** keep blurbs in sync
2009-04-04 01:02:45 +04:00
***** README file
***** hledger.hs module description
***** hledger.cabal description field (exclude home page link)
***** home page description (http://joyful.com/Hledger/editform)
***** mail list description (http://groups.google.com/groups/hledger -> edit welcome msg)
***** gmane description
***** darcsweb description
2009-04-04 13:25:25 +04:00
**** keep Options.hs and README option list in sync
2009-07-10 21:24:51 +04:00
**** discovering commands for --help
**** announcements
*** liveness
**** show feeds on site ?
***** commits (darcsweb)
**** weekly repo activity summary on list
**** available feeds
*** screencasts
**** intro
***** intro to hledger
****** place in the world
****** basic installation
****** quick demo
****** where to go from here
***** installing hledger on windows
***** installing hledger on mac
***** installing hledger on unix
***** accessing hledger's support forums
****** website
****** mail list
****** irc channel
***** reporting a hledger bug
**** using
***** income/expense tracking
***** time tracking
***** downloading bank data
***** reconciling with bank statement
***** see time reports by day/week/month/project
***** get accurate numbers for client billing and tax returns
***** find unpaid invoices
**** developing
***** intro to hledger development
***** testing hleder
***** documenting hledger
***** a hledger coding example
***** a tour of hledger's code
**** ledger cooperation
*** developer docs
2010-03-19 23:01:26 +03:00
**** roadmap
***** 1.0
culmination of 0.x releases - stable/usable/documented
followup releases are 1.01, 1.02..
GHC 6.10/HP 2009 primary platform
GHC 6.12/HP 2010 also supported if possible
GHC 6.8 might work for core features, but not officially supported
separate ledger package ? license ?
separate vty, web packages ?
support plugins ?
web: loli+hsp+hack+simpleserver/happstack, or yesod+hstringtemplate+wai+simpleserver(/happstack) ?
add: completion ?
chart: register charts ?
histogram: cleaned up/removed
complete user manual
binaries for all platforms ?
***** 2.0
development releases are.. 1.60, 1.61.. or 1.98.01, 1.98.02..
separate ledger lib
plugins
Decimal
binaries for all platforms
2009-07-10 21:24:51 +04:00
**** internal api docs
**** external api docs
**** DEVGUIDE
***** How to do anything that needs doing in the hledger project.
****** website & documentation
******* overview of hledger docs
******* how the site is built
******* convenience urls
list.hledger.org - mail list
bugs.hledger.org - issue tracker
bugs.hledger.org/1 - go to specific issue
bugs.hledger.org/new - create a new issue
hledger.org/{list,bugs}/* also works
****** issue tracking
****** testing
****** coding
****** funding process
***** reference
****** unsafe things which may fail at runtime
******* incomplete pattern matching
******* error
******* printf
2009-11-26 01:11:17 +03:00
******* read
2009-07-10 21:24:51 +04:00
**** project notes
2009-09-30 06:17:03 +04:00
**** functional programming
hledger is written in the Haskell programming language;
it demonstrates a pure functional implementation of ledger.
2009-07-10 21:24:51 +04:00
*** presenting/live demos
2009-04-04 13:25:25 +04:00
*** develop funding process
2009-04-04 01:02:45 +04:00
**** license change ?
**** donate button, see chimoo guy
2009-02-27 07:03:14 +03:00
**** funding document 2009/01
2009-07-10 21:24:51 +04:00
***** text
2009-01-20 11:55:46 +03:00
=======
funding
=======
vision
======
2009-01-20 11:21:50 +03:00
How to grow the hledger project ?
I'm looking for ways to fund active and sustainable hledger
development by me and others.
A secondary goal is to develop new sustainable models and processes
for funding free software developers and other community projects.
This is sometimes the point in a free sw project's development where
the project leader seemingly loses the plot, alienates contributors
and destroys the community's good-will dynamic. I've seen it many
times, but a few have succeeded and I want to be one of them - so
that I can eat, have a modicum of stability and do my best work in
service to the community. At worst, I'll look bad but the project
will still be out there. At best I'll live more easily and joyfully
while serving the cause of Financial Solvency!
2009-01-20 11:43:06 +03:00
So I'm beginning by posting these notes and inviting your thoughts -
2009-01-20 11:55:46 +03:00
as much or as little as folks want to give. How could we do this
so that all benefit ?
funding models
==============
2009-01-20 11:21:50 +03:00
Brainstorming some possible funding models & processes.
2009-01-20 11:55:46 +03:00
* grants
2009-01-20 11:21:50 +03:00
How to find possible grant sources ?
2009-01-20 11:55:46 +03:00
* con
* getting grant funding is a whole new field to study
* slow and time intensive, I imagine
* donations
2009-01-20 11:21:50 +03:00
Solicit donations.
2009-01-20 11:55:46 +03:00
* pro
* simple
* con
* often difficult
* donators do not feel a direct benefit
* shareware
2009-01-20 11:21:50 +03:00
Release the project under a non-free license, requiring commercial
users to pay the fee on an honour basis (eg).
2009-01-20 11:55:46 +03:00
* pro
* flexible, low administration, encourages trust
* con
* effectively closed-source ? would inhibit collaboration
* benefit is still indirect, only a proportion will pay
* enforcement/guilt may come into play
* limited-time premium branch
2009-01-20 11:21:50 +03:00
The funded version of hledger gets some desirable premium features
before the free version and is closed-source. Funders/customers pay
a fixed price for immediate access to the funded version. Yearly, a
new funded version is released and the old funded version is merged
into the free version. (To gain experience it could be done on a
smaller scale, eg monthly/quarterly.)
2009-01-20 11:55:46 +03:00
* pro
* all features reach community, predictably
* customers are also community funders
* customers receive direct benefit from paying
* con
* free sw developers compete/outshine the premium branch
* bounties
2009-01-20 11:21:50 +03:00
Some (or all) feature, bugfix, project management or other tasks are
published with a bounty attached. When the bounty is paid by one or
more funders, the task is performed and delivered. Or, bounty is paid
on completion of task (honour system).
2009-01-20 11:55:46 +03:00
* pro
* funders receive direct benefit
* bounties using fundable.org (eg)
2009-01-20 11:21:50 +03:00
A more organised form of the above, perhaps facilitating trust,
co-funding and larger bounties.
2009-01-20 11:55:46 +03:00
* pro
* proven process developed by others
* con
* fundable takes a cut
* hosted service
2009-01-20 11:21:50 +03:00
Offer hosted and managed ledgers, perhaps with premium features, for
a monthly fee
2009-01-20 11:55:46 +03:00
* pro
* proven model
* clear benefit to customers, especially non-technies
* con
* success of free/self-installed version competes with hosting service
* some will avoid web-hosting their financial data
* customisation
2009-01-20 11:21:50 +03:00
Offer per-user customisations, possibly to be merged in the trunk,
for a fee
2009-01-20 11:55:46 +03:00
* support
2009-01-20 11:21:50 +03:00
Offer user/developer support for a fee
2009-01-20 11:55:46 +03:00
* training
2009-01-20 11:21:50 +03:00
Offer application and/or financial training for a fee
2009-01-20 11:55:46 +03:00
* profit sharing/tithing
2009-01-20 11:21:50 +03:00
Each period (quarter, half-year, year), donate 10% (eg) to project
contributors and/or supporting projects
2009-01-20 11:55:46 +03:00
* transparent funding
2009-01-20 11:21:50 +03:00
Funding and usage of funds is published on the web as a ledger
2009-01-20 11:55:46 +03:00
* opaque funding
2009-01-20 11:21:50 +03:00
All funding and spending need not be made public
2009-01-20 11:55:46 +03:00
strengths
=========
2009-01-20 11:21:50 +03:00
hledger has some aptitudes in this area:
2009-01-20 11:55:46 +03:00
* hledger deals with money => hledger users will tend to have some money
* hledger's purpose is to increase financial success => users will feel its value to their bottom line
* hledger is a tool that can support project funding, eg by publishing community funding data
weaknesses
==========
* hledger doesn't have a nice ui yet
* hledger has a limited featureset
* hledger requires work, eg data entry and chart of accounts maintenance
* hledger is geeky
* there is competition
* hledger has no compelling market niche (aside from payment-averse free software users)
competitors/fellow niche inhabitants
====================================
* web apps
* netsuite
* sql-ledger, ledgersmb
* wesabe
* ...
* desktop apps
* quickbooks
* quicken
* ms money
* grisbi
* gnucash
* excel
* ledger!
* ...
2009-01-20 11:21:50 +03:00
2009-02-27 07:03:14 +03:00
***** responses
2009-07-10 21:24:51 +04:00
****** albino
have you considered talking to business who hate their financial sw and going from there
****** gwern
most haskellers have never heard of hledger, sounds arrogant or hubristic to talk of charging for it
2009-04-04 01:02:45 +04:00
2009-07-10 21:24:51 +04:00
**** home edition
** testing
*** documentation
**** site up, current
**** demo up, current
2009-11-26 01:11:17 +03:00
**** haddock building, current
**** doctests ?
2009-07-10 21:24:51 +04:00
*** unit
**** hunit
**** quickcheck
**** easier unit test development
*** functional
**** ledger file parsing tests
***** test all ledger file format features
***** clarify hledgerisms in file format - that hledger can read but ledger can't
**** ledger 3 baseline tests
**** auto-compare xml output with ledger's ?
**** allow multiple tests in .test ?
*** performance
**** speed, benchmark tests
**** memory usage
*** build & packaging
**** use -Wall and anything else useful
**** build with multiple ghc versions
**** cabal test
**** hackage upload
**** cabal install with:
***** ghc 6.8
***** ghc 6.10.x
***** windows
***** linux
***** macos
***** no flags
***** happs flag
***** vty flag
*** field
**** talkback, auto bug reports
**** usability
**** download & usage stats
** errors
2010-05-20 04:07:23 +04:00
*** balance: stack space overflow
<<<
i 2009/01/02 10:18:26 work:business:systems:website:outage
o 2009/01/02 10:35:03
$ hours -p 2007 bal
Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize' to increase it.
2010-03-19 23:01:26 +03:00
2010-05-20 04:07:23 +04:00
*** register: eats memory
2010-04-10 04:21:35 +04:00
$ hours stats
Ledger statistics as of 2010-04-01
----------------------------------
File : current.timelog
Period : 2007-02-05 to 2010-01-31 (1091 days)
Last transaction : 2010-01-30 (61 days ago)
Transactions : 4333 (4.0 per day)
Transactions last 30 days: 0 (0.0 per day)
Transactions last 7 days : 0 (0.0 per day)
Accounts : 947
Account tree depth : 8
Commodities : 2 (h, p)
$ hours reg ...Nx100Mb...
2010-05-20 04:07:23 +04:00
*** register: with reporting interval and depth, should aggregate deeper txns to specified depth
*** print: virtual parentheses/brackets throw off alignment
<<<
2009/01/27 (1/2009) Foobar 2
VLL:VLL_1_Year -7140.00 USD ; Some comment
(Company:Baz) -7140.00 USD
FLL:Foreign 6000.0 USD
VLL_VAT 1140.0 USD
>>>
2009/03/27 (000007) Foobar 1
FLL 6783.00 USD
(Company:Baz) 6783.00 USD
VAT -5700.00 USD
VLL_VAT -1083.00 USD
*** parsing: timelog conversion gives unbalanced txns
hledger -f- print
<<<
i 2009/01/02 10:18:26 work:business:systems:website:outage
o 2009/01/02 10:35:03
>>>
2009/01/02 * 10:18-10:35
work:business:systems:website:outage 0.3h
*** parsing: misleading error when final newline missing
hledger -f- balance
<<<
2010/1/1
a 1
b
>>>
>>>2
"-" (line 1, column 9):
unexpected "\r"
expecting digit, effective date, cleared flag, transaction code or description and/or comment
>>>= 1
*** parsing: wrong line number in error
hledger -f- print
<<<
2010-03-18 Postage
Foo 11.04 GBP @@ 12.46 EUR ; @ 1.129 EUR
Bar
>>>
hledger: parse error at (line 1, column 24):
unexpected "@"
expecting comment or new-line
*** parsing: errors should include the file name
This one does:
$ hledger -b today
"/Users/simon/personal/current.journal" (line 4, column 1) in included file "2010.journal":
"2010.journal" (line 1013, column 1):
unexpected "\n"
could not balance this transaction (real postings are off by $-3156.72)
This one doesn't:
$ hledger -f 2008.journal stat
hledger: parse error at (line 1, column 59):
unexpected "["
expecting comment or new-line
*** parsing: better leap year checking
ledger:
While parsing file "/Users/simon/personal/2010.ledger", line 442:
While parsing transaction:
> 2/27=2/29 (20100201ucla) ucla payment
Error: Day of month is not valid for year
*** convert: rules file can't have blank lines after last data
2010-04-10 04:21:35 +04:00
2010-05-20 04:07:23 +04:00
*** vty: left arrow from register view doesn't show full list of accounts
2009-07-10 21:24:51 +04:00
** refactoring, code cleanup
2010-03-19 23:01:26 +03:00
*** more modularity
**** plugin strategy
**** export lists
**** graph and reduce dependencies
2009-07-10 21:24:51 +04:00
*** clarify levels of abstraction
2009-06-13 19:43:09 +04:00
**** balance sheet view - data model, view layout
**** hledger web framework - define routes, handlers/views/actions/controllers/presenters, skins/styles..
**** happstack - ? happstack api..
**** hledger app platform - hledger.hs, Options, Utils, withLedgerDo..
**** hledger lib - Ledger, TimeLog, Account, Transaction, Commodity..
**** hledger dev platform - make build, ci, test, bench, prof, check, release..
**** general libs - directory, parsec, regex-*, HUnit, time..
**** cabal - hledger.cabal, hackage..
**** ghc - ghc 6.8, 6.10..
**** haskell 98
**** unix/windows/mac platform
2009-07-10 21:24:51 +04:00
*** inspiration
http://community.haskell.org/~ndm/downloads/paper-hoogle_overview-19_nov_2008.pdf -> Design Guidelines
** features
2010-05-20 04:07:23 +04:00
*** register --wide and/or --format ...
*** --related
2010-03-19 23:01:26 +03:00
*** Double -> Decimal
2010-02-17 00:59:53 +03:00
*** parsing: safety check that effective date > actual (to catch eg 2009/12/30=1/4)
2010-05-20 04:07:23 +04:00
*** parsing: support @@
*** parsing: support D
2010-03-19 23:01:26 +03:00
*** parsing: accept all real-world ledger files
As far as I know it currently accepts all ledger 2.6-era files.
Add support for ledger 3 file format as/when that stabilises.
It would be nice to optionally report/upload parse errors when they happen.
*** talkback feature
gather data on real-world installation & usage issues
simplify bug reporting/handling
improve reliability
*** upload feature
*** payee & account anonymisation
2009-09-30 06:17:03 +04:00
*** easier timelog formats
*** implicit timelog account
2010-03-19 23:01:26 +03:00
*** add: completion etc.
*** convert: generalise/reuse add's history awareness
*** web: charts (Chart or google)
2009-07-10 21:24:51 +04:00
*** wide/customisable/consistent layout
2009-11-26 01:11:17 +03:00
*** --flat balance report format
2010-05-20 04:07:23 +04:00
#not:
#hledger bal clearview
# 43.4h TIME:work:jobs:clearview
# 1.7h bad retention collection
# 0.1h cash receipts sales co heading
# 0.4h commissions dashboard breakage
# 4.1h commissions:total detail starting balance
# 0.5h cvmanage issues
# 1.3h dashboard error
# 0.5h update error logging system
# 1.0h filter views by sales co:commissions
# 1.0h html2ps error
# 6.1h payments have wrong sales co
# 0.4h site hang
# 0.2h sysadmin
# 26.6h title 24
#--------------------
# 43.5h
#but:
#hledger bal clearview --flat --depth 5
# 1.7h bad retention collection
# 0.1h cash receipts sales co heading
# 0.4h commissions dashboard breakage
# 4.1h commissions:total detail starting balance
# 0.5h cvmanage issues
# 1.3h dashboard error
# 1.0h filter views by sales co:commissions
# 1.0h html2ps error
# 6.1h payments have wrong sales co
# 0.4h site hang
# 0.2h sysadmin
# 26.6h title 24
#--------------------
# 43.4h
#
#- only depth 5 accounts are shown
#- extra amount in parent account, if any, is added as misc
#- visible numbers add up to the visible total
2010-03-19 23:01:26 +03:00
*** effective/actual dates for postings
2009-11-26 01:11:17 +03:00
*** better web ui/gui
*** nice reports with charts
2009-07-10 21:24:51 +04:00
*** ledger-compatible xml output ?
2009-04-16 10:33:01 +04:00
*** allow no command or unordered command with pattern args
2009-07-10 21:24:51 +04:00
*** more automated bank data conversion
*** ofx download
2009-06-13 19:43:09 +04:00
*** watching a changing ledger
2009-04-04 01:02:45 +04:00
*** more date syntax ? last nov, next friday, optional this, week of
*** more period syntax ? every N days, biweekly
*** accept multiple -f files
*** more reliable tidy layout from print
*** parse more file formats - gnucash, qif, ofx, csv..
*** i18n
2010-02-17 00:59:53 +03:00
import Codec.Binary.UTF8.String (encodeString, decodeString)
import Data.ByteString.UTF8 (fromString, toString)
import Data.ByteString.Char8 (pack, unpack)
import Data.Text.Encoding (decodeUtf8)
2010-03-19 23:01:26 +03:00
*** speed, memory usage
*** clear, documented interfaces/surfaces
*** plugin architecture/modular packaging
**** goals
***** allow separately-packaged functionality to be discovered at run-time and integrated within the hledger ui.
Example: user installs hledger-ofx package from hackage, or adds Ofx.hs to their ~/.hledger/plugins/;
then "ofx" is among the commands listed by hledger --help, and/or is a new command available in
the web and vty interfaces, and/or is a new file format understood by the convert command.
**** issues to consider
***** what is the api for plugins ?
they'll want to import Ledger lib, to work with ledger data structures
***** there are different kinds of "plugin". What could plugins provide ?
****** commands - for all uis, or for one or more of them (cli, web, vty..). A command may itself be a new ui.
****** import/export formats
****** skins/styles/templates for uis, eg the web ui ?
**** techniques to consider
***** running executables provided by plugins
a cli command plugin: cli execs the executable with same arguments
a web command plugin: web ui runs the executable as a subprocess and captures the output
***** linking plugins into main app with direct-plugins
simplification of plugins lib
main app needs to know the types used in plugin's interface
weakens type safety, avoiding runtime errors requires extra care
requires whole-program linking at plugin load time
plugins can be discovered by querying ghc for installed packages or modules in a known part of the hierarchy
maintained and keen to help
***** linking plugins into main app with plugins (original)
more complex than above
more type-safe/featureful ?
2010-04-10 04:21:35 +04:00
***** doing whatever xmonad does with dyre
2010-03-19 23:01:26 +03:00
***** interpreting plugins under control of main app with hint
ghci in an IO-like monad
types need converting, etc.
plugins may run more slowly
plugins can be discovered/loaded by module path or by loading files directly
2009-07-10 21:24:51 +04:00
2010-04-10 04:21:35 +04:00
2008-10-10 12:16:55 +04:00
* misc
** things I want to know
*** time
2007-05-01 09:34:49 +04:00
where have I been spending my time in recent weeks ?
where have I spent my time today ?
what is my status wrt spending plan for this week/month/year ?
what is my current status wrt time spending goals ?
2008-10-10 12:16:55 +04:00
*** money
2007-05-01 09:34:49 +04:00
where have I been spending my money ?
what is my status wrt spending plan for this week/month/year ?
what is my current status wrt spending/savings goals ?
what are all my current balances ?
what does my balance history look like ?
what does my balance future look like ?
are there any cashflow, tax, budgetary problems looming ?
2008-10-10 12:16:55 +04:00
*** charts
2008-05-27 01:13:54 +04:00
[1:27pm] <sm> I have decided I am not getting enough visible day-to-day value out of my ledger, I need more of that to stay motivated
[1:27pm] <Nafai> What do you think will help in that?
[1:27pm] <sm> I think some simple self-updating charts, or even good reports in a visible place
[1:28pm] <sm> something I don't have to spend an hour fiddling with to get answers
[1:38pm] <sm> Nafai: identifying/designing some useful reports/charts seems to be blocking me
[1:39pm] <sm> there are probably some standard ones I should use
[1:40pm] <sm> a graph of daily net worth is probably one of the simplest
[1:58pm] <sm> what else.. a chart of weekly expenses in key categories
[1:58pm] <sm> ditto, monthly
[1:58pm] <sm> a chart of monthly income
[1:59pm] <sm> those three should help me be more clear about cashflow status
[2:00pm] <sm> also I'd like something that shows me how much I am on top of financial tracking - how current my numbers are, when last reconciled etc - at a glance
[2:01pm] <sm> another simple one: current balances in all accounts
[2:01pm] <sm> those would be a great start
[2:04pm] <sm> daily net worth, weekly expense, monthly expense, monthly income, confidence/currentness report, and balance report
[2:05pm] <sm> let's see, which of those 6 would give most payoff right now
[2:05pm] <sm> probably 5
[2:06pm] <sm> how could I measure that ?
[2:06pm] <sm> number of days since last ledger entry..
[2:06pm] <sm> number of ledger entries in last 30 days (compared to average)
[2:07pm] <sm> number of days since last cleared checking entry (indicating an online reconcile)
[2:08pm] <sm> those would be a good start. How do I make those visual
[2:09pm] <sm> well I guess the first step is a script to print them
2007-08-04 18:51:45 +04:00
** data representation
*** http://www.python.org/dev/peps/pep-0327/
*** http://www.n-heptane.com/nhlab/repos/Decimal/
*** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs
*** http://www2.hursley.ibm.com/decimal/
2009-01-18 00:03:25 +03:00
** snippets
-- trace a MixedAmount
matrace :: MixedAmount -> MixedAmount
matrace a@(Mixed as) = trace (show as) a
-- normalise and trace a MixedAmount
nmatrace :: MixedAmount -> MixedAmount
nmatrace a = trace (show as) a where (Mixed as) = normaliseMixedAmount a
2009-09-30 06:17:03 +04:00
-- cabal test
import System.FilePath
main = defaultMainWithHooks $ simpleUserHooks { runTests = runTests' }
runTests' :: Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()
runTests' _ _ _ lbi = system testprog >> return ()
where testprog = (buildDir lbi) </> "hledger" </> "hledger test"
2009-02-25 08:24:05 +03:00
** http://lwn.net/Articles/314577/
** financial software
*** http://weberp.org
**** http://www.weberp.org/weberp/doc/Manual/ManualContents.php
2009-07-10 21:24:51 +04:00
** issues with pandoc's rst support
*** treats HOME's h2s as h1
*** quotes only first line of a :: literal block
*** doesn't support http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#indirect-hyperlink-targets
2009-09-30 06:17:03 +04:00
** must-read article on currency & capital gains accounting
http://www.mscs.dal.ca/~selinger/accounting/tutorial.html#1.2