From HaskellWiki
< HacPDX
Revision as of 17:53, 26 September 2009 by DonStewart (talk | contribs)

Jump to: navigation, search

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
judy Fast, mutable collection types dons

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 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.

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.