Haskell Weekly News

Haskell Weekly News: January 24, 2009

Submitted by byorgey on Sat, 01/24/2009 - 10:04am.
Haskell Weekly News: January 24, 2009

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

Announcements

Monoids and fingertrees. Heinrich Apfelmus posted a nice tutorial explaining the monoid magic behind 2-3 fingertrees.

STM-IO-Hooks-0.0.1. Peter Robinson announced the stm-io-hooks library, which provides an STM monad with commit and retry IO hooks. A retry-action is run (once) in a separate thread if the transaction retries, while commit-actions are executed iff the transaction commits. The code is based on the AdvSTM monad by Chris Kuklewicz, but in addition also ensures some atomicity guarantees for commit-actions.

1000 libraries. Don Stewart announced that Hackage has now reached 1000 packages!

HTTP-4000.0.4 released. Sigbjorn Finne announced that a new release of HTTP, version 4000.0.4, is now available. The main change is the addition of registering a Browser event handler for capturing state changes to the request-response processing pipeline.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • Jonathan Cast: [on advertising for Haskell programmers and informing them that the codebase is actually in Perl at the interview] <Andrew Wagner> That's......evil. <Jonathan> I know. I'm evil too, though. So it's cool.
  • rwbarton: A type class is not a type just like a dog house is not a dog.
  • SPJ: [This is] clearly not a bug in GHC; but it would be more felicitous if it gave you a warning...
  • Gracenotes: > let o_o = 0.0 ;o' =(, ); ;o (*)=(*) ;( lol, xD :p )= o' o' $o.o$ (:[]) $o.o$ (:[]) o_o in (:[]) o_o :p
  • Cale: I plan on forming a symbiotic relationship with sandtrout, which, as they merge with my body, will sustain me as I slowly turn into a sandworm, and make use of my billions of other memories and prescience to rule over everyone and everything for millenia.
  • quicksilver: or in Java, we'd make it more generic by using a PolynomialDivisionOperatorFactory.
  • roconnor: I was going to read about laziness, but I decided to do it later, when I need to understand it.

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.

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

Haskell Weekly News: January 19, 2009

Submitted by byorgey on Mon, 01/19/2009 - 2:43pm.
Haskell Weekly News: January 19, 2009

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

Gee whiz, people, stop being so darn productive or you're going to burn me out. Seriously.

Announcements

curl-1.3.4. Sigbjorn Finne announced that a new version of curl, a complete Haskell binding to the libcurl API, is now available and have been uploaded to Hackage. The most notable change is the overloading of representation of response buffers (and headers), allowing for the use of ByteStrings.

Turbinado V0.4. Alson Kemp announced the release of version 0.4 of Turbinado, an easy to use Model-View-Controller-ish web framework for Haskell. Highlights for the 0.4 release include a dramatically improved ORM which handles foreign keys, and improved documentation.

Hackage about to reach 1000 releases. Don Stewart announced that Hackage is about to reach the 1000 release mark, 2 years after it went live. Some pretty charts can be seen here.

leapseconds-announced-2009. Bjorn Buckwalter announced the release of the leapseconds-announced package, which contains a single module and a single function implementing the Data.Time.Clock.TAI.LeapSecondTable interface.

zipper-0.1. Andres Loeh announced zipper-0.1, a library offering a generic zipper for systems of recursive datatypes.

multirec-0.2. Andres Loeh announced multirec-0.2, a library which provides a mechanism to talk about fixed points of systems of datatypes that may be mutually recursive. On top of these representations, generic functions such as the fold or the Zipper can then be defined.

ghci-haskeline 0.1. Judah Jacobson announced the first release of ghci-haskeline. This package uses the GHC API to reimplement ghci with the Haskeline library as a backend. Haskeline is a library for line input in command-line programs, similar to readline or editline, which is written in Haskell and thus (hopefully) more easily integrated into other Haskell programs.

The Monad.Reader (13) - Call for copy. Wouter Swierstra announced a Call for Copy for Issue 13 of The Monad.Reader. The submission deadline is February 13, 2009. Please get in touch with Wouter if you intend to submit something.

Cabal 2.0. Duncan Coutts announced that he has started a wiki page to collect ideas for Cabal 2. The basic idea for Cabal 2 is to learn lessons from our how the existing design has fared and how we can make a better design to tackle an expanded set of goals.

Announcing Haskell protocol-buffers 1.4.0 (the smashing recursive edition). Chris Kuklewicz announced version 1.4.0 (the smashing recursive edition) of protocol-buffers, a Haskell interface to Google's "..language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more."

Haskell WikiProject. Robin Green asked: is anyone else interested in forming a Haskell WikiProject on Wikipedia, to collaborate on improving and maintaining the coverage and quality of articles on Haskell-related software and topics (broadly defined)?

darcs 2.2.0. Petr Rockai announced the release of darcs 2.2.0, with both a source tarball and a cabalized tarball available. This version features many improvements and bug fixes; see Petr's original announcement for a list.

hledger 0.3. Simon Michael announced the release of hledger 0.3, a partial haskell clone of John Wiegley's "ledger" text-based accounting tool. It generates transaction and balance reports from a plain text ledger file, and demonstrates a functional implementation of ledger.

language-sh-0.0.3.1. Stephen Hicks announced the language-sh package, a set of modules for parsing, manipulating, and printing sh-style shell scripts. It's being developed alongside shsh, the Simple Haskell Shell.

Coadjute 0.0.1, generic build tool. Matti Niemenmaa announced version 0.0.1 of Coadjute, a generic build tool intended as an easier to use and more portable replacement for make.

dataenc 0.12. Magnus Therning announced version 0.12 of dataenc, a data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, Base16, Base85, and (new in 0.12) yEncoding.

3 applications of "indexed composition" as a language design principle. Greg Meredith announced that he has found a way to generalize the LogicT transformer, and calculated it's application to three fairly interesting examples.

HTTPbis / HTTP-4000.x package available. Sigbjorn Finne announced the availability of a modernization of the venerable and trusted HTTP package. The headline new feature of this version is the parametrization of the representation of payloads in both HTTP requests and responses; two new representations are supported, strict and lazy ByteStrings.

monad-interleave 0.1. Patrick Perry announced the monad-interleave package, which provides a type class generalizing his two favorite functions in Haskell, "unsafeInterleaveIO" and "unsafeInterleaveST".

hs-dotnet, version 0.3.0. Sigbjorn Finne announced the first public release of hs-dotnet, a pragmatic take on interoperating between Haskell (via GHC) and .NET.

HEADS UP: finalizer changes coming in GHC 6.10.2. Simon Marlow announced that, by popular demand, GHC 6.10.2 will support finalizers that are actually guaranteed to run, and run promptly. However, there's a catch. If you want to know what the catch is, read his message.

split-0.1.1 (doc bugfix; new functions wordsBy and linesBy). Brent Yorgey announced version 0.1.1 of the split library. This version fixes some Haddock bugs, and adds two new convenience functions suggested by Neil Mitchell, wordsBy and linesBy.

json-0.4.1. Sigbjorn Finne announced a new release (0.4.1) of the json package. New in this release is a generic JSON encoder contributed by Lennart Augustsson along with a number of other, smaller changes.

haskell-platform mailing list. Duncan Coutts announced that anyone interested in helping out with the haskell platform project is invited to subscribe to the haskell-platform mailing list. This mailing list is for discussing practical stuff; policy questions will be discussed on the libraries mailing list.

bytestring-trie 0.1.4. wren ng thornton announced version 0.1.4 of the bytestring-trie package. This release fixes a number of bugs, adds functions such as keys, toListBy, fromList{L,R,S}, and separated Data.Trie (the main module for users) from Data.Trie.Internal (gritty details, and core implementation).

HLint 1.2. Neil Mitchell announced HLint version 1.2, a lint-like tool for Haskell that detects and suggests improvements for your code. The biggest new feature is list recursion suggestions.

Working with HLint from Emacs. Alex Ott announced an emacs module for integration with HLint.

Discussion

An Alternative Data.List.Zipper. Jeff Wheeler posted an improved version of Data.List.Zipper, and requested feedback or constructive criticism.

Comments from OCaml Hacker Brian Hurt. John Goerzen posted a link to a blog post by Brian Hurt, along with some thoughts about naming things in the standard libraries, spawning the longest ML thread in recent history.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • luqui: sigh: mathematicians. can't live with 'em, can't prove 'em wrong.
  • mauke: YO DAWG I HEARD YOU LIKE METACIRCULARITY SO WE PUT AN INTERPRETER IN YOUR INTERPRETER SO YOU CAN RUN CODE WHILE YOU RUN CODE
  • lament: tuples are proof that haskell is inherently broken and will never work.
  • roconnor: [after a long -cafe thread on the suckiness of using math terms in Haskell] we don't use Integer anymore. Too abstract. It is now called CountingThingy.
  • quicksilver: partially applied type synonym = type lambdas = unrestricted type functions = can of pants
  • ddarius: In the spirit of that article on monoids, we should drop the term "tree" and replace it with the term "free pointed magma"
  • ski_: unique among types, 'Void -> X' has its own charm. tourists should definitly pay a visit.
  • pao: Cale: thanks ... I really think you deserve a statue ... or, at least, a portrait in ascii art on haskell.org :-)
  • byorgey: TDD replaces a type checker in Ruby in the same way that a strong drink replaces sorrows.

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.

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

Haskell Weekly News: January 10, 2009

Submitted by byorgey on Sun, 01/11/2009 - 8:28am.
Haskell Weekly News: January 10, 2009

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

Welcome to the 100th (!) issue of the Haskell Weekly News, suitably published on your friendly neighborhood HWN editor's 1000th birthday (base 3). If you ever have content to be included in the HWN (announcements, blog posts, major life news) or a suggestion on how the HWN could be more useful to you as a window into the goings-on of the Haskell community, please don't hesitate to send it along, using the contact information at the end of each issue.

Announcements

Haskell BLAS bindings version 0.7. Patrick Perry announced the release of version 0.7 of the blas package, Haskell bindings to the BLAS (Basic Linear Algebra Subprograms) library. According to Patrick, this release is "a major milestone---it is finally the library with all of the features that I want."

X Haskell Bindings. Antoine Latter announced a preview release of the X Haskell Bindings. The goal of the library is to provide low-level access to the X11 protocol, in the spirit of the X C Bindings.

Data.TCache 0.5.5. Alberto G. Corona announced the 0.5.5 release of the TCache package, a transactional data cache with configurable persistence. This version adds the the capability to safely handle transactions, and incrementally serialize many data types simultaneously in the same piece of code.

haskell-src-exts 0.4.8. Niklas Broberg announced a new release (0.4.8) of the haskell-src-exts package. This is a bug-fix release in the wake of the flurry of bug reports due to hlint.

bytestring-trie 0.1.2 (bugfix). wren ng thornton announced a bugfix release for bytestring-trie, efficient finite maps from (byte)strings to values. This release fixes a bug in alterBy, and adds an Eq instance.

wxHaskell 0.11.1. Jeremy O'Donoghue announced the release of wxHaskell 0.11.1, a Haskell binding for the wxWidgets GUI library. The main highlights include support for XRC resource files, support for wxWidgets 2.8.x and GHC 6.10, and preliminary support for Cabal and Hackage.

cabal2doap 0.1. Greg Heartsfield announced the release of Cabal2doap, which generates Description of a Project (DOAP) XML/RDF data representing a Haskell project. This should make it possible for semantic web project aggregation sites to find and index Haskell projects.

Jobs

Jane Street is hiring functional programmers. Yaron Minsky reminded everyone that Jane Street is still hiring! Jane Street now has over 30 OCaml developers, and is actively looking to hire more in Tokyo, London and New York.

PhD, postdoc, and engineering positions at HATS. CFP announced the availability of 10 PhD, postdoc, and engineering positions within the HATS project (Highly Adaptable and Trustworthy Software using Formal Models), a new Integrated Project funded by the European Union, within the programme "Future and Emerging Technologies" (FET). The goal of HATS is a tool-supported framework and formal methodology for the development of long-lived and trustworthy software systems.

Hypothetical Haskell job in New York. Tony Hannan asked how many would be interested in applying to a hypothetical Haskell job in New York, assuming his boss can be convinced to use Haskell.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • jml: A wise man once said, "the program isn't debugged until the last user is dead".
  • pumpkin: OMG I <3 RECORD SYNTAX
  • Olathe: <Olathe> > floor (1.0/0.0) <lambdabot> 179769... <Olathe> But you can see that Haskell can calculate the maximum Integer.
  • lilac: <drdozer> gha! I'm drowning in the haskell number hierarchy again <lilac> drdozer: magic 8-ball says 'add calls to fromIntegral'
  • monopoly: do not exit IO. go directly to the REPL, do not pass any parameters or continuations.
  • EvilTerran: [on category theory] the same place of nightmares that spawned zygohistomorphic prepromorphisms :P

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.

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

Haskell Weekly News: January 3, 2009

Submitted by byorgey on Sat, 01/03/2009 - 12:20pm.
Haskell Weekly News: January 03, 2009

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

Happy new year to all! May 2009 be a year full of joy, family, friends, professional success, much Haskell hacking, and a minimal number of rabid weasels. Just in case.

Announcements

#haskell IRC channel reaches 600 users. Don Stewart announced that 7 years after its inception, under the guiding hand of Shae Erisson (aka shapr), the #haskell IRC channel on freenode has reached 600 concurrent users!

citeproc-hs-0.2. andrea rossato announced the release of citeproc-hs-0.2, a Haskell implementation of the Citation Style Language, which adds a Bibtex like citation and bibliographic formatting and generation facility to pandoc. This version adds support for citation collapsing, a wrapper around hs-bibutils, and some API documentation.

hs-bibutils-0.1. andrea rossato announced the first release of hs-bibutils, Haskell bindings to Chris Putnam's bibutils. Bibutils is a library and a set of bibliographic utilities to interconvert between various bibliography database formats using a common MODS-format XML intermediate.

Haskell koans. Gwern Branwen issued an RFK (Request for Koans), following the success of his CFH (Call for Haiku).

[ANN] Haskell web server + wiki: salvia-0.0.4 + orchid-0.0.6. Sebastiaan Visser announced the release of three new packages: salvia, a lightweight modular web server framework; orchid, a(nother) wiki written in Haskell, using Darcs as a versioning back-end and Salvia as the application server; and orchid-demo, a simple demo application using Salvia and Orchid to serve an example darcs repository. You can play around with an online demo.

gitit-0.4.1, recaptcha-0.1. John MacFarlane announced the release of gitit-0.4.1, a wiki program that stores pages in a git repository. This release adds support for (optional) captchas, using the reCAPTCHA service. The reCAPTCHA code has been packaged as a separate library on Hackage, recaptcha.

monte-carlo-0.2, gsl-random-0.2.3. Patrick Perry announced the release of a new version of the monte-carlo package. The new version includes a more general type class, MonadMC, which allows all the functions to work in both MC and MCT monads; functions to sample from discrete distributions, and functions to sample subsets. There is also a quick tutorial.

Reading group for Programming Collective Intelligence. Creighton Hogg announced that he would like to start a small group for the O'Reilly book Programming Collective Intelligence, to work through translating some of the examples to Haskell. Email Creighton if you are interested in participating.

Maintaining laziness. Henning Thielemann announced that he has written a tutorial on how to make functions lazy and how to test whether they are actually lazy.

Request for feedback: Understanding Haskell Monads. Ertugrul Soeylemez requested feedback on a new monad tutorial.

Discussion

How do we decide on the new logo?. Fritz Ruehr began a discussion of how to go about choosing a winner of the Great 2009 Haskell Logo Contest. Weigh in if you care!

Jobs

Two Positions as Associate Professor in Software Engineering at Chalmers University. Koen Claessen announced the availability of two positions as Associate Professor at Chalmers University in Gothenburg, Sweden, within the division of Software Engineering and Technology at the department of Computer Science and Engineering. The application deadline is January 12, 2009.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • lilac: <bohdan> how do I see the number of reductions required to calculate something? <lilac> bohdan: the usual method is to ask Cale to reduce it by hand :)
  • conal: If it's purely functional, how do you *do* anything? You don't ;-)
  • ddarius: The opposite ends of CS meet in the Haskell world.
  • EvilTerran: forcedYet :: a -> Bool; forcedYet x = x `seq` True -- :P
  • bmh: I dream in folds. One day I'll dream in monads.
  • sclv: dreaming is a monad.

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.

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

Haskell Weekly News: December 25, 2008

Submitted by byorgey on Thu, 12/25/2008 - 12:25pm.
Haskell Weekly News: December 25, 2008

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

Happy holidays! An exciting HWN for you this week, including a number of cool new libraries, the public release of Cryptol, a Haskell logo contest, and the second most awesome GHC bug ever (see augustss's quote at the end of the Quotes section for the most awesome GHC bug ever).

Announcements

Hieroglyph 0.85. Jeff Heard announced that the Thingie library has been renamed Hieroglyph, and now has support for displaying images on the Cairo canvas.

Cryptol now freely available. Don Stewart announced that Cryptol, the language of cryptography, is now available to the public! Cryptol is a domain specific language for the design, implementation and verification of cryptographic algorithms, developed over the past decade by Galois for the United States National Security Agency. It has been used successfully in a number of projects, and is also in use at Rockwell Collins, Inc. Cryptol is implemented in Haskell.

Control.Monad.IfElse. Jeff Heard announced the Control.Monad.IfElse module, which provides useful anaphoric and monadic versions of if-else and when.

llvm-0.4.0.1. Lennart Augustsson announced version 0.4.0.1 of the release that is quite incompatible with the old 0.0.2 release.) Haskell LLVM bindings. LLVM is a virtual machine and the bindings allow you to generate code for this virtual machine. This code can then be executed by a JIT or written to a file for further processing by the LLVM tools.

bytestring-trie 0.1.0. wren ng thornton announced the release of bytestring-trie 0.1.0, an efficient finite map from (byte)strings to values. The implementation is based on big-endian patricia trees, like Data.IntMap.

RWH book club. Don Stewart announced that Matt Podwysocki has set up a Real World Haskell book club, a mailing list on google groups with already some 200 members discussing typical new user Haskell questions. Feel free to join if you like talking about Haskell, or teaching new users.

Thingie-0.80. Jeff Heard announced the release of Thingie, a library for creating 2D visualizations in a purely functional manner. It supports static visualizations and animation, and like most vis libraries, can probably do games as well as simple viz graphics.

typehash version 1.3. Lennart Augustsson announced the release of the typehash library, which allows you to produce a unique identifier (a cryptographic hash) for a type. This is useful if you save values of some type to a file (text, binary, whatever format you wish) and then when you read it back in again you want to verify that the type you want to read is the one you actually wrote. The library also supports type codes, which encode the complete structure of a type and can be used for finer comparison than just equality.

uvector-algorithms 0.1. Dan Doel announced the release of uvector-algorithms, a library of algorithms (mostly sorting) for the mutable arrays defined in uvector. It has several varieties of sorting, including introsort (quicksort which falls back on heapsort in bad cases), heapsort, a simple top- down merge sort and a radix sort. Also exposed are the operations that allow you to use the arrays as heaps and a combinator for safely using these mutable array algorithms to sort immutable arrays. All algorithms have been painstakingly profiled and optimized.

Data.List.Split. Brent Yorgey announced the release of Data.List.Split, which provides a wide range of strategies and a unified combinator framework for splitting lists with respect to some sort of delimiter.

Hoogle with more libraries. Neil Mitchell announced that Hoogle will now search lots of the libraries present on hackage!

HLint 1.0. Neil Mitchell announced the re-release of HLint, a tool for making suggestions to improve your Haskell code. Previously this tool was called Dr Haskell and depended on a working installation of Yhc; now it depends on GHC 6.10.1.

rangemin-1.0. Louis Wasserman announced the release of rangemin, a library for efficiently preprocessing an array to find minimum elements of subranges of the array in constant time.

Discussion

length of module name affecting performance??. Daniel Gorín reported a GHC bug where in certain cases, changing the name of a module to something longer results in a 2x-3x performance hit! Strange but true.

Time for a new logo?. Don Stewart proposed a competition to produce a new Haskell logo! Submissions should go on the wiki page; the deadline for logo submissions is December 31.

Pattern combinators. Andrew Wagner started a thread turning a paper on pattern-matching in Haskell into actual code for hackage.

Coroutines. Ryan Ingram posted some interesting code showing how to implement coroutines with session types.

Type wildcards. Eyal Lotem proposed a 'type wildcards' extension to the language.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • luqui: no!!! I was building a joke, but then I sent it before I thought of one.
  • roconnor: We put up a clothes line and made a turing machine by hand at a party once ... that is the sort of parties I go to.
  • cjs: In what other language could I have learned so much about Win32 programming (summary: basically, the Windows 3.0 API but with all sorts of hacks to deal with having more than one thread in the system), and come out having *enjoyed* myself? Praise to the Lord!
  • PaulJohnson: A paradox of the Haskell world is that, while the language is Vulcan, the community around it is dominated by Warm Fuzziness. Clearly the two are not mutually exclusive.
  • Botje: Caleskell even has unsafeSolveHaltingProblem?
  • Taejo: * Taejo needs to write Sitar Hero in Yampa
  • dons: it is safer for incompetent people to be working in Haskell than C++.
  • mpeter: the quality of my code increased drastically when i realized i should stop telling the computer to do things which were stupid.
  • byorgey: <Cale> RandomT/Random are effectively state monads. (in fact, they're thin candy shells around StateT/State.) <byorgey> "newtype: melts in the compiler, not in your hands"
  • quicksilver: [on classes having the same name as constructs in other languages] it's like having a laxative called "after dinner mint", and people being upset when they were looking for something nice to eat after dinner.
  • quicksilver: #haskell is a loquacracy!
  • quicksilver: It's also the same thing as the Yoneda lemma. That's the thing about maths. Everything is actually the same.
  • hugo: i feel like i was drugged with imperative programming, and now im in rehab.
  • chrisdone: yo dawg we heard you like haskell so we installed a lambdabot in your ghci so you can monad while you monad
  • augustss: ghc had a bug once where it deleted the source file if it had a type error. Quite sensible, I think.

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.

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

Haskell Weekly News: December 13, 2008

Submitted by byorgey on Sat, 12/13/2008 - 11:54am.
Haskell Weekly News: December 13, 2008

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

Lots of neat blog posts and funny quotes this week. Don't forget to keep adding haiku to the wiki, and don't miss Alex McLean (yaxu)'s streaming livecoding performance tonight!

Announcements

Spam on HaskellWiki. Ashley Yakeley asked what people would like to do about the increasing amounts of spam on the Haskell wiki, and offered some suggestions.

The Timber compiler 1.0.2. Johan Nordlander announced the first public release of the Timber compiler. Timber is a modern language for building event-driven systems, based around the notion of reactive objects. It is also a purely functional language derived from Haskell, although with a strict evaluation semantics. To try it out, just grab the timberc package on Hackage.

Retrospective on 2008?. Don Stewart proposed the idea of a 2008 retrospective. How would you choose the 10 best new libraries, applications, blog posts, etc. of 2008?

a haskell_proposals subreddit. Jason Dusek announced a subreddit for Haskell library proposals. The idea is that Web 2.0 will help us to allocate our collective talents more efficiently when it comes to extensions (and perhaps clue us in when our pet project is something people really want).

permutation-0.2. Patrick Perry announced a new version of the permutation library, which includes data types for storing permutations. It implements pure and impure types, the latter which can be modified in-place. The main utility of the library is converting between the linear representation of a permutation to a sequence of swaps. This allows, for instance, applying a permutation or its inverse to an array with O(1) memory use.

Data.List.Split. Brent Yorgey announced the creation of a wiki page for Data.List.Split, a hypothetical module containing implementations of every conceivable way of splitting lists known to man, so we no longer have to (1) argue about the 'one true' interface for a 'split' function, or (2) be embarrassed when people ask why there isn't a split function in the standard libraries. Please add code or comments! At some point it will be uploaded as a new module to Hackage.

Announcing Haskell protocol-buffers version 1.2.2. Chris Kuklewicz announced new versions of protocol-buffers, protocol-buffers-descriptor, and hprotoc.

Discussion

A curious monad. Andrew Coppin exhibited an interesting Storage monad, which (it turns out) is similar to ST. An enlightening discussion if you want to understand how ST works and the motivation behind it.

Origins of '$'. George Pollard asked about the origins of the $ operator (low-precedence function application) in the standard libraries, leading to some interesting history and general discussion about notation.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • quicksilver: Baughn: glFlush? the 80s called, they want your programs back?
  • gwern: the best way to optimize a program is to make it lazier or stricter.
  • ksf: Perl is obfuscated by design, haskell is designed by obfuscation.
  • conal: omg -- i can print right from emacs again. praise be to Linux!
  • mmorrow: [I] didn't realize what it really said until after i @remembered it
  • blackh: Haskell is great because of all the wonderful things you can't do with it.
  • JustinBogner: gitit's 46 dependencies convinced me to install cabal-install, and now I couldn't be happier!
  • Anonymous: I'd love to explain to you how to write hello world in Haskell, but first let me introduce you to basic category theory.
  • lilac: @type \o-> look at my muscles <lambdabot> forall t nice muscles. t -> nice -> muscles
  • ook: (:[])
  • oink: <^(oo)^>
  • mmorrow: {-# RULES "HAI; CAN HAS STDIO?" id = unsafePerformIO (system "killall -9 breathingMachine && xeyes &" >> return id) #-}
  • gwern: We will be welcomed as liberators! I estimate that we will need 50000 haskellers at most and will be able to wind up the occupation quickly

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.

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

Haskell Weekly News: December 6, 2008

Submitted by byorgey on Wed, 12/10/2008 - 6:33pm.
Haskell Weekly News: December 06, 2008

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

Announcements

Haskell haikus. Gwern Branwen announced that he has collected all known haikus about Haskell and put them on a wiki page. Add more!

Platforms that GHC supports. Simon Peyton-Jones linked to a new page clearly articulating what platforms GHC supports, and what platforms its maintainers would like it to support. If you're interested and willing to help sponsor a "Tier 2" platform, let them know!

Using Data Parallel Haskell. Manuel Chakravarty announced a new wiki page with documentation for Data Parallel Haskell.

DrHylo 0.0.1. Hugo Pacheco announced the release of DrHylo, a tool for deriving hylomorphisms from a restricted Haskell syntax. It is based on the algorithm first presented in the paper Deriving Structural Hylomorphisms From Recursive Definitions at ICFP'96 by Hu, Iwasaki, and Takeichi. The generated code can be run with Pointless Haskell, allowing the visualization of the recursion trees of Haskell functions.

pointless-haskell 0.0.1. Hugo Pacheco announced the release of Pointless Haskell, a library for point-free programming with recursion patterns defined as hylomorphisms, inspired in ideas from the PolyP library. The re-implementation of the library using type functions (in opposition to classes with functional dependencies) enables a type-level view of data types as the fixed points of functors and provides a better experience to the users in terms of code sanity. The library also features the visualization of the intermediate data structure of hylomorphisms with GHood.

Projects that depend on the vty package?. Corey O'Connor asked whether there are any other projects that depend on the vty package. If so, let him know! The package also has a new trac and wiki.

haskell-src-exts 0.4.4. Niklas Broberg announced the release of haskell-src-exts 0.4.4, which adds support for pragmas.

ChristmasTree 0.1. S. Doaitse Swierstra announced the release of the ChristmasTree package, which stands for "Changing Haskell's Read Implementation Such That by Manipulating Abstract Syntax Trees it Reads Expressions Efficiently".

TTTAS. S. Doaitse Swierstra announced the release of TTTAS, a library for typed transformations of typed abstract syntax.

GHood. Hugo Pacheco announced that GHood, a graphical backend for the lightweight Hood Haskell debugger, has now been released as a Cabal package.

Discussion

Animated line art. Andrew Coppin asked for ideas on writing Haskell to generate some animations.

Jobs

Scala job in Boston writing quantitative finance software. Paul Chiusano announced that ClariFI is looking to hire developers with a strong background in functional programming to do a mixture of Scala and Java programming. ClariFI is a small company (about 15 developers) that specializes in software for quantitative investment management. This position is for the Boston office. If you're interested, send him an email.

Blog noise

Haskell news from the blogosphere.

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.

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

Haskell Weekly News: November 30, 2008

Submitted by byorgey on Sun, 11/30/2008 - 7:55pm.
Haskell Weekly News: November 30, 2008

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

Real World Haskell is finally here! Read it online, and/or get your own dead tree copy. Better yet, get two copies, one for yourself and one for a friend. The fifteenth Haskell Communities and Activities Report is also here---check out all the exciting stuff being worked on in the Haskell world!

Announcements

HCAR. Janis Voigtlaender announced the 15th edition of the Haskell Communities and Activities Report (HCAR) is now available!

Not quite another Haskell tutorial, but .... Janis Voigtlaender announced that he submitted his Habilitation thesis last week. The first few chapters of it try to give an introduction to Haskell with emphasis on types and reasoning principles.

hledger 0.2. Simon Michael announced version 0.2 of [http://joyful.com/hledger hledger, a minimal haskell clone of John Wiegley's "ledger" text-based accounting tool.

darcs zlib error workaround. Eric Kow outlined workarounds and future plans for a darcs bug relating to broken CRCs in gzipped patch files. You should read this if you have installed darcs 2.1.2 via the Cabal build method.

Turbinado 0.2. Alson Kemp announced version 0.2 of Turbinado, an easy-to-use, fast web application framework.

Fun with type functions. Simon Peyton-Jones requests examples of compelling use cases for type functions: "can you tell us about the most persuasive, fun application you've encountered, for type families or functional dependencies? Simple is good. It doesn't have to be elaborate: just something that does something useful you could not have done otherwise."

Jobs

PhD Positions in Language-based Security at Chalmers. Andrei Sabelfeld announced the availability of PhD student positions in programming language-based security in the Department of Computer Science and Engineering at Chalmers University of Technology, Sweden. The application deadline is January 30, 2009.

FP Jobs. Julien Sylvestre announced several new permanent positions, based in Paris, with MLstate -- an IT company whose functional programming approach to SaaS and cloud computing has been recently recognized by the French Ministry of Research Innovation Award.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • quicksilver: I ACCIDENTALLY THE WHOLE VERB
  • dons: [on ghc's new code generation] <byorgey> so how's the new code gen better? <dons> it's got 98% less dumbs.
  • adu: source code is transient, dreams are forever.
  • monochrom: n is the nth English letter.
  • nomeata: Ah, it seems I'm creating a tuple with more than 62 elements somewhere...
  • dons: we had 15 years building ivory towers - time to throw rocks from the top!

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.

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

Haskell Weekly News: November 22, 2008

Submitted by byorgey on Sat, 11/22/2008 - 3:09pm.
Haskell Weekly News: November 22, 2008

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

Lots of interesting reading this week! Martin Escardo writes about finite search over infinite search spaces expressed as a monad; Conal Elliott writes about the unambiguous choice operator and merging partial values; Luke Palmer on restricted data types and Udon, his system for universal distributed object management; a post about incremental parsing in Yi; Ryan Ingram on parametric higher-order abstract syntax; Issue #12 of the Monad.Reader; and much more!

Announcements

The Monad.Reader - Issue 12: Summer of Code Special. Wouter Swierstra announced Issue 12 of the Monad.Reader, featuring articles by Max Bolingbroke, Roman Cheplyaka, and Neil Mitchell describing their Summer of Code projects.

Turbinado V0.1. Alson Kemp announced the release of Turbinado, an MVC web framework for Haskell.

EEConfig-1.0. Bartosz Wojcik announced the release of EEConfig, a simple library for reading parameters from a configuration file.

Discussion

Proof of a multi-threaded application. Silviu Andrica asked about the possibility of proving the correctness of a multi-threaded application written in Haskell, leading to a discussion of STM, model checking, and related issues.

Monadic bind with associated types + PHOAS?. Ryan Ingram wrote about using parametric higher-order abstract syntax to get the benefits of HOAS (using the embedding language to express binding and substitution) while still being able to inspect or optimize the resulting expressions.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • dons: instance Ord OCaml, oh wait. hang on. OCaml can't do that.
  • BONUS: as you can see, one of the best parts of Haskell is #haskell.
  • ddarius: head [] :: FlyingMonkeys

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.

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

Haskell Weekly News: November 15, 2008

Submitted by byorgey on Sat, 11/15/2008 - 2:56pm.
Haskell Weekly News: November 15, 2008

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

Community News

Congratulations to Ganesh (aka Heffalump) and Amanda on the birth of Alexander Suresh Kerr Sittampalam!

Announcements

bustle-0.1. Will Thompson announced the release of Bustle, a tool to show diagrams of D-Bus traffic for profiling purposes. It consists of a small C executable to log traffic, and a Gtk+ application which draws diagrams using Cairo.

haskell-src-exts 0.4.1. Niklas Broberg announced a new major release of the haskell-src-exts package, an extension of the standard haskell-src package which handles most common syntactic extensions to Haskell. The new release features a cleaned up AST and names without ugly disambiguation prefixes.

darcs 2.1.1rc2. Eric Kow (kowey) announced the release of darcs 2.1.1rc2, which adds support for GHC 6.10.1. It also includes a Windows bug fix. If you're using GHC 6.10.1 or Windows, give it a try and let the darcs development team know how it works.

hpapi 0.1 release. Michael D. Adams announced the first release of hpapi, Performance API (PAPI) bindings for Haskell. PAPI provides access to various CPU counters such as cache-miss, instruction and pipeline stall counts.

Workflow-0.1. Alberto G. Corona announced the release of Workflow, a library for transparent execution of computations across shutdowns and restarts.

Reactive library (FRP) and mailing list. Conal Elliott announced the release of Reactive, a library for functional reactive programming (FRP), similar to the original Fran but with a more modern interface (using standard type classes) and a hybrid push/pull implementation. It is designed to be used in a variety of contexts, such as interactive 2D and 3D graphics, graphical user interfaces, web services, and automatic recompilation/re-execution. There is also now a mailing list and a feature/bug tracker.

ANN (sorta): OpenGL with extra type safety. Neal Alexander announced a modification of the hOpenGL (and GLFW) source tree to force extra type checking on its various IO actions using the -XGeneralizedNewtypeDeriving extension. The main motivation was for writing concurrent OpenGL applications; the second motivation was to enforce static type checking on commands that can only be executed in certain OpenGL contexts (sending vertex data for example). Hopefully the code will be uploaded to Hackage as a separate package soon.

FieldTrip library (functional 3D) and mailing list. Conal Elliott announced the release of FieldTrip, a library for functional 3D graphics. It is intended for building static, animated, and interactive 3D geometry, efficient enough for real-time synthesis and display. FieldTrip also has a mailing list and a feature/bug tracker.

gitit 0.2 release - wiki using HAppS, git, pandoc. John MacFarlane announced the upload of an early version of gitit, a Haskell wiki program, to HackageDB. Gitit uses HAppS as a webserver, git for file storage, pandoc for rendering the (markdown) pages, and highlighting-kate for highlighted source code. You can try it out here. Comments and patches welcome.

Discussion

Proof that Haskell is RT. Andrew Birkett asked whether there exists a formal proof that the Haskell language is referentially transparent. Such a thing cannot exist, since Haskell has no formally defined semantics, but an interesting discussion about referential transparency and semantics ensued anyway.

What *not* to use Haskell for. Dave Tapley asked how people answer the question, "what does Haskell not do well?" Unfortunately, it seems that there is no good answer to this question and the thread degenerated into a discussion of all the great things you can do with Haskell. If only Haskell sucked more.

Blog noise

Haskell news from the blogosphere.

Quotes of the Week

  • BMeph: In a functional world, students would ask how that index shadowing works in those funny 'for' statements...
  • digit: i'm almost annoyed at how brilliant xmonad is.
  • _pizza_: i think Haskell is undoubtedly the world's best programming language for discovering the first few dozen numbers in the Fibonacci sequence over IRC.
  • adu: let uncat3 [] = [] ; uncat3 xs = (let (ys, zs) = splitAt 3 xs in ys : uncat3 zs) ; getFrom x y = map (x !!) $ map (fromIntegral . ((\x -> fromIntegral $ foldl (.|.) (0::Word8) (zipWith (\c n -> if c then bit n else (0::Word8)) x [0..2])) :: [Bool] -> Int)) $ reverse . uncat3 . reverse . concat . map (((\x -> map (testBit x) [7,6..0]) :: Word8 -> [Bool]) . fromIntegral . ord) $ y in getFrom " HWdelor" "e\184-\235"
  • Beelsebob: ((:[]) "pigs eat") <^(++)^> ((:[]) " robot monkies")

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.

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