Proposed Projects for HacPDX
Projects you intend to tackle.
|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|
|judy||Fast, mutable collection types||dons|
Additional Project Suggestions
Projects you'd consider, but depends on the interest of other attendees.
|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 state of the hash function. Dependent on the length of the -- message. Maybe we should let the hash function determine the precision -- or absence of the length. initial :: Word64 -> 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.
- Add website and darcs repo to Crypto.cabal.
- Use test-framework.
- Don't build tests by default - use a flag.
- Is email@example.com 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.