Haskell Weekly News: May 07, 2007
Welcome to issue 62 of HWN, a weekly newsletter covering developments in the Haskell community.
This week sees the release of Atom, a hardware description language embedded in Haskell, along with the usual suite of new libraries and tools. In addition, The Monad.Reader Issue 7 was released, and the hackage upload festival continues unabated.
Atom: Hardware Description in Haskell. Tom Hawkins announced the release of Atom, a high-level hardware description language embedded in Haskell, compiles conditional term rewriting systems into conventional HDL.
The Monad.Reader: Issue 7. Wouter Swierstra announced the latest issue of The Monad.Reader. The Monad.Reader is a quarterly magazine about functional programming. It is less-formal than journal, but somehow more enduring than a wiki page or blog post.
HDBC: Haskell Database Connectivity. John Goerzen announced that HDBC 1.1.2 is now released. HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases.
photoname: manipulate photos using EXIF data. Dino Morelli announced the release of photoname, a command-line utility for renaming and moving photo image files. The new folder location and naming are determined by two things: the photo shoot date information contained within the file's EXIF tags and the usually-camera-assigned serial number, often appearing in the filename.
RSA-Haskell: Command-line Cryptography. David Sankel announced the release of RSA-Haskell, a collection of command-line cryptography tools and a cryptography library written in Haskell. It is intended to be useful to anyone who wants to secure files or communications or who wants to incorporate cryptography in their Haskell application.
Haskell modes for Vim. Claus Reinke summarised the various Haskell/Vim support currently available
Haskell'This section covers the Haskell' standardisation process.
HackageThis week's new libraries in the Hackage library database.
BitSyntax-0.2. Adam Langley. A simple function for the construction of binary data.
filepath-1.0. Neil Mitchell. Library for manipulating FilePath's in a cross platform way.
Chart-2007.3.5. Tim Docker A library for generating 2D Charts and Plots.
FileManip-0.1. Bryan O'Sullivan A Haskell library for working with files and directories.
hsns-0.5.2. Austin Seipp A network sniffer written in a purely fun language.
template-0.1. Johan Tibell Simple string substitution library that supports dollar-based substitution.
ASN1-0.0.1. Dominic Steinitz ASN.1 suppport for X.509 identity and attribute certificates, PKCS8, PKCS1v15.
The Proper Definition of (evaluate :: a -> IO a). Isaac Dupree described a variant of evaluate with modified semantics to the current implementation.
Why is Data.Set not a monad?. Dan Doel documented the reasons why Data.Set is not currently an instance of Monad.
Chaos. Andrew Coppin announced chaos, a fun image generating mystery program.
The Functional Pearls. Don Stewart collected the functional pearls known to be available online, on to a single page on the Haskell wiki.
Blog noiseHaskell news from the blogosphere.
- HUG: Nested Data Parallelism in Haskell
- HUG: London Haskell User Group
- New York Functional Programmers meeting: roundup
- Python-style string split in Haskell
- Thinking in types
- Using the Haskell package system
- Fixed precision, an update
- Use of Text.XHtml.Strict for Outputting XHTML
- Idiom: Plan for Currying
- Bowling in Haskell
- The Trivial Monad
- Homeland Security Threat Level Monad
- Monads as universe helpers
- Understanding comonads
- Coding in Haskell: conciseness
- Functional programming in Wall Street
- Phantom Types for Real Problems
- Haskell rocks
- Advertising the ICFP Programming Contest
- Haskell wikibook
- Roll Your Own Window Manager: Part 1: Defining and Testing a Model
- Haskell and the Type Calculus: or, the Good -> Bad -> Ugliness of Types
- FileManip, an expressive Haskell library for manipulating files
- Programming in Haskell
- Parsing JSON in Haskell
- Namespace confusion
- A Scheme parser in Haskell
- Simple performance analysis
- Playing with Haskell unsafely
- repeat and sequence
- Haskell and C: functions returning more than one value
Quotes of the Week
- Oleg K: So, `bind' is `let' and monadic programming is equivalent to programming in the A-normal form. That is indeed all there is to monads
- kc5tja: Premature evil is the root of all optimization
- Tommah: Remember, kids: if you program in a language with side effects, the terrorists win.
- ndm: Comments are for people who can't sense what their code does from the indentation
- jcreigh: GHC has lots of interesting features above Haskell98, I've noticed. 'You can take the red pill or the blue pill...' 'Hmm. What's the green pill?' 'What? Oh. That's GHC.'
- schluehk: It's about a variant of the other big Haskell credo: once it compiles it works. Once you have written a prototype you have also a spec. If this is not agile I don't know what? It is a quite remarkable inversion. Formerly people wanted tools that are so versatile that they let them express almost everything with great ease and where they didn't care a lot about speed optimizations and corner cases in the early iterations. Now people want tools that restricts intentionally their expressivity to let them do big upfront design as source code. They want to be guided to initial perfection. Let's face it: Haskell has quite some momentum in the dialectic move.
Code WatchNotable new features and bug fixes to the Haskell compilers.
Thu May 3 06:19:55 PDT 2007. Simon Marlow. Add history/trace functionality to the GHCi debugger. The debugger can now log each step of the evaluation without actually stopping, keeping a history of the recent steps (currently 50). When a (real) breakpoint is hit, you can examine previous steps in the history (and their free variables) using the :history, :back and :forward commands.
Wed May 2 09:34:57 PDT 2007. Simon Peyton-Jones. Make records work properly with type families. This fixes Trac #1204. There's quite a delicate interaction of GADTs, type families, records, and in particular record updates.
About the Haskell Weekly News
Each week, 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 cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn