Haskell Weekly News: February 10, 2008

Submitted by dons on Sat, 02/23/2008 - 2:55pm.

Welcome to issue 69 of HWN, a newsletter covering developments in the Haskell community.

A quick update HWN this week, with a gazillion new libraries on Hackage

Hackage

New and updated libraries in the Hackage library database.
  • WordNet 0.1.1. Uploaded by Max Rabkin. WordNet: Haskell interface to the WordNet database.

  • lazysmallcheck 0.1. Uploaded by Gwern Branwen. lazysmallcheck: A library for demand-driven testing of Haskell programs.

  • DrIFT 2.2.3. Uploaded by Gwern Branwen. DrIFT: Program to derive type class instances.

  • highlighting-kate 0.2. Uploaded by John MacFarlane. highlighting-kate: Syntax highlighting.

  • leksah 0.1. Uploaded by Juergen NicklischFranken. leksah: Genuine Haskell Face.

  • frag 1.1. Uploaded by Gwern Branwen. frag: 3-D First Person Shooter (FPS).

  • GoogleChart 0.2. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.

  • HFuse 0.1. Uploaded by Gwern Branwen. HFuse: HFuse is a binding for the Linux FUSE library.

  • GoogleChart 0.1. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.

  • Finance-Quote-Yahoo 0.5.0. Uploaded by Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.

  • binary-strict 0.3.0. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • Stream 0.2.3. Uploaded by Wouter Swierstra. Stream: A library for manipulating infinite lists..

  • Finance-Treasury 0.1.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.

  • Hedi 0.1. Uploaded by Paolo Veronelli. Hedi: Line oriented editor.

  • newports 1.1. Uploaded by Brad Clawsie. newports: List ports newer than N days on a FreeBSD system.

  • Finance-Treasury 0.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.

  • GPLib 0.0. Uploaded by Gwern Branwen. GPLib: Generic library for genetic programming.

  • nano-hmac 0.1.1. Uploaded by Hitesh Jasani. nano-hmac: Bindings to OpenSSL HMAC..

  • multiset 0.1. Uploaded by Twan VanLaarhoven. multiset: The Data.MultiSet container type.

  • hpodder 1.1.0. Uploaded by John Goerzen. hpodder: Podcast Aggregator (downloader).

  • bimap 0.2.1. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.

  • monadLib 3.4.4. Uploaded by Iavor Diatchki. monadLib: A collection of monad transformers..

  • IOSpec 0.2. Uploaded by Wouter Swierstra. IOSpec: A pure specification of the IO monad..

  • bimap 0.2. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.

  • strictify 0.1. Uploaded by Sterling Clover. strictify: Find a local optimum of strictness annotations..

  • heap 0.2.2. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • LDAP 0.6.4. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.

  • HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..

  • RJson 0.3.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • network-dns 0.1.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.

  • lcs 0.2. Uploaded by Ian Lynagh. lcs: Find longest common sublist of two lists.

  • tracker 0.1. Uploaded by Will Thompson. tracker: Client library for Tracker metadata database, indexer and search tool.

  • CC-delcont 0.2. Uploaded by Dan Doel. CC-delcont: Delimited continuations and dynamically scoped variables.

  • control-timeout 0.1.2. Uploaded by Adam Langley. control-timeout: Timeout handling.

  • network-dns 0.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.

  • binary-strict 0.2.4. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • heap 0.1.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • HCL 1.3. Uploaded by Justin Bailey. HCL: High-level library for building command line interfaces..

  • yi 0.3. Uploaded by Jean PhilippeBernardy. yi: The Haskell-Scriptable Editor.

  • binary-strict 0.2.3. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • heap 0.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.

  • pureMD5 0.1.2. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..

  • RJson 0.3.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • template 0.1.1.1. Uploaded by Johan Tibell. template: Simple string substitution.

  • network-bytestring 0.1.1.1. Uploaded by Johan Tibell. network-bytestring: Fast and memory efficient low-level networking.

  • ftphs 1.0.4. Uploaded by John Goerzen. ftphs: FTP Client and Server Library.

  • mersenne-random-pure64 0.1.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.

  • Diff 0.1. Uploaded by Sterling Clover. Diff: O(ND) diff algorithm in haskell..

  • crack 0.1. Uploaded by Trevor Elliott. crack: A haskell binding to cracklib.

  • miniplex 0.3.3. Uploaded by Lukas Mai. miniplex: simple 1-to-N interprocess communication.

  • colock 0.2.2. Uploaded by Lukas Mai. colock: thread-friendly file locks that don't block the entire program.

  • mersenne-random-pure64 0.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.

  • network-rpca 0.0.1. Uploaded by Adam Langley. network-rpca: A cross-platform RPC library.

  • xmonad-contrib 0.6. Uploaded by Spencer Janssen. xmonad-contrib: Third party extensions for xmonad.

  • xmonad 0.6. Uploaded by Spencer Janssen. xmonad: A tiling window manager.

  • codec-libevent 0.1.2. Uploaded by Adam Langley. codec-libevent: Cross-platform structure serialisation.

  • bytestringparser 0.3. Uploaded by Bryan OSullivan. bytestringparser: Combinator parsing with Data.ByteString.Lazy.

  • HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..

  • value-supply 0.1. Uploaded by Iavor Diatchki. value-supply: A library for generating values without having to thread state..

  • derive 0.1.1. Uploaded by Neil Mitchell. derive: A program and library to derive instances for data types.

  • control-timeout 0.1.1. Uploaded by Adam Langley. control-timeout: Timeout handling.

  • mkcabal 0.4.1. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.

  • regexpr 0.2.9. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • mtlparse 0.0.0.5. Uploaded by Yoshikuni Jujo. mtlparse: parse library use mtl package.

  • cgi 3001.1.5.2. Uploaded by Bjorn Bringert. cgi: A library for writing CGI programs.

  • xhtml 3000.0.2.2. Uploaded by Bjorn Bringert. xhtml: An XHTML combinator library.

  • harpy 0.4. Uploaded by Martin Grabmueller. harpy: Runtime code generation for x86 machine code.

  • editline 0.2. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..

  • hmatrix 0.2.0.0. Uploaded by Alberto Ruiz. hmatrix: Linear algebra and numerical computations.

  • regexpr 0.2.8. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • pcre-light 0.3. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.

  • mersenne-random 0.1. Uploaded by Donald Stewart. mersenne-random: Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister.

  • AvlTree 2.4. Uploaded by Adrian Hey. AvlTree: Balanced binary trees using AVL algorithm..

  • fec 0.1.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.

  • COrdering 2.1. Uploaded by Adrian Hey. COrdering: An algebraic data type similar to Prelude Ordering..

  • i18n 0.3. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.

  • binary-strict 0.2.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • regexpr 0.2.6. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • RJson 0.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • regexpr 0.2.5. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • fec 0.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.

  • dataenc 0.10.2. Uploaded by Magnus Therning. dataenc: Data encoding library.

  • regexpr 0.2.3. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • regexpr 0.2.2. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • reactive 0.3. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.

  • regexpr 0.2.1. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • djinn 2008.1.18. Uploaded by Lennart Augustsson. djinn: Generate Haskell code from a type.

  • Etherbunny 0.3. Uploaded by Nicholas Burlett. Etherbunny: A network analysis toolkit for Haskell.

  • regexpr 0.2.0. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..

  • regexpr 0.1.7. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.

  • reactive 0.2. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.

  • srcinst 0.8.10. Uploaded by John Goerzen. srcinst: Build and install Debian packages completely from source.

  • dfsbuild 1.0.2. Uploaded by John Goerzen. dfsbuild: Build Debian From Scratch CD/DVD images.

  • darcs-buildpackage 0.5.12. Uploaded by John Goerzen. darcs-buildpackage: Tools to help manage Debian packages with Darcs.

  • anydbm 1.0.5. Uploaded by John Goerzen. anydbm: Interface for DBM-like database systems.

  • HDBC-sqlite3 1.1.4.0. Uploaded by John Goerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.

  • HDBC-postgresql 1.1.4.0. Uploaded by John Goerzen. HDBC-postgresql: PostgreSQL driver for HDBC.

  • HDBC-odbc 1.1.4.0. Uploaded by John Goerzen. HDBC-odbc: ODBC driver for HDBC.

  • magic 1.0.7. Uploaded by John Goerzen. magic: Interface to C file/magic library.

  • ListLike 1.0.1. Uploaded by John Goerzen. ListLike: Generic support for list-like structures.

  • LDAP 0.6.3. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.

  • hg-buildpackage 1.0.4. Uploaded by John Goerzen. hg-buildpackage: Tools to help manage Debian packages with Mercurial.

  • HDBC 1.1.4. Uploaded by John Goerzen. HDBC: Haskell Database Connectivity.

  • HSH 1.2.5. Uploaded by John Goerzen. HSH: Library to mix shell scripting with Haskell programs.

  • editline 0.1. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..

  • pureMD5 0.1.1. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..

  • hmp3 1.4. Uploaded by Donald Stewart. hmp3: An ncurses mp3 player written in Haskell.

  • binary-strict 0.2.1. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • GLFW 0.3. Uploaded by Paul Liu. GLFW: A binding for GLFW, An OpenGL Framework.

  • hbeat 0.1.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..

  • hackage2hwn 0.2.1. Uploaded by Donald Stewart. hackage2hwn: Convert hackage = Hackage RSS feeds to Haskell Weekly News format.

  • tagsoup 0.4. Uploaded by Neil Mitchell. tagsoup: Parsing and extracting information from (possibly malformed) HTML documents.

  • HaXml 1.19.2. Uploaded by Malcolm Wallace. HaXml: Utilities for manipulating XML documents.

  • Emping 0.3.1. Uploaded by Hans VanThiel. Emping: derives heuristic rules from nominal data.

  • hbeat 0.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..

  • Imlib 0.1.1. Uploaded by Cale Gibbard. Imlib: Added by CaleGibbard, Sun Jan 13 22:26:59 PST 2008..

  • pcre-light 0.2. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.

  • YamlReference 0.8. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.

  • ContArrow 0.0.4. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.

  • ContArrow 0.0.3. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.

  • mkcabal 0.4. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.

  • pcre-light 0.1. Uploaded by Donald Stewart. pcre-light: A lightweight binding to PCRE.

  • YamlReference 0.7. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.

  • Crypto 4.1.0. Uploaded by Dominic Steinitz. Crypto: DES, Blowfish, AES, TEA, SHA1, MD5, RSA, BubbleBabble, Hexdump, Support for Word128, Word192 and Word256 and Beyond, PKCS5 Padding, Various Encryption Modes e.g. Cipher Block Chaining all in one package..

  • containers 0.1.0.1. Uploaded by Ross Paterson. containers: Assorted concrete container types.

  • ConfigFile 1.0.4. Uploaded by John Goerzen. ConfigFile: Configuration file reading & writing.

  • MissingH 1.0.0. Uploaded by John Goerzen. MissingH: Large utility library.

  • hslogger 1.0.4. Uploaded by John Goerzen. hslogger: Versatile logging framework.

  • hslogger 1.0.2. Uploaded by John Goerzen. hslogger: Versatile logging framework.

  • BerkeleyDB 0.3. Uploaded by John McCall. BerkeleyDB: Bindings for Berkeley DB v1.x.

  • BitSyntax 0.3.2. Uploaded by Adam Langley. BitSyntax: A module to aid in the (de)serialisation of binary data.

  • Hashell 0.15. Uploaded by Gwern Branwen. Hashell: Simple shell written in Haskell.

  • binary-strict 0.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.

  • Shu-thing 1.1. Uploaded by Gwern Branwen. Shu-thing: A vector shooter game.

  • zlib 0.4.0.2. Uploaded by Duncan Coutts. zlib: Compression and decompression in the gzip and zlib formats.

  • i18n 0.2. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.

  • pandoc 0.46. Uploaded by John MacFarlane. pandoc: Conversion between markup formats.

  • hscolour 1.9. Uploaded by Malcolm Wallace. hscolour: Colourise Haskell code..

  • regex-pcre 0.94.1. Uploaded by ChrisKuklewicz. regex-pcre: Replaces/Enhances Text.Regex.

  • regex-posix 0.93.1. Uploaded by Chris Kuklewicz. regex-posix: Replaces/Enhances Text.Regex.

  • regex-base 0.93.1. Uploaded by Chris Kuklewicz. regex-base: Replaces/Enhances Text.Regex.

  • regex-compat 0.91. Uploaded by Chris Kuklewicz. regex-compat: Replaces/Enhances Text.Regex.

  • haddock 2.0.0.0. Uploaded by David Waern. haddock: Added by DavidWaern

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Peter: I hardly know Haskell, but I can already write some code much faster and easier than I could do in C/C++ (and I've been programming 2 decades in that language)
  • Miguel Mitrofanov: Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN'
  • Achim Schneider: The essence of non-strictness, though, is another kind of story. Like a golem plowing half of the country until you remember that you placed him a bit absent-mindedly into your backyard and said 'plow', that still won't plow mountains. The essence of strictness is easy, though: get stuck on a stone, fall over and continue moving until you break.
  • monochrom: OCaml tells you 'map f xs is bad because it takes O(n) space'. Haskell tells you 'map f xs' is good because it takes O(1) space
  • ddarius: It says *right on the box* that it it's intended for *both* research and applications.
  • Clifford Beshers: Why Haskell? Medical researchers announced today that MRI studies reveal that the structure of the human brain is significantly different in adolescence than adulthood.
  • Larry O'Brien: I really had a hard time refactoring my Ruby into a packrat parser. This was due, in no small part, because of the difficulty in understanding the types being built-up in the data structure. The paper, in explicitly-typed Haskell: clear as a bell. My code's behavior on unit tests: virtually indistinguishable from random.
  • SuperGrade: Haskell kind of herds you into functional programming. There are advantages to this manner of coding, and I'm getting to thinking you should attempt code this way almost all of the time, regardless of language.
  • Berlin Brown: Haskell is readable, fast, and expressive. I like it.
  • Yaakov Nemoy: Changing the type of a function in Python will lead to strange runtime errors that take some work to debug, whereas, when I tinker with a program in Haskell, I already know it will work once it compiles.
  • Michael Reid: Learning Haskell has completely reversed my feeling that static typing is an old outdated idea. The power of Haskell's type system makes it feel like you are programming in a dynamic language to some degree, yet all of it is type-checked, and that is just *really* cool.
  • weavejester: I've come across many parser generators that are a dream to work with in comparison to lex and yacc. The best one I've found so far is Haskell's Parsec.
  • David Roundy: What's the good of having a haskell-programming computational linguist on board if we can't get static compile-time guarantees of grammatical correctness?
  • Bulat Ziganshin: When FP just pass all the functions and data required for specialization of generic algorithm, OOP provides interfaces, virtual functions, anonymous classes, delegates and lots of other interesting ways to hide the fact of lack of first-class functions :)
  • [Douglas] Adams: was interested in computing --- I think his reaction to being told about functional programming was to wonder what non-functional programming might be.
  • ezekiel: I find Haskell to be like Lisp and APL and Python all put together in a way that leads me quickly to a solid result. Other languages work, but the road to the result is bumpier.
  • AlanYx: I've found that Haskell's uber-strong, static type system does help me be productive, because it increases the class of bugs that can be found at compile time, forces thinking at a higher level, and can help avoid edits to existing code breaking things elsewhere in the code
  • anonymous: Closures in today's world are a 'language geek' feature. Unless done extremely carefully and in a way that supports the various skill levels of developers, they end up being unusable and unsupportable by anything less than computer language savants. In their inherent obscurity and complexity, 'language geek' style closures are about as anti-Java as you can get.
  • anonymous: I work in a Smalltalk shop, where we extend and maintain an application that has been around over a decade. During the maintenance part of our job, it would be really nice to have type declarations on variables. For maintenance, the more dependable information we have, the better! The fewer things that can escape as runtime exceptions, the better!
  • consultant barbie: Languages are hard. Let's write web frameworks and go shopping!

About the Haskell Weekly News

New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.

To help create new editions of this newsletter, please see the contributing information. Send stories to dons at galois.com. The darcs repository is available at darcs get http://code.haskell.org/~dons/code/hwn/