Warning: Table 'system' was not locked with LOCK TABLES query: SELECT * FROM system WHERE type = 'theme' in /var/local/drupal/includes/database.mysql.inc on line 172

Warning: INSERT command denied to user 'drupalsequence'@'localhost' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '<em>UPDATE command denied to user &amp;#039;drupalsequence&amp;#039;@&amp;#039;localhost&amp;#039; for table &amp;#039;cache_filter&amp;#039;\nquery: UPDATE cache_filter SET data = &amp;#039;Welcome to issue 39 of HWN, a weekly newsletter covering developments in the\\nHaskell community. Each week, new editions are posted to &amp;lt;a\\nhref=\\&amp;quot;http://www.haskell.org/mailman/listinfo/haskell\\&amp;quot;&amp;gt;the Haskell mailing\\nlist&amp;lt;/a&amp;gt; as well as to &amp;lt;a href=\\&amp;quot;http://sequence.complete.org/\\&amp;quot;&amp;gt;the Haskell\\nSequence&amp;lt;/a&amp;gt; and &amp;lt;a href=\\&amp;quot;http://planet.haskell.org/\\&amp;quot;&amp;gt;P in /var/local/drupal/includes/database.mysql.inc on line 172
Haskell Weekly News: July 03, 2006

Haskell Weekly News: July 03, 2006

user warning: UPDATE command denied to user 'drupalsequence'@'localhost' for table 'cache_filter' query: UPDATE cache_filter SET data = 'Welcome to issue 39 of HWN, a weekly newsletter covering developments in the\nHaskell community. Each week, new editions are posted to <a\nhref=\"http://www.haskell.org/mailman/listinfo/haskell\">the Haskell mailing\nlist</a> as well as to <a href=\"http://sequence.complete.org/\">the Haskell\nSequence</a> and <a href=\"http://planet.haskell.org/\">Planet Haskell</a>. <a\nhref=\"http://sequence.complete.org/node/feed\">RSS</a> is also available, and\nheadlines appear on <a href=\"http://haskell.org\">haskell.org</a>. </p> <p> A\nweek of busy activity in the community. Thanks to Simon Marlow and Josef\nSvenningsson for contributions to this issue. </p> <h4> Announcements </h4>\n<ul> <li> <p> <em> HDBC 1.0 </em>. John Goerzen <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13879>released</a>\nthe latest HDBC. HDBC is a database tool, modeled loosely on Perl\'s DBI\ninterface, though it has also been influenced by Python\'s DB-API v2, JDBC in\nJava, and HSQL in Haskell. You can find the code <a\nhref=http://quux.org/devel/hdbc>here</a>. </p> </li> <li> <p> <em> hpodder\n</em>. John Goerzen <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13880>announced</a>\nthe first release of hpodder. hpodder is a podcast downloader (podcatcher)\nwritten in pure Haskell. It exists because John was unsatisfied with the other\npodcatchers for Linux. Full details <a\nhref=http://quux.org/devel/hpodder>here</a>. </p> </li> <li> <p> <em> hmp3 1.1\n</em>. Don Stewart <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13864>announced</a>\na new release of hmp3, the curses-based mp3 player written in Haskell. Release\n1.1 is a maintenance release, fixing support for GHC 6.4.2 </p> </li> <li> <p>\n<em> HSP.Clientside 0.001 </em>. Joel Bjornson <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13851>announced</a>\na prerelease version of Hsp.Clientside. This is Joel\'s <a\nhref=http://code.google.com/soc/haskell/about.html>Summer of Code</a> project\naiming to add support for client-side script generation in Haskell Server Pages.\nThe basic building blocks for embedding Javascript has been implemented. As the\nproject proceeds a suitable programming model based on these components will be\nadded. Hopefully this will also include some kind of higher level Ajax support.\nFor more information see <a\nhref=http://www.dtek.chalmers.se/~bjornson/soc>here</a>. </p> </li> <li> <p>\n<em> QDBM and Hyper Estraier bindings </em>. Jun Mukai <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.libraries/4821>released</a>\na library of bindings to Quick DBM, a database module similar to GDBM,\nBerkeley-DB, optimized for performance and a simple API. Additionally, Jun\'s\ncode includes support for Hyper Estraier, a full-text search system using QDBM,\nwith the ability to search documents according to keywords. </p> </li> <li> <p>\n<em> Streams 0.2 </em>. Bulat Ziganshin <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.libraries/4820>announced</a>\nthe beta release of his Streams 0.2 library, providing fast string and binary\nIO, now with Data.ByteString support. </p> </li> <li> <p> <em> HNOP 0.1 </em>.\nAshley Yakeley <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13881>released</a>\nthe first version of HNOP 0.1. HNOP does nothing. This version should be\nconsidered \"beta\" quality. </p> </li> <li> <p> <em> HList updates </em>. Oleg\nKiselyov <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13905>announced</a>\nthat HList, the library for strongly typed heterogeneous lists, records,\ntype-indexed products (TIP) and co-products is now accessible via darcs, <a\nhref=http://darcs.haskell.org/HList/>here</a>. Additionally, Oleg pointed to\nsome new features for HList, including a new representation for open records.\nFinally, he <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.general/13906>published</a>\na note on how HList supports, natively, polymorphic variants: extensible\nrecursive open sum datatypes, quite similar to Polymorphic variants of OCaml.\nHList thus solves the `expression problem\' -- the ability to add new variants to\na datatype without changing the existing code. </p> </li> <li> <p> <em> Haskell\nIO Inside </em>. Bulat Ziganshin <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.cafe/13409>wrote</a> a new\nintroductory tutorial to IO in Haskell, <a\nhref=http://haskell.org/haskellwiki/IO_inside>Down the Rabbit\'s Hole</a>. </p>\n</li> <li> <p> <em> Bytecode API 0.2 </em>. Robert Dockins <a\nhref=http://article.gmane.org/gmane.comp.lang.haskell.yhc/146>published</a> the\nYhc Bytecode API version 0.2. More details <a\nhref=http://www.eecs.tufts.edu/~rdocki01/yhc-bytecode.html>here</a>. </p> </li>\n<li> <p> <em> Translating Haskell into English </em>. Shannon Behrens <a\nhref=http://www.linuxjournal.com/article/9096>published</a> a new Haskell\ntutorial, hoping to give readers a glimpse of the Zen of Haskell, without\nrequiring that they already be Haskell converts. </p> </li> </ul> <h4> Haskell\'\n</h4> This section covers the <a\nhref=http://hackage.haskell.org/trac/haskell-prime>Haskell\'</a> standardisation\nprocess. <ul> <li> <a\nhref=\"http://thread.gmane.org/gmane.comp.lang.haskell.prime/1561/focus=1561\">Nested\nGuards</a> </li> </ul> <h4> Discussion </h4> <ul> <li> <p> <em> Haskell and the\nGreat Language Shootout, reloaded </em>. Simon Marlow <a\nhref=http://thread.gmane.org/gmane.comp.lang.haskell.general/13857/focus=13857>highlighted</a>\nsome remarks and discussion from Brent Fulgham, the driving force behind the <a\nhref=http://shootout.alioth.debian.org/>Great Language Shootout</a> on the\nimpact recent advances in the performance of GHC have had. In particular, many\nbenchmarks had to be rewritten due to the performance advantage lazy Haskell\nprograms had over strict (and wasteful) entries in other languages. Brent noted\nthat \"applications written in Haskell can be reasonably expected to yield good\nperformance on all of the common x86 platforms without customizations\". This in\nturn led to a discussion about further improvements we can expect to see in GHC\nHaskell over the next few months. </p> </li> <li> <p> <em> HNOP, doing nothing,\nand really complex ways of doing nothing </em>. Ashley Yakeley <a\nhref=http://thread.gmane.org/gmane.comp.lang.haskell.general/13881/focus=13881>forked</a>\na somewhat surreal thread regarding Haskell programs that do nothing. </p>\n</li> </ul> <h4> Quotes of the Week </h4> <ul> <li> Brian Hulley : \"It is\ndefinitely *a* haskell. There is actually no word in English with a silent \'h\',\nthough this statement is unfortunately controversial and news to whoever wrote\nthe spell checker used in many printed publications. Of course some particular\ndialects use different pronunciation like \'me \'otel room \'ad an \'askell \'mpiler\nin t\' closet as well as tub \'n sink tha knows\'\" </li> </ul> <h4> Code Watch\n</h4> <p> <p> <pre>\n Thu Jun 29 06:58:36 PDT 2006 Simon Marlow\n * No longer force -fvia-C for the RTS, it can now be compiled with the\n NCG\n</pre> </p> <p> <pre>\n Sat Jul 1 01:43:45 PDT 2006 Don Stewart\n * Import Data.ByteString.Lazy, improve ByteString Fusion, and resync\n with FPS head\n\n This patch imports the Data.ByteString.Lazy module, and its helpers,\n providing a ByteString implemented as a lazy list of strict\n cache-sized chunks. This type allows the usual lazy operations to be\n written on bytestrings, including lazy IO, with much improved space\n and time over the [Char] equivalents.\n</pre> </p> </p> <h4> Contributing to HWN </h4> <p> To help create new editions\nof this newsletter, please see the <a\nhref=\"http://haskell.org/haskellwiki/HWN\">contributing information</a>. Send\nstories to <code>\n dons at cse.unsw.edu.au </code>\n. The darcs repository is available at<br>\n<code> darcs get http://www.cse.unsw.edu.au/~dons/code/hwn </code> </p> ', created = 1228371798, expire = 1228458198, headers = '' WHERE cid = '6:3bac5ce86d4d2973f714de54ae86c6c4' in /var/local/drupal/includes/database.mysql.inc on line 172.
by dons ()
Welcome to issue 39 of HWN, a weekly newsletter covering developments in the Haskell community. 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.

A week of busy activity in the community. Thanks to Simon Marlow and Josef Svenningsson for contributions to this issue.

Announcements

  • HDBC 1.0 . John Goerzen released the latest HDBC. HDBC is a database tool, modeled loosely on Perl's DBI interface, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. You can find the code here.

  • hpodder . John Goerzen announced the first release of hpodder. hpodder is a podcast downloader (podcatcher) written in pure Haskell. It exists because John was unsatisfied with the other podcatchers for Linux. Full details here.

  • hmp3 1.1 . Don Stewart announced a new release of hmp3, the curses-based mp3 player written in Haskell. Release 1.1 is a maintenance release, fixing support for GHC 6.4.2

  • HSP.Clientside 0.001 . Joel Bjornson announced a prerelease version of Hsp.Clientside. This is Joel's Summer of Code project aiming to add support for client-side script generation in Haskell Server Pages. The basic building blocks for embedding Javascript has been implemented. As the project proceeds a suitable programming model based on these components will be added. Hopefully this will also include some kind of higher level Ajax support. For more information see here.

  • QDBM and Hyper Estraier bindings . Jun Mukai released a library of bindings to Quick DBM, a database module similar to GDBM, Berkeley-DB, optimized for performance and a simple API. Additionally, Jun's code includes support for Hyper Estraier, a full-text search system using QDBM, with the ability to search documents according to keywords.

  • Streams 0.2 . Bulat Ziganshin announced the beta release of his Streams 0.2 library, providing fast string and binary IO, now with Data.ByteString support.

  • HNOP 0.1 . Ashley Yakeley released the first version of HNOP 0.1. HNOP does nothing. This version should be considered "beta" quality.

  • HList updates . Oleg Kiselyov announced that HList, the library for strongly typed heterogeneous lists, records, type-indexed products (TIP) and co-products is now accessible via darcs, here. Additionally, Oleg pointed to some new features for HList, including a new representation for open records. Finally, he published a note on how HList supports, natively, polymorphic variants: extensible recursive open sum datatypes, quite similar to Polymorphic variants of OCaml. HList thus solves the `expression problem' -- the ability to add new variants to a datatype without changing the existing code.

  • Haskell IO Inside . Bulat Ziganshin wrote a new introductory tutorial to IO in Haskell, Down the Rabbit's Hole.

  • Bytecode API 0.2 . Robert Dockins published the Yhc Bytecode API version 0.2. More details here.

  • Translating Haskell into English . Shannon Behrens published a new Haskell tutorial, hoping to give readers a glimpse of the Zen of Haskell, without requiring that they already be Haskell converts.

Haskell'

This section covers the Haskell' standardisation process.

Discussion

  • Haskell and the Great Language Shootout, reloaded . Simon Marlow highlighted some remarks and discussion from Brent Fulgham, the driving force behind the Great Language Shootout on the impact recent advances in the performance of GHC have had. In particular, many benchmarks had to be rewritten due to the performance advantage lazy Haskell programs had over strict (and wasteful) entries in other languages. Brent noted that "applications written in Haskell can be reasonably expected to yield good performance on all of the common x86 platforms without customizations". This in turn led to a discussion about further improvements we can expect to see in GHC Haskell over the next few months.

  • HNOP, doing nothing, and really complex ways of doing nothing . Ashley Yakeley forked a somewhat surreal thread regarding Haskell programs that do nothing.

Quotes of the Week

  • Brian Hulley : "It is definitely *a* haskell. There is actually no word in English with a silent 'h', though this statement is unfortunately controversial and news to whoever wrote the spell checker used in many printed publications. Of course some particular dialects use different pronunciation like 'me 'otel room 'ad an 'askell 'mpiler in t' closet as well as tub 'n sink tha knows'"

Code Watch

    Thu Jun 29 06:58:36 PDT 2006  Simon Marlow
        * No longer force -fvia-C for the RTS, it can now be compiled with the
        NCG

    Sat Jul  1 01:43:45 PDT 2006  Don Stewart
        * Import Data.ByteString.Lazy, improve ByteString Fusion, and resync
        with FPS head

           This patch imports the Data.ByteString.Lazy module, and its helpers,
           providing a ByteString implemented as a lazy list of strict
           cache-sized chunks. This type allows the usual lazy operations to be
           written on bytestrings, including lazy IO, with much improved space
           and time over the [Char] equivalents.

Contributing to HWN

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


Warning: INSERT command denied to user 'drupalsequence'@'localhost' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '<em>UPDATE command denied to user &amp;#039;drupalsequence&amp;#039;@&amp;#039;localhost&amp;#039; for table &amp;#039;node_counter&amp;#039;\nquery: UPDATE node_counter SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = 1228371798 WHERE nid = 196</em> in <em>/var/local/drupal/includes/database.mysql.inc</em> on line <em>172</em>.', 2, '', 'http://sequence.complete.org/hwn/20060703', '', '38.103.63.55', 1228371798) in /var/local/drupal/includes/database.mysql.inc on line 172

Warning: INSERT command denied to user 'drupalsequence'@'localhost' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '<em>INSERT command denied to user &amp;#039;drupalsequence&amp;#039;@&amp;#039;localhost&amp;#039; for table &amp;#039;accesslog&amp;#039;\nquery: INSERT INTO accesslog (title, path, url, hostname, uid, sid, timer, timestamp) values(&amp;#039;Haskell Weekly News: July 03, 2006&amp;#039;, &amp;#039;node/196&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;38.103.63.55&amp;#039;, 0, &amp;#039;b03d7b5a7a79604155d13698144b9677&amp;#039;, 385, 1228371798)</em> in <em>/var/local/drupal/includes/database.mysql.inc</em> on line <em>172</em>.', 2, '', 'http://sequence.complete.org/hwn/20060703', '', '38.103.63.55', 1228371798) in /var/local/drupal/includes/database.mysql.inc on line 172

Warning: INSERT command denied to user 'drupalsequence'@'localhost' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '<em>INSERT command denied to user &amp;#039;drupalsequence&amp;#039;@&amp;#039;localhost&amp;#039; for table &amp;#039;sessions&amp;#039;\nquery: INSERT INTO sessions (sid, uid, cache, hostname, session, timestamp) VALUES (&amp;#039;b03d7b5a7a79604155d13698144b9677&amp;#039;, 0, 0, &amp;#039;38.103.63.55&amp;#039;, &amp;#039;messages|a:1:{s:5:\\&amp;quot;error\\&amp;quot;;a:2:{i:0;s:313:\\&amp;quot;user warning: UPDATE command denied to user &amp;amp;#039;drupalsequence&amp;amp;#039;@&amp;amp;#039;localhost&amp;amp;#039; for table &amp;amp;#039;node_counter&amp;amp;#039;\\nquery: UPDATE node_counter SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = 1228371798 W in /var/local/drupal/includes/database.mysql.inc on line 172