diff --git a/NOTES b/NOTES index e7a6c88cc..730734cf5 100644 --- a/NOTES +++ b/NOTES @@ -1,5 +1,15 @@ hledger project notes +* 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 +** 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 @@ -8,40 +18,30 @@ implementations were its consequences." --Niklaus Wirth skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague." --Edsger Dijkstra -We aim to make reliable, maintainable, usable software, sustainably. -- pair programming -- test-driven development -- fixes, docs, packaging, testing before features -- "bugs" are "errors", as in "the programmer messed up" -- test continuously and thoroughly (code, docs, speed, memory, release tests) -- less is more * to do -** errors -*** account name eliding and layout varies between commands and from ledger -*** vty: hledger ui dies showing non-ascii chars in commodity symbol -*** vty: hledger ui shows junk in gnome terminal -** testing -*** test for robust ledger file parsing -**** test all ledger file format features -**** clarify hledgerisms in file format - that hledger can read but ledger can't -**** run ledger 3 baseline tests -*** --compare (xml?) output with ledger's ? -*** build with -Wall and anything else useful -*** build with multiple ghc versions -*** cabal test -*** release tests -**** cabal install with: -***** ghc 6.8 -***** ghc 6.10.x -***** windows -***** linux -***** macos -***** no flags -***** happs flag -***** vty flag -** docs/marketing/packaging -*** streamline - less is more +** packaging, installability +*** easier installation +**** on all platforms +***** binary build/publish process +***** reduce dependencies +***** split packages ? +**** on linux +***** keep up with debian/ubuntu haskell packagers +**** on mac +***** easy data entry, then +***** easy installer +***** easy startup +**** on windows +***** easy data entry, then +***** easy installer +***** easy startup +** documentation, marketing +*** add missing +**** hledger/ledger feature matrix +**** regular-user home page +*** reduce +*** better screenshots/images *** automate **** keep blurbs in sync ***** README file @@ -52,13 +52,74 @@ We aim to make reliable, maintainable, usable software, sustainably. ***** gmane description ***** darcsweb description **** keep Options.hs and README option list in sync -**** discover commands for --help -**** accouncements -*** document smart dates, period expressions, display expressions +**** 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 +**** 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 +**** project notes +*** presenting/live demos *** develop funding process **** license change ? **** donate button, see chimoo guy **** funding document 2009/01 +***** text ======= funding ======= @@ -251,77 +312,64 @@ competitors/fellow niche inhabitants * ... ***** responses -***** 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 +****** 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 -**** qooxledger -*** better screenshots -*** screencasts -*** developer docs -**** style guide -***** see above -**** unsafe things which may fail at runtime -***** incomplete pattern matching -***** error -***** printf -*** cabal haddock -*** liveness -**** show feeds on site ? -***** commits (darcsweb) -**** weekly repo activity summary on list -**** available feeds -*** make installation easier -**** on all platforms -***** set up binary publishing -***** reduce dependencies -***** split packages ? -**** on linux -***** debian -***** ubuntu -**** on mac -***** ports -***** binary -**** on windows -***** binary -**** cabal packages after installing ghc 6.10.3, HP, hledger 0.5.1 -/usr/local/lib/ghc-6.10.3/./package.conf: - Cabal-1.6.0.3, GLUT-2.1.1.2, HTTP-4000.0.6, HUnit-1.2.0.3, - OpenGL-2.2.1.1, QuickCheck-1.2.0.0, array-0.2.0.0, base-3.0.3.1, - base-4.1.0.0, bytestring-0.9.1.4, cgi-3001.1.7.1, - containers-0.2.0.1, directory-1.0.0.3, (dph-base-0.3), - (dph-par-0.3), (dph-prim-interface-0.3), (dph-prim-par-0.3), - (dph-prim-seq-0.3), (dph-seq-0.3), editline-0.2.1.0, - extensible-exceptions-0.1.1.0, fgl-5.4.2.2, filepath-1.1.0.2, - (ghc-6.10.3), ghc-prim-0.1.0.0, haddock-2.4.2, - haskell-platform-2009.2.0.1, haskell-src-1.0.1.3, - haskell98-1.0.1.0, hpc-0.5.0.3, html-1.0.1.2, integer-0.1.0.1, - mtl-1.1.0.2, network-2.2.1, network-2.2.1.1, old-locale-1.0.0.1, - old-time-1.0.0.2, packedstring-0.1.0.1, parallel-1.1.0.1, - parsec-2.1.0.1, pretty-1.0.1.0, process-1.0.1.1, random-1.0.0.1, - regex-base-0.72.0.2, regex-compat-0.71.0.1, regex-posix-0.72.0.3, - rts-1.0, stm-2.1.1.2, syb-0.1.0.1, template-haskell-2.3.0.1, - time-1.1.2.4, time-1.1.3, unix-2.3.2.0, xhtml-3000.2.0.1, - zlib-0.5.0.0 -/home/simon/.ghc/i386-linux-6.10.3/package.conf: - csv-0.1.1, hledger-0.5.1, mtlparse-0.0.1, regex-base-0.93.1, - regex-compat-0.71.0.1, regex-pcre-0.94.1, regex-posix-0.72.0.3, - regexpr-0.5.1, split-0.1.1, testpack-1.0.2, utf8-string-0.3.4 -**** packages after hledger -fhapps -fvty - -*** 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 -** code cleanup -*** resources -http://community.haskell.org/~ndm/downloads/paper-hoogle_overview-19_nov_2008.pdf -> Design Guidelines +**** home edition +** testing +*** documentation +**** site up, current +**** demo up, current +**** haddock +**** doctests +*** 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 +*** allow comment lines immediately after postings +*** accept all real-world ledger files +*** account name eliding and layout varies between commands +*** vty issues 3, 4 +**** support upcoming vty development +*** happstack ipv6 issue 6 +** refactoring, code cleanup +*** switch to hack, support other backends +*** pair programming *** seek more modularity *** try export lists *** graph and reduce dependencies -*** pair programming -*** levels of abstraction +*** clarify levels of abstraction **** balance sheet view - data model, view layout **** hledger web framework - define routes, handlers/views/actions/controllers/presenters, skins/styles.. **** happstack - ? happstack api.. @@ -333,27 +381,31 @@ http://community.haskell.org/~ndm/downloads/paper-hoogle_overview-19_nov_2008.pd **** ghc - ghc 6.8, 6.10.. **** haskell 98 **** unix/windows/mac platform -** features/wishlist -*** actual & effective txn & posting dates +*** inspiration +http://community.haskell.org/~ndm/downloads/paper-hoogle_overview-19_nov_2008.pdf -> Design Guidelines +** features +*** easy data entry +*** assume current year as default +*** wide/customisable/consistent layout +*** simple --flat balance report format +*** better web ui/gui support +*** effective dates for postings +*** ledger-compatible xml output ? *** allow no command or unordered command with pattern args -*** --flat timelog balance report option for clients -*** alternative easy timelog format -*** better web gui *** nice reports with charts -*** data entry! +*** more automated bank data conversion +*** ofx download +*** easy timelog format *** watching a changing ledger -*** wide format *** more date syntax ? last nov, next friday, optional this, week of *** more period syntax ? every N days, biweekly -*** allow comment lines immediately after or within an entry *** accept multiple -f files *** more reliable tidy layout from print *** parse more file formats - gnucash, qif, ofx, csv.. *** i18n *** speed -**** optimisation -**** speed regression tests -*** plugins +*** clear interfaces/surfaces/plugin architecture + * misc ** things I want to know *** time @@ -412,3 +464,7 @@ nmatrace a = trace (show as) a where (Mixed as) = normaliseMixedAmount a ** financial software *** http://weberp.org **** http://www.weberp.org/weberp/doc/Manual/ManualContents.php +** 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