Haskell Weekly News: August 8, 2009
Welcome to issue 127 of HWN, a newsletter covering developments in the Haskell community.
Apologies for the long hiatus, mostly due to organizing Hac phi (which was a great success!). And I'm now going on vacation for a couple weeks and may have limited Internet access, so don't hold your breath for an issue of the HWN next week either... anyway, a ton of interesting stuff has happened over the past three weeks (of course), including a bunch of discussion on the Haskell-prime mailing list, a number of package releases, Haskell Platform discussion, and more.
bindings-common 0.2.1. Mauricio announced a new release of bindings-common, which offers basic code that provides a common design standard and common utilities for writing modules providing low-level foreign library bindings. The major new feature of this release is the availability of hsc2hs custom macros, and a corresponding reduction in code size.
Dyre - Dynamic Program Recompilation (Xmonad-style configuration). Will Donnelly announced the release of dyre, a library for xmonad-style program recompilation. It is based in spirit after the HConf library written by the Yi project, but with a focus on simple integration, state persistence as an optional feature, and Windows support.
nntp 0.0.2. Maciej Piechotka announced the release of nntp, a library to connect to nntp (i.e. mainly USENET) servers. This version represents a complete rewrite from version 0.0.1, including a new NntpT monad and basic support for XHDR.
OpenGL 220.127.116.11. Sven Panne announced a new version of the OpenGL package, which is now only a convenience layer upon the OpenGLRaw and GLURaw packages, written in in pure Haskell without the FFI. The latter two packages load the native libraries dynamically and do not rely on any C headers, making it possible to build all OpenGL-related packages even on machines without any installed native OpenGL support.
darcs 2.3.0. Petr Rockai announced a new stable release of darcs, version 2.3.0. This version includes a number of improvements and bugfixes over the previous stable release, 2.2. Moreover, work has been done to improve performance of "darcs whatsnew" for large repositories.
uacpid-0.0.4. Dino Morelli announced the release of uacpid, a daemon designed to be run in userspace that will monitor the local system's acpid socket for hardware events. These events can then be acted upon by handlers with access to the user's environment.
yst 0.2.1. John MacFarlane announced the release of yst, which generates static websites from YAML or CSV data files and StringTemplates. This approach combines the speed, security, and ease of deployment of a static website with the flexibility and maintainability of a dynamic site that separates presentation and data.
atom 0.1.0. Tom Hawkins announced the 0.1.0 release of Atom, a Haskell DSL for hard realtime applications. This release includes support for assertions and functional coverage to aid simulation and testing.
tkhs-0.1.* Presentation Utility. Yusaku Hashimoto announced the release of tkhs-0.1.*, a simple presentation utility. If you are thinking PowerPoint is overkill for your presentation, Tkhs may fit the purpose.
The Monad.Reader - Issue 14. Wouter Swierstra announced Issue 14 of The Monad.Reader. This issue contains three articles "Fun with Morse Code" by Heinrich Apfelmus, "Hieroglyph 2: Purely Functional Information Graphics Revisited" by Jefferson Heard, and "Lloyd Allison's Corecursive Queues: Why Continuations Matter" by Leon P Smith.
TBC: Testing By Convention. Peter Gammie announced the release of TBC, a test harness which has features complementary to existing harnesses: it attempts to compile and run all tests, even if some do not compile or run; and tests following conventions require a lot less boilerplate.
Elerea version 1.x.x. Patai Gergely announced an update of his FRP library, Elerea, along with some updates to the accompanying example programs. The interface was changed into a monadic-applicative hybrid that distinguishes stateful and stateless combinators for safety reasons: most importantly, the latcher was removed due to various practical issues, and it is replaced by much better behaved stateless higher-order constructs. The library is now capable of handling arbitrary higher-order signals.
graphviz-2918.104.22.168. Ivan Lazar Miljenovic announced a bug fix release of the graphviz package, which fixes a bug spotted by Srihari Ramanathan where the Dot representation of Color values were double-quoted when they shouldn't have been.
Leksah 0.6. Hamish Mackenzie announced the 0.6 release of Leksah, a Haskell IDE. New features include integrated GHCi based debugging, multi-window support, improved layout control, regular expression find and replace, ability to grep files in the current package, and improved Mac OS X integration.
Semantic Web. Vasili I. Galchin announced the cabalisation of Swish-0.2.1 (Semantic Web Inference uSing Haskell), a semantic web toolkit designed and implemented by Graham Klyne. The package now builds on GHC 6.8.2, with more improvements planned.
graphviz-2922.214.171.124. Ivan Lazar Miljenovic announced a bug-fix release to fix the problems with Either-based Attributes in the previous release (29126.96.36.199), spotted mainly by Zsolt Dollenstein.
cautious-file 0.1.1: Ways to write a file cautiously, to avoid data loss. Robin Green announced the first public release of cautious-file, which provides a writeFile function that has several advantages over Prelude.writeFile: it uses the recommended way of writing a file on POSIX, so as not to expose the user to the risk of data loss after a crash or power failure; and it uses a temporary, randomly-named file for writing and only overwrites an existing file once the write is complete.
Google Summer of Code
Progress updates from participants in the 2008 Google Summer of Code.
EclipseFP. Thomas Ten Cate is finally happy with his refactorings of the Scion client, and has done quite a bit of cleanup of compilation warnings and unit tests.
Improving the Haskell space profiling experience. Gergely Patai posted about segfaults with gtk2hs, and using Cairo instead of OpenGL for rendering, and has some nice screenshots of the profiling client.
haskell-src-exts -> haskell-src. Niklas Broberg has started working on comment support.
Implicit concatenation in list comprehensions. Max Bolingbroke started a discussion on a proposed syntax extension to allow multiple expressions on the left-hand side of a list comprehension, resulting in implicit concatenation.
Postdoc and Ph.D. position on 3gERP-project at DIKU. Fritz Henglein announced the availability of a postdoc position and a Ph.D. scholarship at the Department of Computer Science, University of Copenhagen (DIKU) within 3d generation enterprise resource planning systems (3gERP), a collaborative strategic research project with partners at DIKU (computer science), Copenhagen Business School (CBS, information systems) and Microsoft Development Center Copenhagen (MDCC, enterprise systems).
Blog noiseHaskell news from the blogosphere. Blog posts from people new to the Haskell community are marked with >>>, be sure to welcome them!
>>> Joel Ray King: Starting out with Haskell.
JP Moresmau: Yoohoo: mazes of monad is kind of popular!.
Don Stewart (dons): Haskell Package Popularity Rankings : August 2009.
David Amos: Where we've been, and where we're going.
>>> Michael Feathers: Functional Refactoring and "You Can't Get There From Here".
Magnus Therning: Updating GHC on Arch.
Tom Schrijvers: Monadic Constraint Programming with Gecode.
Luke Plant: Haskell string support.
Don Stewart (dons): The Haskell Platform 2009.2.0.2.
Gergely Patai: More profiling goodies.
Don Stewart (dons): Heuristics for Blessing Software Packages.
David Amos: How to count the number of positions of Rubik's cube.
Edward Kmett: Slides from Hac Phi: "All About Monoids".
Brent Yorgey: Primitive species and species operations, part II.
Magnus Therning: Making a choice from a list in Haskell, Vty (part 4).
Brent Yorgey: Primitive species and species operations.
Thomas ten Cate: The Green Bar.
Petr Rockai: soc progress 10.
Brent Yorgey: Hac phi roundup.
Brent Yorgey: More from Hac phi.
Roman Cheplyaka: CCC #5: Trial.
Eric Kow: some ideas for practical QuickCheck.
Nathan Sanders: Profiling in Haskell, part 2.
>>> Björn Winckler: Inverse functions in Haskell.
>>> Alex Handy: Everyone's talking about Haskell.
Niklas Broberg: Starting on the comment support .
Gergely Patai: Pango font rendering on an OpenGL canvas .
Brent Yorgey: Hac phi day 2.
Petr Rockai: Patch Formats.
Brent Yorgey: Introducing Math.Combinatorics.Species!.
Magnus Therning: Making a choice from a list in Haskell, Vty (part 3).
Michael Snoyman: Embedding files in a binary.
Darcs: darcs 2.3.0 is released!.
Petr Rockai: Darcs 2.3.0.
>>> Ionuţ: Haskell’s prefix and infix notations.
>>> Ionuţ: The minus operator in Haskell.
>>> Ken Jenkins: Learning Haskell (Part 2).
James Iry: Void vs Unit.
Justin Grant: Generating pi in Haskell.
Petr Rockai: soc progress 9.
>>> Ken Jenkins: Learning Haskell (Part 1).
Isaac Dupree: Next Project, Move doc-parsing to from GHC to Haddock.
Roman Cheplyaka: Schrödinger's cat.
Magnus Therning: Ping server in Haskell (not that kind of ping, and rather silly).
>>> hydo: Haskell and Hack fanboyism..
David Amos: Faster graph symmetries using distance partitions.
Isaac Dupree: more cross-package docs details.
Nick Cameron: ECOOP Day 3 - Day 1 of the main conference .
Ryan Lothian: Haskell Graph Plotter - Part 1.
>>> Matias Giovannini: Monadic Golf.
>>> Stephan Mann: Cool Haskell Function.
>>> n0ne: How do you use Haskell at work?.
Adam Blinkinsop: Mastermind Solver in Haskell.
Ivan Uemlianin: decorate-sort-undecorate in Haskell -- Advanced!.
Don Stewart: Haskell Platform Progress Report.
David Amos: Strong generating sets for graph symmetries.
Chris Smith: The Magic of Type Classes.
Twan van Laarhoven: CPS based functional references .
Thomas ten Cate: More robust Scion client code.
Paul Butler: N-Queens in a Tweet.
Quotes of the Week
- dons: i heard there were webservers written in languages other than haskell
- yrlnry2: #haskell is the most functional channel I've ever seen.
- JonFairbairn: And one of the tests failed because Bolivia is now the Plurinational State of Bolivia, so I've add a patch for that. I've seen politics get in the way of programming, but I've never had a bug caused by /international/ politics before.
- Adamant: ah, monads. the pons asinorum of Haskell.
- QP: i drink i'm two thunk for this... i'm seeing (Double, Double)
- benmachine: wait why am I giving advice I don't know anything
- jfredett: <shapr> @yow ! <jfredett> YOW! I seem to SEE a SHAPR asking for FUNNY ZIPPY QUOTES, TOO bad I left them in my OTHER PANTS
- Berengal: Anyone doubting the immutable value philosophy needs to try vacuum
- badsheepy: [in response to a spammer] my word, i feel immediately compelled to medicate myself.
- monochrom: Haskell has solved programming. All that can be said programming is already said in tutorials and the haskell wiki. That is why we drift to meta topics.
- kalven: <yottis> i thought there were like 10 haskell jobs in the world, all in the "let's replace excel sheets with something else" industry <kalven> there are at least 20.
- BMeph: okmij.net, conal.net, comonad.reader, and sigfpe.blogspot.com; the four horsemen of the Haskell Apocalypse.
- jaredj: [on parsec] i thought i got it but i need to 'try' again
- gwern: *ponders Haskell nerdcore: 'I'm all about exact math, yo; I eat CReal for breakfast'*
- Baughn: remember that comments take up space in compiled Haskell programs, and furthermore they take up processing time if execution passes through them. For these reasons, keep comments to a minimum, and never put comments inside of optimized Haskell code. Ideally all of your comments will lie outside of the path of execution.
- gbacon: okay, I just tried to type Monday, but it came out Monady. Assimilation complete.
- BenLippmeier: Are Haskell and OCaml destined to be The Velvet Underground of programming languages, where hardly anyone has heard them, but everyone who does forms a band?
About the Haskell Weekly News
To help create new editions of this newsletter, please
see the information on how
to contribute. Send stories to
byorgey at cis dot upenn
dot edu. The darcs repository is available at
darcs get http://code.haskell.org/~byorgey/code/hwn/