Difference between revisions of "HacPDX/Projects"
< HacPDX
Jump to navigation
Jump to search
Line 65: | Line 65: | ||
==Crypto 5.0 notes== |
==Crypto 5.0 notes== |
||
− | TomMD's design for a digest class. |
+ | TomMD's design for a digest class. From memory. |
<haskell> |
<haskell> |
||
− | class Digest d where |
+ | class Digest d s | d -> s where |
+ | -- Associated types are the new hotness. Should we be using them? |
||
size :: d -> Int -- Size of a digest |
size :: d -> Int -- Size of a digest |
||
− | + | extract :: d -> ByteString |
|
+ | initial :: s |
||
+ | -- Chunkwise hashing. Needed to implement efficient hashing of lazy |
||
+ | -- bytestrings and efficient hashing of streams in general. OOH, an |
||
+ | -- application for iteratees! Hooray! |
||
+ | hashsome :: ByteString -> s -> s |
||
+ | finalize :: s -> d |
||
+ | |||
+ | hash :: Digest d s => ByteString -> d |
||
+ | hash bs = finalize $ hashsome bs initial |
||
newtype SHA1 = SHA1 ByteString |
newtype SHA1 = SHA1 ByteString |
||
− | instance Digest SHA1 where |
+ | instance Digest SHA1 SHA1State where |
--Code goes here... |
--Code goes here... |
||
</haskell> |
</haskell> |
Revision as of 06:48, 26 September 2009
Proposed Projects for HacPDX
Projects you intend to tackle.
Project | Task Description | Participants |
---|---|---|
Network APIs | Investigate and test new APIs for potentially replacing network, network-bytestring, and network-fancy | TomMD |
HPDF | Additional hacking and c bindings | jmelesky |
HUnit | GUI. Maybe also text UI that isn't horrible | KimWallmark |
Additional Project Suggestions
Projects you'd consider, but depends on the interest of other attendees.
Project | Task Description | |
---|---|---|
Crypto Part I | Fix up the crypto library - use bytestring, fold in pureMD5/SHA/hecc, provide a new API | |
PNG | Work on Bart Massey's pure-Haskell PNG reading/writing library. Lots to do here. | |
ParseArgs | Clean up and extend a bit Bart Massey's parseargs package. | |
TCP Service | Extract and package the SMTP-style TCP server bits from Bart Massey's MiniChess server. | |
sqlite open_v2() | Add full support for SQlite's open_v2() call to the sqlite package. | |
HaRe | Get it compiling under ghc 6.10; cabalize it. | |
plugins | Tests and examples seem to fail with linking errors on the latest Haskell Platform. | |
wxHaskell | Get this to install on Arch Linux. | |
Kernel Modules | Finish porting a Linux driver to Haskell (mostly means working on the c2hs bindings) | |
Whiteout | I - Echo Nolan - have been working on a BitTorrent client library. It uses fun things like iteratees and STM. If anyone is interested in hearing about/working on it, I'm more than happy to give the guided tour. | |
Lambdabot | Everyone's favorite Haskell IRC bot. |
Crypto 5.0 notes
TomMD's design for a digest class. From memory.
class Digest d s | d -> s where
-- Associated types are the new hotness. Should we be using them?
size :: d -> Int -- Size of a digest
extract :: d -> ByteString
initial :: s
-- Chunkwise hashing. Needed to implement efficient hashing of lazy
-- bytestrings and efficient hashing of streams in general. OOH, an
-- application for iteratees! Hooray!
hashsome :: ByteString -> s -> s
finalize :: s -> d
hash :: Digest d s => ByteString -> d
hash bs = finalize $ hashsome bs initial
newtype SHA1 = SHA1 ByteString
instance Digest SHA1 SHA1State where
--Code goes here...
And similarly for block/stream ciphers and RNGs. Also, slurp up the various other crypto libs on hackage.
Other todos
- Add website and darcs repo to Crypto.cabal.
- Use test-framework.
- Don't build tests by default - use a flag.
- Is dominic.steinitz@blueyonder.co.uk still the correct contact email? If not, change it in CryptoHomePage.html
- Does the readme *really* have to be in TeX?
- Get a real bugtracker set up? code.haskell.org gives out trac hosting.
- Holy crap that is a lot of warnings.
- QuickCheck 2?
- Echo hates Darcs with a passion.