docs: notes cleanup

This commit is contained in:
Simon Michael 2010-05-20 19:14:44 +00:00
parent ed625a6abd
commit f4edcb5152

188
NOTES
View File

@ -1,48 +1,22 @@
hledger project notes hledger project notes
===================== =====================
* principles * todo/backlog
** 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
** pair programming/code review
** inspiration
"...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
"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
* to do
** packaging, installability
*** easier installation
**** all platforms
***** binary build/publish process
***** reduce dependencies
***** split packages ?
**** linux
***** keep up with debian/ubuntu haskell packagers
**** mac
***** easy data entry, then
***** easy installer
***** easy startup
**** windows
***** easy data entry, then
***** easy installer
***** easy startup
** documentation, marketing ** documentation, marketing
*** developer notes & log
*** website hakyll conversion
**** add tables of contents
**** integrate binaries page ?
*** manual
*** add missing *** add missing
**** hledger/ledger feature matrix **** faq
**** examples/how-tos
**** hledger/ledger comparison/feature matrix
**** blog posts
*** reduce *** reduce
*** aesthetics *** aesthetics
**** better screenshots/images **** better screenshots/images
***** use highslide
*** automation *** automation
**** keep blurbs in sync **** keep blurbs in sync
***** README file ***** README file
@ -91,17 +65,18 @@ clever tricks like the plague." --Edsger Dijkstra
***** a tour of hledger's code ***** a tour of hledger's code
**** ledger cooperation **** ledger cooperation
*** developer docs *** developer docs
**** developer notes & log
**** roadmap **** roadmap
***** 1.0 ***** 1.0
culmination of 0.x releases - stable/usable/documented culmination of 0.x releases - stable/usable/documented
followup releases are 1.01, 1.02.. followup releases are 1.01, 1.02..
GHC 6.10/HP 2009 primary platform GHC 6.12/HP 2010 primary platform
GHC 6.12/HP 2010 also supported if possible GHC 6.10/HP 2009 also supported if possible
GHC 6.8 might work for core features, but not officially supported GHC 6.8 might work for core features, but not officially supported
separate ledger package ? license ? separate ledger package ? license ?
separate vty, web packages ? separate vty, web packages ?
support plugins ? support plugins ?
web: loli+hsp+hack+simpleserver/happstack, or yesod+hstringtemplate+wai+simpleserver(/happstack) ? web: loli+hsp+hack+simpleserver/happstack, or yesod+hstringtemplate+wai+simpleserver/happstack ?
add: completion ? add: completion ?
chart: register charts ? chart: register charts ?
histogram: cleaned up/removed histogram: cleaned up/removed
@ -115,7 +90,6 @@ plugins
Decimal Decimal
binaries for all platforms binaries for all platforms
**** internal api docs **** internal api docs
**** external api docs **** external api docs
**** DEVGUIDE **** DEVGUIDE
@ -135,12 +109,11 @@ hledger.org/{list,bugs}/* also works
****** coding ****** coding
****** funding process ****** funding process
***** reference ***** reference
****** unsafe things which may fail at runtime ****** unsafe things which may fail at runtime include..
******* incomplete pattern matching ******* incomplete pattern matching
******* error ******* error
******* printf ******* printf
******* read ******* read
**** project notes
**** functional programming **** functional programming
hledger is written in the Haskell programming language; hledger is written in the Haskell programming language;
it demonstrates a pure functional implementation of ledger. it demonstrates a pure functional implementation of ledger.
@ -348,6 +321,23 @@ competitors/fellow niche inhabitants
most haskellers have never heard of hledger, sounds arrogant or hubristic to talk of charging for it most haskellers have never heard of hledger, sounds arrogant or hubristic to talk of charging for it
**** home edition **** home edition
**** real-time project ledger
** packaging, installability
*** easier installation
**** all platforms
***** binary build/publish process
***** reduce dependencies
***** split packages ?
**** linux
***** keep up with debian/ubuntu haskell packagers
**** mac
***** easy data entry, then
***** easy installer
***** easy startup
**** windows
***** easy data entry, then
***** easy installer
***** easy startup
** testing ** testing
*** documentation *** documentation
**** site up, current **** site up, current
@ -387,12 +377,11 @@ competitors/fellow niche inhabitants
**** usability **** usability
**** download & usage stats **** download & usage stats
** errors ** errors
*** balance: stack space overflow *** balance: stack space overflow on timelog entries with colons
<<< <<<
i 2009/01/02 10:18:26 work:business:systems:website:outage i 2010/1/1 09:15:00 a:b
o 2009/01/02 10:35:03 o 2010/1/1 09:45:00
>>>2
$ hours -p 2007 bal
Stack space overflow: current size 8388608 bytes. Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize' to increase it. Use `+RTS -Ksize' to increase it.
@ -412,6 +401,15 @@ Commodities : 2 (h, p)
$ hours reg ...Nx100Mb... $ hours reg ...Nx100Mb...
*** register: with reporting interval and depth, should aggregate deeper txns to specified depth *** register: with reporting interval and depth, should aggregate deeper txns to specified depth
*** 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
*** print: virtual parentheses/brackets throw off alignment *** print: virtual parentheses/brackets throw off alignment
<<< <<<
2009/01/27 (1/2009) Foobar 2 2009/01/27 (1/2009) Foobar 2
@ -426,15 +424,6 @@ $ hours reg ...Nx100Mb...
VAT -5700.00 USD VAT -5700.00 USD
VLL_VAT -1083.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 *** parsing: misleading error when final newline missing
hledger -f- balance hledger -f- balance
<<< <<<
@ -482,14 +471,20 @@ Error: Day of month is not valid for year
*** convert: rules file can't have blank lines after last data *** convert: rules file can't have blank lines after last data
*** vty: left arrow from register view doesn't show full list of accounts ** refactoring, cleanup
** refactoring, code cleanup
*** more modularity *** more modularity
**** packages/namespace
***** make cli reusable
****** balance sheet add-on script
***** more package splits
****** hledger-web
****** hledger-vty
****** makefile review/update
**** plugin strategy **** plugin strategy
**** export lists **** export lists
**** graph and reduce dependencies **** graph and reduce dependencies
*** clarify levels of abstraction *** clarify levels of abstraction
**** balance sheet view - data model, view layout **** web ui balance sheet view - data model, view layout
**** hledger web framework - define routes, handlers/views/actions/controllers/presenters, skins/styles.. **** hledger web framework - define routes, handlers/views/actions/controllers/presenters, skins/styles..
**** happstack - ? happstack api.. **** happstack - ? happstack api..
**** hledger app platform - hledger.hs, Options, Utils, withLedgerDo.. **** hledger app platform - hledger.hs, Options, Utils, withLedgerDo..
@ -621,6 +616,24 @@ plugins can be discovered/loaded by module path or by loading files directly
* misc * misc
** principles
*** we aim to make reliable, maintainable, usable, useful software, sustainably.
*** "bugs" are errors, as in the programmers messed up
*** docs before packaging before tests before fixes before refactoring before features
*** automate
*** measure
*** test continuously, test everything
*** less is more
*** code review/pair programming
*** inspiration
"...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
"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
** things I want to know ** things I want to know
*** time *** time
where have I been spending my time in recent weeks ? where have I been spending my time in recent weeks ?
@ -665,7 +678,21 @@ are there any cashflow, tax, budgetary problems looming ?
*** http://www.n-heptane.com/nhlab/repos/Decimal/ *** http://www.n-heptane.com/nhlab/repos/Decimal/
*** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs *** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs
*** http://www2.hursley.ibm.com/decimal/ *** http://www2.hursley.ibm.com/decimal/
** snippets ** docs
*** http://en.wikibooks.org/wiki/Accounting
*** http://books.google.com/books?id=4V8pZmpwmBYC&lpg=PP1&dq=analysis%20patterns&pg=PA95#v=onepage&q&f=false
*** lwn grumpy editor articles
**** http://lwn.net/Articles/149383/
**** http://lwn.net/Articles/153043/
**** http://lwn.net/Articles/233627/
**** http://lwn.net/Articles/314577/
**** http://lwn.net/Articles/387967/ (free after 5/27)
** software
*** http://gnucash.org
*** http://www.xtuple.com/postbooks
*** http://weberp.org
**** http://www.weberp.org/weberp/doc/Manual/ManualContents.php
** code snippets
-- trace a MixedAmount -- trace a MixedAmount
matrace :: MixedAmount -> MixedAmount matrace :: MixedAmount -> MixedAmount
matrace a@(Mixed as) = trace (show as) a matrace a@(Mixed as) = trace (show as) a
@ -681,17 +708,14 @@ runTests' :: Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()
runTests' _ _ _ lbi = system testprog >> return () runTests' _ _ _ lbi = system testprog >> return ()
where testprog = (buildDir lbi) </> "hledger" </> "hledger test" where testprog = (buildDir lbi) </> "hledger" </> "hledger test"
** http://lwn.net/Articles/314577/
** financial software
*** http://weberp.org
**** http://www.weberp.org/weberp/doc/Manual/ManualContents.php
** issues with pandoc's rst support ** issues with pandoc's rst support
*** treats HOME's h2s as h1 *** treats HOME's h2s as h1
*** quotes only first line of a :: literal block *** quotes only first line of a :: literal block
*** doesn't support http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#indirect-hyperlink-targets *** doesn't support http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#indirect-hyperlink-targets
** must-read article on currency & capital gains accounting ** must-read article on currency & capital gains accounting
http://www.mscs.dal.ca/~selinger/accounting/tutorial.html#1.2 http://www.mscs.dal.ca/~selinger/accounting/tutorial.html#1.2
** fabrice niessen ** feedback
*** fabrice niessen
+For me, what would be very useful for a 1.0 version would be: +For me, what would be very useful for a 1.0 version would be:
+ +
+- @check directive (see beancount), but implemented as a comment for ledger, +- @check directive (see beancount), but implemented as a comment for ledger,
@ -712,3 +736,35 @@ http://www.mscs.dal.ca/~selinger/accounting/tutorial.html#1.2
+ heading and producing reports through Org, which is 1000x better). Results + heading and producing reports through Org, which is 1000x better). Results
+ soon. + soon.
+ +
* journal
** 2010
*** 5/4
**** balance sheet pomodoro 1
started balance sheet script
began refactoring for importable Hledger.Cli.*
set up missing tools on netbook: haskell-mode
adapt to distro & ghc 6.12 upgrade
install missing cabal packages
tighten dependency to avoid testpack 2.0 api change
ghc-pkg dump error
**** balance sheet pomodoro 2
set up work log
adapt to distro & ghc 6.12 upgrade: ghc-pkg dump error (cabal clean)
tools setup: hasktags
move Options to Hledger.Cli
got trivial balancesheet script working
deal with darcs mv screwup
*** 5/6
**** review/cleanup pomodoro
review/record pending changes
develop work log/backlog
website hakyll conversion
*** 5/19
researched current web libs
finished move to Hledger module space
cleaned up notes
*** 5/20
converted manual to markdown
more detailed installation docs