Personal tools


From HaskellWiki

< HacPDX
Revision as of 06:48, 26 September 2009 by EchoNolan (Talk | contribs)

Jump to: navigation, search


1 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

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

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

3.1 Other todos

  • Add website and darcs repo to Crypto.cabal.
  • Use test-framework.
  • Don't build tests by default - use a flag.
  • Is 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? gives out trac hosting.
  • Holy crap that is a lot of warnings.
  • QuickCheck 2?
  • Echo hates Darcs with a passion.