<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Random ramblings by me.</description><title>Just Testing</title><generator>Tumblr (3.0; @justtesting)</generator><link>http://tumblr.justtesting.org/</link><item><title>The n-body problem and vectorisation of nested data parallelism in the face of shared data structures</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;Last year, we spent a lot of energy on reducing the memory consumption of vectorised &lt;a href="http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell"&gt;Data Parallel Haskell (DPH)&lt;/a&gt; programs that use large shared data structures. This work was driven by an implementation of the &lt;a href="http://en.wikipedia.org/wiki/Barnes%E2%80%93Hut_simulation"&gt;Barnes-Hut algorithm&lt;/a&gt; in DPH. Ben produced an illustrative video animating an n-body simulation with his &lt;a href="http://hackage.haskell.org/package/gloss"&gt;Gloss library&lt;/a&gt;. The video is part of his blog article &lt;a href="http://disciple-devel.blogspot.com.au/2012/02/vectorisation-without-replication-in.html"&gt;Vectorisation without Replication in Data Parallel Haskell&lt;/a&gt;, where he explains the performance of our new DPH array library in comparison to our old library and a purely sequential implementation of Barnes-Hut based on &lt;a href="http://hackage.haskell.org/package/vector"&gt;Data.Vector&lt;/a&gt;.&lt;div&gt;If you are interested in how vectorisation works, what the problem with shared data structures is, and how we are solving that problem, you may like to have a look at the slides of a talk that I gave in Copenhagen end of last year. It is available in two formats: &lt;a href="http://public.iwork.com/document/?d=replicate-hiperfit-dec11.key&amp;a=p179149432"&gt;HTML5 slideshow&lt;/a&gt; &amp; &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/replicate-hiperfit-dec11.pdf"&gt;PDF&lt;/a&gt;.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://pls.posterous.com/the-n-body-problem-and-vectorisation-of-neste"&gt;PLS @ UNSW&lt;/a&gt; | &lt;a href="http://pls.posterous.com/the-n-body-problem-and-vectorisation-of-neste#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/16916036670</link><guid>http://tumblr.justtesting.org/post/16916036670</guid><pubDate>Thu, 02 Feb 2012 22:16:35 +1100</pubDate><category>dph</category><category>haskell</category><category>parallelism</category></item><item><title>Released Data.Array.Accelerate 0.9.0.0 — the Haskell array library for GPUs</title><description>&lt;div class="posterous_autopost"&gt;I just released &lt;a href="http://hackage.haskell.org/package/accelerate-0.9.0.0"&gt;accelerate 0.9.0.0&lt;/a&gt; on Hackage. This is the version that has been available from the &lt;a href="https://github.com/mchakravarty/accelerate"&gt;GitHub repository&lt;/a&gt; for a while (supporting shape polymorphism, stencil computations, block I/O, and much more), but adapted such that it works with the forthcoming GHC 7.4.1 release. (I tested it with 7.4.1 RC2).&lt;div&gt;It doesn’t yet include Trevor’s recent work that improved the CUDA backend in many significant ways — you can get that code from &lt;a href="https://github.com/tmcdonell/accelerate"&gt;Trevor’s fork on GitHub&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;For more details, see the &lt;a href="https://github.com/mchakravarty/accelerate"&gt;main GitHub repository&lt;/a&gt; and the &lt;a href="https://github.com/mchakravarty/accelerate/wiki"&gt;GitHub wiki pages&lt;/a&gt;.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/released-dataarrayaccelerate-0900-the-haskell"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/released-dataarrayaccelerate-0900-the-haskell#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/16853265221</link><guid>http://tumblr.justtesting.org/post/16853265221</guid><pubDate>Wed, 01 Feb 2012 16:55:23 +1100</pubDate><category>accelerate</category><category>edsl</category><category>gpgpu</category><category>parallelism</category></item><item><title>Free, nicely presented textbooks with good distribution</title><description>&lt;div class="posterous_autopost"&gt;&lt;p&gt;Free, nicely presented textbooks with good distribution have got quite an appeal.&lt;/p&gt;  &lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;Begun it has RT @&lt;a href="https://twitter.com/stevedekorte"&gt;stevedekorte&lt;/a&gt;: First version of Io Programming Guide available for free on iTunes book store &lt;a href="http://t.co/AovAFyrL" title="http://itunes.apple.com/us/book/io/id497620067?mt=11"&gt;itunes.apple.com/us/book/io/id4…&lt;/a&gt;&lt;/p&gt;— Mac (@wmacgyver) &lt;a href="https://twitter.com/wmacgyver/status/162351174647939073" data-datetime="2012-01-26T01:48:31+00:00"&gt;January 26, 2012&lt;/a&gt;&lt;/blockquote&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/free-textbooks"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/free-textbooks#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/16519818986</link><guid>http://tumblr.justtesting.org/post/16519818986</guid><pubDate>Fri, 27 Jan 2012 00:42:50 +1100</pubDate><category>ibooks</category></item><item><title>Seminar by John Hughes &amp; Simon Peyton Jones @ UNSW</title><description>&lt;div class="posterous_autopost"&gt;&lt;p&gt;As part of &lt;a href="http://yowaustralia.com.au/" title="YOW! Conference" target="_blank"&gt;YOW! 2011 (the Australian Software Developer Conference)&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/people/simonpj/" title="Simon Peyton Jones" target="_blank"&gt;Simon Peyton Jones&lt;/a&gt; and &lt;a href="http://www.cse.chalmers.se/~rjmh/" title="John Hughes" target="_blank"&gt;John Hughes&lt;/a&gt; will be in Sydney on the 7th and 8th of December 2011. On the evening of the 7th, they will appear at the &lt;a href="http://yownightsydneydec11.eventbrite.com/" title="YOW! Night Sydney" target="_blank"&gt;YOW! Night Sydney&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;On Thursday (8 December), John and Simon will give two presentations at the School of Computer Science and Engineering (CSE) of the University of New South Wales. The details are as follows.&lt;/p&gt;  &lt;p style="padding-left: 30px;"&gt;Time: &lt;strong&gt;8 December 2011, 10AM&lt;/strong&gt;&lt;/p&gt;  &lt;p style="padding-left: 30px;"&gt;Location: &lt;strong&gt;CSE Seminar room (K17_113), Level 1&lt;/strong&gt;, &lt;a href="http://www.cse.unsw.edu.au/contact/map.html" title="UNSW Campus Map" target="_blank"&gt;CSE Building (K17)&lt;/a&gt;&lt;/p&gt;    &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: large;"&gt;Talk #1&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; Accelerating race condition detection through procrastination&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; John Hughes (Chalmers University &amp; Quviq AB)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Race conditions are notoriously frustrating to find, and good tools can help. The main difficulty is reliably provoking the race condition. In previous work we presented a randomising scheduler for Erlang that helps with this task.&lt;/p&gt;  &lt;p&gt;In a language without pervasive shared mutable state, such as Erlang, performing scheduling decisions at random uncovers race conditions surprisingly well. However, it is not always enough. We describe a technique, procrastination, that aims to provoke race conditions more often than by random scheduling alone. It works by running the program and looking for pairs of events that might interfere, such as two message sends to the same process. Having found such a pair of events, we re-run the program but try to provoke a race condition by reversing the order of the two events.&lt;/p&gt;  &lt;p&gt;We apply our technique to a piece of industrial Erlang code. Compared to random scheduling alone, procrastination allows us to find minimal failing test cases more reliably and more quickly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;John Hughes&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;John Hughes has worked with functional programming since 1980, was one of the designers of Haskell, and has been heavily involved with Erlang in recent years. In 2000 he and Koen Claessen published the first version of QuickCheck, a software testing tool which recently won the ACM SIGPLAN award for Most Influential Paper from ICFP in that year. He has focussed more and more on testing since then, co-founding Quviq AB in 2006 to market a commercial version of QuickCheck. He is currently both a Professor at Chalmers University, Sweden, and CEO of Quviq AB.&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size: large;"&gt;Talk #2&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; Termination Combinators Forever&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Simon Peyton Jones (Microsoft Research)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Nobody wants their compiler, or theorem prover, to go into an infinite loop, but making sure that never happens usually means applying some over-conservative heuristic like “never unfold a recursive function”. Approaches like that don’t work at all when you are doing partial evaluation or supercompilation, which fundamentally depend on inlining recursive functions. &lt;/p&gt;  &lt;p&gt;What we need is an online termination test. That is easier said than done; it is easy to make a mistake. In this talk I’ll describe a new combinator library that lets you build complex termination tests by combining simpler ones, while guaranteeing that that the result really is a termination test. The library elegantly encapsulates some clever mathematical ideas on well-quasi orders the cunning details are hidden from the customer.&lt;/p&gt;  &lt;p&gt;I’ll use Haskell as the language of exposition, but you don’t need to be a Haskell guru to understand it, and the library would work equally well in other languages.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Simon Peyton Jones&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998.&lt;/p&gt;  &lt;p&gt;His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.&lt;/p&gt;  &lt;p&gt;More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation — that’s one reason he loves functional programming so much.&lt;/p&gt;        &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://pls.posterous.com/seminar-by-john-hughes-simon-peyton-jones-uns"&gt;PLS @ UNSW&lt;/a&gt; | &lt;a href="http://pls.posterous.com/seminar-by-john-hughes-simon-peyton-jones-uns#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/13097371268</link><guid>http://tumblr.justtesting.org/post/13097371268</guid><pubDate>Mon, 21 Nov 2011 14:51:38 +1100</pubDate><category>erlang</category><category>haskell</category><category>seminar</category></item><item><title>Video and slides of "Data Parallelism in Haskell" @ Brisbane FP Group</title><description>&lt;p&gt;&lt;iframe frameborder="0" width="0" height="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Data Parallelism in Haskell" href="http://vimeo.com/28477220"&gt;Video @ vimeo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.bfpg.org/"&gt;Brisbane FP Group (BFPG)&lt;/a&gt; kindly invited me to give a talk about our work on data parallel programming in Haskell. The talk motivates the use of functional programming for parallel, and in particular, data parallel programming and explains the difference between regular and irregular (or nested) data parallelism. It also discusses the &lt;a href="http://hackage.haskell.org/package/repa"&gt;Repa&lt;/a&gt; library (regular data parallelism for multicore CPUs), the embedded language &lt;a href="https://github.com/mchakravarty/accelerate"&gt;Accelerate&lt;/a&gt; (regular data parallelism for GPUs), and Data Parallel Haskell (nested data parallelism for multicore CPUs).  The slides of the presentation are available in two formats: &lt;a href="http://public.iwork.com/document/?d=dp-in-haskell_BFPG_Sep_2011.key&amp;a=p179149432"&gt;HTML5 slideshow&lt;/a&gt; and &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/dp-in-haskell.pdf"&gt;PDF&lt;/a&gt;. Thank you to everybody who attended. Special thanks go to OJ Reeves and Tony Morris for organising everything, to Rob Manthey for producing the video, to Mincom for the venue, and to &lt;a href="http://functional.io/"&gt;Functional IO&lt;/a&gt; for the sponsorship.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt; from &lt;a href="http://justtesting.org/video-and-slides-of-data-parallelism-in-haske"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/video-and-slides-of-data-parallelism-in-haske#comment"&gt;&lt;span&gt;Comment »&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/9744136519</link><guid>http://tumblr.justtesting.org/post/9744136519</guid><pubDate>Sat, 03 Sep 2011 22:49:00 +1000</pubDate></item><item><title>Data Parallel Haskell and Repa for GHC 7.2.1</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;As an add-on to the just released &lt;a href="http://www.mail-archive.com/glasgow-haskell-users@haskell.org/msg20202.html"&gt;GHC 7.2.1&lt;/a&gt;, Ben just uploaded the &lt;a href="http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell"&gt;Data Parallel Haskell&lt;/a&gt; packages (version 0.5) to Hackage. This version is still largely a technology preview and not a production-ready system. Nevertheless, it is significantly more robust than previous versions, especially for programs with a statically fixed depth of nesting of parallelism. For further information on how to install and use Data Parallel Haskell (DPH), see the &lt;a href="http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell"&gt;DPH documentation.&lt;/a&gt;&lt;div&gt;Ben simultaneously released the companion library &lt;a href="http://hackage.haskell.org/package/repa"&gt;Repa&lt;/a&gt; (version 2.1.1.6) for use with GHC 7.2.1. In contrast to the DPH libraries, which enable &lt;i&gt;nested data parallelism&lt;/i&gt;, Repa implements parallel, shape-polymorphic, &lt;i&gt;regular&lt;/i&gt; multi-dimensional arrays.  See &lt;a href="http://pls.posterous.com/real-time-edge-detection-with-the-latest-rele"&gt;this previous post&lt;/a&gt; for some more details.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://pls.posterous.com/data-parallel-haskell-and-repa-for-ghc-721"&gt;PLS @ UNSW&lt;/a&gt; | &lt;a href="http://pls.posterous.com/data-parallel-haskell-and-repa-for-ghc-721#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/8778213236</link><guid>http://tumblr.justtesting.org/post/8778213236</guid><pubDate>Fri, 12 Aug 2011 00:17:05 +1000</pubDate><category>dph</category><category>ghc</category><category>haskell</category><category>repa</category></item><item><title>Data.Array.Accelerate now on GitHub</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;Prompted by GHC’s move to Git and the unreliability of the &lt;a href="http://community.haskell.org"&gt;community.haskell.org&lt;/a&gt; infrastructure, I decided to move &lt;a href="http://www.cse.unsw.edu.au/~chak/project/accelerate/"&gt;Data.Array.Accelerate&lt;/a&gt; to GitHub: &lt;a href="https://github.com/mchakravarty/accelerate"&gt;mchakravarty/accelerate&lt;/a&gt;. The GitHub repository is now the main public repository for the project. I will also move the tickets of the old Trac bug tracker over to GitHub Issues.      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/dataarrayaccelerate-now-on-github"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/dataarrayaccelerate-now-on-github#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/4685907212</link><guid>http://tumblr.justtesting.org/post/4685907212</guid><pubDate>Sun, 17 Apr 2011 21:24:33 +1000</pubDate><category>edsl</category><category>gpgpu</category><category>haskell</category><category>parallelism</category></item><item><title>Real-time edge detection with the latest release of the parallel array library Repa</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;We just &lt;a href="http://hackage.haskell.org/package/repa"&gt;released version 2.0.0.1&lt;/a&gt; of the Repa array library for Haskell, which includes Ben’s recent work on high-performance, parallel stencil computations. The work on stencil computations is described in detail in a draft paper entitled &lt;br/&gt;&lt;a href="http://www.cse.unsw.edu.au/~benl/papers/stencil/stencil-icfp2011-sub.pdf"&gt;Efficient Parallel Stencil Convolution in Haskell&lt;/a&gt;. Be sure to check out &lt;a href="http://code.ouroborus.net/beholder/video/Edge480.mov"&gt;Ben’s screencast&lt;/a&gt; of a real-time edge detection application, written in Objective-C and Haskell, using the new Repa library. For more details, see &lt;a href="http://disciple-devel.blogspot.com/2011/03/real-time-edge-detection-in-haskell.html"&gt;Ben’s blog post.&lt;/a&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://pls.posterous.com/real-time-edge-detection-with-the-latest-rele"&gt;PLS @ UNSW&lt;/a&gt; | &lt;a href="http://pls.posterous.com/real-time-edge-detection-with-the-latest-rele#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/4183224803</link><guid>http://tumblr.justtesting.org/post/4183224803</guid><pubDate>Wed, 30 Mar 2011 03:29:18 +1100</pubDate><category>ghc</category><category>haskell</category><category>parallelism</category><category>performance</category><category>repa</category></item><item><title>Simon Peyton Jones: parallel = functional</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;Simon Peyton Jones recently gave a talk on parallel programming in Haskell at &lt;a href="http://skillsmatter.com/event/scala/functionalpx-2011"&gt;Functional Programming eXchange 2011&lt;/a&gt;. It provides a comprehensive overview of the state of the art of parallel programming in Haskell. It covers Software Transactional Memory, Erlang-style communicating processes, parallel strategies as well as our Data Parallel Haskell, Repa, and Accelerate projects. &lt;a href="http://skillsmatter.com/podcast/scala/talk-by-haskell-expert-simon-peyton-jones/js-1434"&gt;Watch the video.&lt;/a&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://pls.posterous.com/simon-peyton-jones-parallel-functional"&gt;PLS @ UNSW&lt;/a&gt; | &lt;a href="http://pls.posterous.com/simon-peyton-jones-parallel-functional#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/4182887250</link><guid>http://tumblr.justtesting.org/post/4182887250</guid><pubDate>Wed, 30 Mar 2011 02:57:47 +1100</pubDate><category>accelerate</category><category>dph</category><category>haskell</category><category>performance</category></item><item><title>Moving mail archives to MobileMe (or other Sun Java System Messaging Servers) (tag: ipad, mac, mobileme, mail, imap)</title><description>&lt;div class="posterous_autopost"&gt;I recently consolidated all my email on MobileMe (for easy access from both my Mac and iPad).  However, I ran into a problem with the MobileMe IMAP server when I tried to move my old mail archives to the MobileMe IMAP server.  MobileMe uses the &lt;a href="http://wikis.sun.com/display/CommSuite6/Messaging+Server+7+Documentation"&gt;Sun Java System Messaging Server&lt;/a&gt; (which has since become the &lt;a href="http://en.wikipedia.org/wiki/Oracle_Communications_Messaging_Exchange_Server"&gt;Oracle Communications Messaging Exchange Server&lt;/a&gt;).  It turns out that this IMAP server (like some others as well) is rather strict about the format of mail headers; hence, uploading old mail archives usually aborts with the following error message: “The IMAP command “APPEND” (to …) failed with server error: Message contains invalid header”.&lt;div&gt;Querying the Internets and some experimentation revealed that the problem are lines in email message headers that start with “From “, “&gt;From “, and “»From “.  These are not proper message headers fields (whose names need to be delimited by a colon), but remnants from storage of these mail messages in the &lt;a href="http://en.wikipedia.org/wiki/Mbox"&gt;mbox format&lt;/a&gt;.  The remedy is to delete or edit these invalid lines in all affected message headers.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;Apple Mail stores mail messages in “$USER/Library/Mail/Mailboxes/”.  Each mailbox directory (suffix “.mbox”) contains a directory “Messages” with one file per message.  These files can easily be modified using your favourite command line tools that support matching of regular expressions or by loading them, en masse, into TextMate for project-wide search and replace.  This is somewhat naughty as the files containing individual messages contain the message header and text as well as a property list (plist), used by Mail.app to store a few attributes.  The start of that property list in the text file is marked by a character count in the first line of each message.  By eliminating or modifying the offending lines, you invalidate that character count.  However, Mail.app seems to cope just fine with those slightly malformed messages.  After fixing the headers, all my messages uploaded without problems (and no attributes seemed to get lost).&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/moving-mail-archives-to-mobileme-or-other-sun"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/moving-mail-archives-to-mobileme-or-other-sun#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/2856019600</link><guid>http://tumblr.justtesting.org/post/2856019600</guid><pubDate>Fri, 21 Jan 2011 22:58:03 +1100</pubDate></item><item><title>Final version of the Accelerate paper (GPGPU in Haskell)</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;We will present our paper &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/CKLM+11.html"&gt;Accelerating Haskell Array Codes with Multicore GPUs&lt;/a&gt; at &lt;a href="http://damp2011.cs.uchicago.edu/"&gt;ACM SIGLAN Declarative Aspects of Multicore Programming (DAMP 2011)&lt;/a&gt;, which is co-located with POPL’11 in Austin, TX, in January. The final version of our paper is &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/CKLM+11.html"&gt;now available&lt;/a&gt;, and we plan to soon release a significantly improved version of the &lt;a href="http://hackage.haskell.org/package/accelerate"&gt;Accelerate library&lt;/a&gt; (matching the API used in the paper), which enables high-level GPGPU programming in Haskell based on NVIDIA’s CUDA environment.      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/final-version-of-the-accelerate-paper-gpgpu-i"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/final-version-of-the-accelerate-paper-gpgpu-i#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/1685155262</link><guid>http://tumblr.justtesting.org/post/1685155262</guid><pubDate>Fri, 26 Nov 2010 10:45:41 +1100</pubDate><category>edsl</category><category>gpgpu</category><category>haskell</category><category>parallelism</category></item><item><title>Final version of the Singleton paper</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;Our paper &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/WC11.html"&gt;Singleton: A General-Purpose Dependently-Typed Assembly Language&lt;/a&gt; will be presented at the &lt;a href="http://www.mpi-sws.org/~dreyer/tldi2011/"&gt;ACM SIGPLAN Workshop on&lt;br/&gt;Types in Language Design and Implementation (TLDI’11)&lt;/a&gt; co-located with POPL’11 in Austin, TX, in January.  The final version of the paper is now &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/singleton.pdf"&gt;available&lt;/a&gt;.      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/final-version-of-the-singleton-paper"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/final-version-of-the-singleton-paper#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/1676302065</link><guid>http://tumblr.justtesting.org/post/1676302065</guid><pubDate>Thu, 25 Nov 2010 14:32:22 +1100</pubDate><category>code certification</category><category>security</category><category>tal</category><category>types</category></item><item><title>Quickly searching Hackage and Hoogle on Mac OS X</title><description>&lt;div class="posterous_autopost"&gt;&lt;div&gt;Haskellers on Macs should check out &lt;a href="http://www.alfredapp.com/"&gt;Alfred App&lt;/a&gt;.  It’s a launcher application that also does web searches and a few other things.  In particular, it enables you to define custom searches that you can quickly access with a hot key from wherever you are.  I am using the two following custom searches to quickly search through Hackage and Hoogle:&lt;/div&gt;    &lt;blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"&gt;  &lt;div&gt;hackage &lt;a href="http://www.google.com/search?hl=en&amp;as_sitesearch=hackage.haskell.org%2Fpackage&amp;as_q=%7Bquery%7D"&gt;&lt;a href="http://www.google.com/search?hl=en&amp;as_sitesearch=hackage.haskell.org%2Fpackage&amp;as_q=%7Bquery%7D"&gt;http://www.google.com/search?hl=en&amp;as_sitesearch=hackage.haskell.org%2Fpackage&amp;as_q={query}&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;  &lt;div&gt;hoogle  &lt;a href="http://www.haskell.org/hoogle/?hoogle=%7Bquery%7D"&gt;&lt;a href="http://www.haskell.org/hoogle/?hoogle=%7Bquery%7D"&gt;http://www.haskell.org/hoogle/?hoogle={query}&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;  &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div&gt;The strings “hackage” and “hoogle” are the keywords, followed by the query strings.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/quickly-searching-hackage-and-hoogle-on-mac-o"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/quickly-searching-hackage-and-hoogle-on-mac-o#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/1478905129</link><guid>http://tumblr.justtesting.org/post/1478905129</guid><pubDate>Thu, 04 Nov 2010 22:48:59 +1100</pubDate><category>alfredapp</category><category>haskell</category><category>mac</category></item><item><title>Accelerating Haskell Array Codes with Multicore GPUs</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;In the paper &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/CKLM+10.html"&gt;Accelerating Haskell Array Codes with Multicore GPUs&lt;/a&gt;, we describe &lt;i&gt;Accelerate&lt;/i&gt;, embedded language for array computations in Haskell, as well as a dynamic code generator targeting NVIDIA’s CUDA GPGPU programming environment.  Our CUDA code generator is based on the idea of algorithmic skeletons for parallel programming, minimises re-compilation overheads, and overlaps host-to-device data transfers, code generation, and kernel execution.&lt;div&gt;The paper outlines our embedding in Haskell, details the design and implementation of the dynamic code generator, and reports on initial benchmark results.  These results indicate that we can compete with moderately optimised native CUDA code, while enabling much simpler source programs.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/accelerating-haskell-array-codes-with-multico"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/accelerating-haskell-array-codes-with-multico#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/1296973985</link><guid>http://tumblr.justtesting.org/post/1296973985</guid><pubDate>Tue, 12 Oct 2010 16:26:57 +1100</pubDate><category>edsl</category><category>gpgpu</category><category>haskell</category><category>parallelism</category></item><item><title>Second beta release for the CUDA backend of Accelerate</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;The second beta release of &lt;a href="http://www.cse.unsw.edu.au/~chak/project/accelerate/"&gt;Data.Array.Accelerate&lt;/a&gt; (version 0.8.0.0) includes support for all array operations in the CUDA backend — except for a new stencil operation that is new in this release and currently only supported by the interpreter.  The CUDA backend requires CUDA 3.x and has been tested on consumer-grade GeForce cards, TESLA high-performance GPUs, and the new Fermi cards.&lt;div&gt;If you are interested in general-purpose GPU programming in Haskell, give this release a spin — it is available on &lt;a href="http://hackage.haskell.org/package/accelerate"&gt;Hackage.&lt;/a&gt;  While it is far from perfect, it should already prove useful for a considerable range of applications.  Together with the other Accelerate developers, I would be very interested to hear what works for you and what doesn’t.  We are also interested in suggestions for the future development of the library.  Accelerate has a &lt;a href="http://projects.haskell.org/cgi-bin/mailman/listinfo/accelerate"&gt;mailing list&lt;/a&gt; and a &lt;a href="http://trac.haskell.org/accelerate"&gt;bug tracker&lt;/a&gt; on which we also accept feature requests.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/second-beta-release-for-the-cuda-backend-of-a"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/second-beta-release-for-the-cuda-backend-of-a#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/992439344</link><guid>http://tumblr.justtesting.org/post/992439344</guid><pubDate>Sun, 22 Aug 2010 21:57:34 +1000</pubDate><category>edsl</category><category>gpgpu</category><category>haskell</category><category>parallelism</category></item><item><title>First release of the CUDA backend for Accelerate</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;During the first Australian Haskell Hackathon, AusHac2010, we finally managed to complete the integration of the CUDA backend, written by Sean Lee and Trevor McDonell, into the array EDSL &lt;a href="http://www.cse.unsw.edu.au/~chak/project/accelerate/"&gt;Accelerate&lt;/a&gt;.  It still doesn’t cover the complete functionality of the current version of the Accelerate EDSL, but already allows for interesting GPU computations.  The &lt;a href="http://hackage.haskell.org/package/accelerate"&gt;package source&lt;/a&gt; (version 0.7.1.0) can be obtained from Hackage as usual.  There is now also a &lt;a href="http://trac.haskell.org/accelerate"&gt;bug tracker.&lt;/a&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/first-release-of-the-cuda-backend-for-acceler"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/first-release-of-the-cuda-backend-for-acceler#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/827945988</link><guid>http://tumblr.justtesting.org/post/827945988</guid><pubDate>Mon, 19 Jul 2010 00:31:11 +1000</pubDate><category>edsl</category><category>gpgpu</category><category>haskell</category><category>parallelism</category></item><item><title>Singleton: A general-purpose dependently-typed assembly language</title><description>&lt;div class="posterous_autopost"&gt;In the paper &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/WC10.html"&gt;Singleton: A general-purpose dependently-typed assembly language&lt;/a&gt;, we introduce Singleton, a typed assembly language that embeds a variant of the &lt;i&gt;calculus of inductive constructions (CiC)&lt;/i&gt; as an assertion language in its type system.  Moreover, Singleton procedures can abstract over propositions and proof terms.  Singleton’s name comes form its support for &lt;i&gt;generalised singleton types&lt;/i&gt; that allow the values from arbitrary inductive types to be associated with the contents of registers and memory locations. Together these features allow strong statements to be made about the functional behaviour of Singleton programs.&lt;div&gt;Singleton’s development was motivated by the desire for a typed assembly language that can establish high-level properties that are not implied by type safety alone, a requirement that we encountered in the context of runtime verification.  For more details on that context, see our previous papers &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/WC05.html"&gt;Secure Untrusted Binaries - Provably!&lt;/a&gt; and &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/WKC06.html"&gt;On the automated synthesis of proof-carrying temporal reference monitors&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;Simon Winwood, on whose PhD work the paper is based, established basic properties of Singleton’s type system, namely type safety and a type erasure property, using the Coq proof assistant: &lt;a href="http://www.cse.unsw.edu.au/~sjw/thesis/proofs/"&gt;proof scripts&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/singleton-a-general-purpose-dependently-typed"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/singleton-a-general-purpose-dependently-typed#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/823545068</link><guid>http://tumblr.justtesting.org/post/823545068</guid><pubDate>Sat, 17 Jul 2010 22:31:10 +1000</pubDate><category>code certification</category><category>security</category><category>tal</category><category>types</category></item><item><title>Haskell 2010 is complete!</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;The final version of the Haskell 2010 edition has been released: &lt;a href="http://www.haskell.org/pipermail/haskell/2010-July/022189.html"&gt;&lt;a href="http://www.haskell.org/pipermail/haskell/2010-July/022189.html"&gt;http://www.haskell.org/pipermail/haskell/2010-July/022189.html&lt;/a&gt;&lt;/a&gt;    This completes my stewardship of the Haskell foreign function interface specification. It is now part of the language standard proper. The next language feature I personally like to see being integrated are type families, but that still requires much work.      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/haskell-2010-is-complete"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/haskell-2010-is-complete#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/780658300</link><guid>http://tumblr.justtesting.org/post/780658300</guid><pubDate>Wed, 07 Jul 2010 20:48:39 +1000</pubDate><category>ffi</category><category>haskell</category><category>haskell2010</category></item><item><title>New paper: An LLVM Backend For GHC</title><description>&lt;p&gt;&lt;div class="posterous_autopost"&gt;In &lt;a href="http://www.cse.unsw.edu.au/~chak/papers/TC10.html"&gt;An LLVM Backend For GHC&lt;/a&gt;, we describe the design and implementation of an LLVM backend for the Glasgow Haskell Compiler (GHC).  We outline the conceptual obstacles that we had to overcome and give a detailed performance analysis of the new backend compared to the existing C backend and native code generator.      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/new-paper-an-llvm-backend-for-ghc"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/new-paper-an-llvm-backend-for-ghc#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;/p&gt;</description><link>http://tumblr.justtesting.org/post/699978741</link><guid>http://tumblr.justtesting.org/post/699978741</guid><pubDate>Tue, 15 Jun 2010 15:32:04 +1000</pubDate><category>codegen</category><category>compilers</category><category>ghc</category><category>haskell</category><category>llvm</category></item><item><title>One week with iPad</title><description>&lt;div class="posterous_autopost"&gt;&lt;div&gt;When I decided to by an iPad, I had one killer application in mind: reading.  I was hoping the device would also be useful otherwise, but cutting down on printing papers and the like was my main aim.  As a researcher, I inevitably read a lot: research papers, books, reports, manuals, thesis drafts, the drafts of my own work-in-progress papers, and so on.  I have got reading material on my desk at home, in my office, in my bag…it’s a mess.  The prospect of consolidating it all into one device, which would hopefully also cover most of my note taking and sketching out of ideas, was enough to sell me on the iPad.&lt;/div&gt;&lt;div&gt;So, how did it work out?  So far, very well — but slightly more than a week of use makes it hard to draw any final conclusions.  The printed area of a paper is about the same as the size of the iPad screen, which combined with the high quality of the display makes for a good reading experience.  Instead of printing a paper or other document I like to read, I now sync it to my iPad —usually using &lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;— and read it with &lt;a href="http://itunes.apple.com/au/app/goodreader-for-ipad/id363448914?mt=8"&gt;GoodReader for iPad&lt;/a&gt;.  If I expect that I may want to refer to a paper at a later time, I’m adding it to my mobile library kept in &lt;a href="http://itunes.apple.com/au/app/papers/id304655618?mt=8"&gt;Papers&lt;/a&gt;.  If I need to annotate a document —for example, for a review— I currently use &lt;a href="http://itunes.apple.com/au/app/iannotate-pdf/id363998953?mt=8"&gt;iAnnotate PDF&lt;/a&gt;.  I like Dropbox, GoodReader, and Papers, but I’m only using iAnnotate as there doesn’t seem to be an alternative at the moment — the user interface is pretty rough.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;In addition, I found over the last week that iPad is also the perfect Twitter device (I’m currently using &lt;a href="http://itunes.apple.com/au/app/twitterrific-for-ipad/id359914600?mt=8"&gt;Twitterific for iPad&lt;/a&gt;), and great for reading blogs and online articles, which I often file away for later reading on my iPad using &lt;a href="http://www.instapaper.com/"&gt;Instapaper&lt;/a&gt;.&lt;/div&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://justtesting.org/one-week-with-ipad"&gt;Just Testing&lt;/a&gt; | &lt;a href="http://justtesting.org/one-week-with-ipad#comment"&gt;&lt;span style="font-size: 11px"&gt;Comment »&lt;/span&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;</description><link>http://tumblr.justtesting.org/post/671416273</link><guid>http://tumblr.justtesting.org/post/671416273</guid><pubDate>Mon, 07 Jun 2010 11:16:42 +1000</pubDate><category>iPad</category></item></channel></rss>

