hledger/NOTES
Simon Michael af702af409 comment
2007-03-14 00:16:33 +00:00

117 lines
3.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

* TO DO
** feature: read timelog files
*** timelog parser
handle time amounts
switch to Data.Time.*
fix errors
- read seconds to pico
try System.Time ?
feature: read timelog files
timelog parser
handle time amounts
calculate time intervals
find datetime type
auto-generate missing clock-out
** optimization: add CookedLedger caching txns etc.
*** profile again
** speed
*** profile, refactor, optimize
CookedLedger caching acct txns, boring status etc.
refactor apis
** 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
*** 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 ?
* 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