hledger/NOTES

124 lines
4.1 KiB
Plaintext
Raw Normal View History

2007-07-02 18:36:58 +04:00
hledger project notes
2007-05-01 09:34:49 +04:00
* TO DO
2007-05-01 11:15:53 +04:00
** make balance fast
2007-07-02 18:36:58 +04:00
*** TODO understand balance report execution, slowness, solution
******** transactionsInAccountNamed Account 12 0.0 0.1 66.7 18.7
********* ledgerTransactionsMatching Ledger 24 0.0 8.4 66.7 18.6
********** matchTransactionDescription EntryTransaction 48 0.0 0.7 0.0 0.7
*********** description EntryTransaction 48 0.0 0.0 0.0 0.0
********** matchTransactionAccount EntryTransaction 864 66.7 7.3 66.7 7.3
*********** account EntryTransaction 864 0.0 0.0 0.0 0.0
2007-05-02 11:37:41 +04:00
*** make it fast
2007-07-02 18:36:58 +04:00
**** redo/get CookedLedger code merged and working
2007-05-02 11:37:41 +04:00
** make some decent tests
** bugs
*** space after account makes it a new account
*** extra blank line required at end of file
2007-05-01 09:34:49 +04:00
** basic features
*** print
*** !include
*** , in thousands
*** -j and -J graph data output
** advanced features
*** handle mixed amounts
*** 3.0-style elision
*** -p period expressions
*** -d display expressions
*** read gnucash files
*** other args, directives
** new features
2007-05-01 11:15:53 +04:00
*** feature: read timelog files
**** fix up Amounts
***** allow flexible display by currency
***** allow parsing by currency
***** fix arithmetic
**** timelog parser
handle time amounts
switch to Data.Time.*
fix errors
- read seconds to pico
try System.Time ?
2007-05-01 09:34:49 +04:00
*** timelog simple format
*** auto-generate missing clock-out
*** graph automation
*** entry and smart data entry
*** incorporate timeclock features
*** better layout
** testing
*** better use of quickcheck/smallcheck
http://blog.codersbase.com/2006/09/01/simple-unit-testing-in-haskell/
*** ledger compatibility tests
** documentation
*** literate docs
*** better use of haddock
** marketing
*** set up as a cabal/hackage project following wiki howto ?
http://en.wikibooks.org/wiki/Haskell/Packaging
*** announce on haskell list, wiki
* things I want to know
** time
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 ?
** money
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 ?
2007-05-01 09:48:18 +04:00
* misc
** testing support
-- {- | looks in Tests.hs for functions like prop_foo and returns
-- the list. Requires that Tests.hs be valid Haskell98. -}
-- tests :: [String]
-- tests = unsafePerformIO $
-- do h <- openFile "src/Tests.hs" ReadMode
-- s <- hGetContents h
-- case parseModule s of
-- (ParseOk (HsModule _ _ _ _ ds)) -> return (map declName (filter isProp ds))
-- (ParseFailed loc s) -> error (s ++ ” ” ++ show loc)
-- {- | checks if function binding name starts with @prop_@ indicating
-- that it is a quickcheck property -}
-- isProp :: HsDecl -> Bool
-- isProp d@(HsFunBind _) = “prop_” `isPrefixOf` (declName d)
-- isProp _ = False
-- {- | takes an HsDecl and returns the name of the declaration -}
-- declName :: HsDecl -> String
-- declName (HsFunBind (HsMatch _ (HsIdent name) _ _ _:_)) = name
-- declName _ = undefined
-- mkCheck name = [| putStr (name ++ ": ")
-- >> quickCheck $(varE (mkName name)) |]
-- mkChecks [] = undefined -- if we don't have any tests, then the test suite is undefined right?
-- mkChecks [name] = mkCheck name
-- mkChecks (name:ns) = [| $(mkCheck name) >> $(mkChecks ns) |]
-- {-# OPTIONS_GHC -fno-warn-unused-imports -no-recomp -fth #-}
-- runTests :: IO ()
-- runTests = $(mkChecks tests)
-- ghc --make Unit.hs -main-is Unit.runTests -o unit