Difference between revisions of "DHD UHac/DHD Program"

From HaskellWiki
Jump to navigation Jump to search
(Add Roman)
(Added Category:Community)
 
(41 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
   
This is the current program for the Dutch HUG Day. It may still change.
+
This is the final program for the Dutch HUG Day.
   
 
{| class="wikitable"
 
{| class="wikitable"
Line 9: Line 9:
 
|-
 
|-
 
| 9:30
 
| 9:30
| Coffee and Tea
+
| colspan="2" | ''Coffee and Tea''
|
 
 
|-
 
|-
 
| 10:00
 
| 10:00
Line 17: Line 16:
 
|-
 
|-
 
| 10:15
 
| 10:15
| [[#websockets|WebSockets]]
+
| [[#websockets|Supporting Different Versions of the WebSockets Protocol]]
 
| Jasper Van der Jeugt
 
| Jasper Van der Jeugt
 
|-
 
|-
 
| 10:45
 
| 10:45
| [[#hesselink|''TBD'']]
+
| [[#hesselink|Building Your Own Haskell Ecosystem]]
 
| Erik Hesselink
 
| Erik Hesselink
 
|-
 
|-
 
| 11:15
 
| 11:15
  +
| [[#pascal|Model Checking Abstract Syntax Trees]]
|colspan="2"| ''Available''
 
  +
| Pascal Hof
 
|-
 
|-
 
| 11:45
 
| 11:45
Line 31: Line 31:
 
|-
 
|-
 
|
 
|
| [[#dotfs|DotFS]]
+
| [[#dotfs|DotFS - or How Fred Solved His Config Clutter]]
 
| Paul van der Walt, Sjoerd Timmer
 
| Paul van der Walt, Sjoerd Timmer
 
|-
 
|-
Line 39: Line 39:
 
|-
 
|-
 
|
 
|
| [[#case-study|Case Study Invitation]]
+
| [[#case-study|Invitation to Participate in a Functional Programming Case Study]]
 
| Jurriaan Hage
 
| Jurriaan Hage
 
|-
 
|-
 
| 12:15
 
| 12:15
| colspan="2" | ''Lunch (Provided by Ordina)''
+
| colspan="2" | ''Lunch (provided by Ordina)''
 
|-
 
|-
 
| 13:15
 
| 13:15
| [[#practice|Haskell in Practice]]
+
| [[#practice|Haskell in Practice: How Haskell Has Been Used in a (Paid) IT Project]]
 
| Stef Joosten, Martijn Schrage
 
| Stef Joosten, Martijn Schrage
 
|-
 
|-
 
| 13:45
 
| 13:45
| [[#fclabels|fclabels]]
+
| [[#fclabels|fclabels: First Class Record Labels for Haskell]]
 
| Sebastiaan Visser
 
| Sebastiaan Visser
 
|-
 
|-
 
| 14:15
 
| 14:15
  +
| [[#kinds|GHC 7.6, More Well-Typed Than Ever]]
|colspan="2"| ''Available''
 
  +
| José Pedro Magalhães
 
|-
 
|-
 
| 14:45
 
| 14:45
Line 64: Line 65:
 
|-
 
|-
 
|
 
|
| Applicative Regular Expressions
+
| [[#regex-applicative|Applicative Regular Expressions]]
 
| Roman Cheplyaka
 
| Roman Cheplyaka
 
|-
 
|-
 
|
 
|
  +
| [[#homepage|How I Generate My Homepage]]
| Ji
 
  +
| Wouter Swierstra
| Chris Done (tentative)
 
 
|-
 
|-
 
| 15:15
 
| 15:15
Line 76: Line 77:
 
|-
 
|-
 
| 15:30
 
| 15:30
| Depart for UHac
+
|colspan="2"| ''Depart for UHac''
|
 
 
|}
 
|}
   
Line 84: Line 84:
 
=== <span id="websockets"></span>Supporting Different Versions of the WebSockets Protocol ===
 
=== <span id="websockets"></span>Supporting Different Versions of the WebSockets Protocol ===
   
Jasper Van der Jeugt (Ghent)
+
Jasper Van der Jeugt (UGent)
   
 
The Haskell websockets library allows you to write WebSocket-enabled
 
The Haskell websockets library allows you to write WebSocket-enabled
Line 94: Line 94:
 
allowing the latest features.
 
allowing the latest features.
   
  +
* [http://jaspervdj.be/files/2012-dutchhug-websockets.pdf Slides]
=== <span id="hesselink"></span>''TBD'' ===
 
  +
* [http://jaspervdj.be/websockets/ websockets] home page
  +
* [http://hackage.haskell.org/package/websockets websockets] on Hackage
  +
* [https://github.com/jaspervdj/websockets websockets] on GitHub
  +
* [http://vimeo.com/41171122 video] on Vimeo
  +
  +
=== <span id="hesselink"></span>Building Your Own Haskell ecosystem ===
   
 
Erik Hesselink (Silk)
 
Erik Hesselink (Silk)
   
  +
When you develop a lot of different Haskell packages that work together, managing all these packages and their versions can be difficult. In this talk, I'll explain how we deal with this at Silk. I will show how to use Hackage 2.0 to build your own internal package repository, how to use cabal-dev to manage installed packages, and show a tool for bumping package versions. Together, this makes working on large amounts of packages with multiple people much easier.
=== <span id="dotfs"></span>DotFS - Or How Fred Solved His Config Clutter ===
 
  +
  +
* [https://github.com/spl/dhd-2012-slides/raw/master/erik-hesselink-ecosystem.pdf Slides]
  +
* [http://hackage.haskell.org/package/bumper bumper] on Hackage
  +
* [https://github.com/silkapp/bumper bumper] on GitHub
  +
* [https://vimeo.com/41212671 video] on Vimeo
  +
  +
=== <span id="pascal"></span>Model Checking Abstract Syntax Trees ===
  +
  +
Pascal Hof (TU Dortmund)
  +
  +
Model checking turned out to be a useful tool for the analysis of programs. Usually one transforms abstract syntax trees to control flow graphs, which offer a abstract representation of program behavior. Whenever one is not focused on program behavior but on structural properties of the program (e.g. semantic analysis of a compiler), model checking the abstract syntax tree comes in handy. My talk introduces a problem, which can be solved using model checking abstract syntax trees. Additionally, different approaches for a implementation will be discussed.
  +
  +
* [https://github.com/spl/dhd-2012-slides/raw/master/pascal-hof-model-checking.pdf Slides]
  +
* [https://github.com/pascalh/modelchecking modelchecking] on GitHub
  +
* [https://vimeo.com/42269564 video] on Vimeo
  +
  +
=== <span id="dotfs"></span>DotFS - or How Fred Solved His Config Clutter ===
   
 
Paul van der Walt (UU), Sjoerd Timmer (UU)
 
Paul van der Walt (UU), Sjoerd Timmer (UU)
   
 
Everyone who has more than one account on Linux/Unix/OS X systems knows how hard is can be to keep track of all the different config files in your home directory. <tt>.vimrc</tt>, <tt>.muttrc</tt>, <tt>.hgrc</tt>, <tt>.screenrc</tt>, <tt>.bashrc</tt>, and <tt>.xinitrc</tt> are just a few, but we're sure you can come up with many more yourself. Imagine how wonderful your life could be if you just had an easy tool to keep track of different versions of all these files on all your machines. We argue that traditional version control systems on their own are not up the task and we provide an alternative.
 
Everyone who has more than one account on Linux/Unix/OS X systems knows how hard is can be to keep track of all the different config files in your home directory. <tt>.vimrc</tt>, <tt>.muttrc</tt>, <tt>.hgrc</tt>, <tt>.screenrc</tt>, <tt>.bashrc</tt>, and <tt>.xinitrc</tt> are just a few, but we're sure you can come up with many more yourself. Imagine how wonderful your life could be if you just had an easy tool to keep track of different versions of all these files on all your machines. We argue that traditional version control systems on their own are not up the task and we provide an alternative.
  +
  +
* [http://prezi.com/-acujvowpciq/dotfs Slides] on prezi.com
  +
* [http://hackage.haskell.org/package/dotfs dotfs] on Hackage
  +
* [https://github.com/toothbrush/dotfs dotfs] on GitHub
  +
* [https://vimeo.com/42304273 video] on Vimeo
   
 
=== <span id="gruze"></span>Snap and Gruze ===
 
=== <span id="gruze"></span>Snap and Gruze ===
Line 108: Line 136:
 
Kevin Jardine
 
Kevin Jardine
 
 
Snap and Gruze. Developing an astronomy application using Snap and an experimental entity-attribute-value store for Haskell.
+
Developing an astronomy application using Snap and an experimental entity-attribute-value store for Haskell.
  +
  +
* [https://github.com/kevinjardine/Gruze-Store Gruze-Store] on GitHub
  +
* [https://vimeo.com/42323502 video] on Vimeo
  +
 
=== <span id="case-study"></span>Invitation to Participate in a Functional Programming Case Study ===
 
=== <span id="case-study"></span>Invitation to Participate in a Functional Programming Case Study ===
   
Line 126: Line 158:
 
participants.
 
participants.
   
  +
* [http://www.cs.uu.nl/wiki/pub/Hage/ResearchTalks/holmes-slides.pdf Slides]
=== <span id="practice"></span>Haskell in Practice: How Haskell Has Been Used in a (Paid) IT Project. ===
 
  +
=== <span id="practice"></span>Haskell in Practice: How Haskell Has Been Used in a (Paid) IT Project ===
   
Stef Joosten (Ordina), Martijn Schrage (Oblomov Systems)
+
Stef Joosten (Ordina), Martijn Schrage ([http://www.oblomov.com Oblomov Systems])
   
 
This presentation shows how new thinking helps the judiciary to gain control over and to reduce cost in a landscape of many different IT systems that serve the courts of law in the Netherlands.
 
This presentation shows how new thinking helps the judiciary to gain control over and to reduce cost in a landscape of many different IT systems that serve the courts of law in the Netherlands.
Line 135: Line 168:
   
 
The presentation is accompanied by a brief demonstration.
 
The presentation is accompanied by a brief demonstration.
  +
  +
* [http://www.oblomov.com/Documents/AmpersandJoosten-DHD2012.pdf Slides Stef]
  +
* [http://www.oblomov.com/Documents/Ampersand101-DHD2012.pdf Slides Martijn]
  +
* [http://ampersand.sourceforge.net Ampersand] on Sourceforge
   
 
=== <span id="fclabels"></span>fclabels: First Class Record Labels for Haskell ===
 
=== <span id="fclabels"></span>fclabels: First Class Record Labels for Haskell ===
Line 140: Line 177:
 
Sebastiaan Visser (Silk)
 
Sebastiaan Visser (Silk)
   
Haskell's record system for algebraic datatypes uses labels as accessors for fields within constructors. Record labels can be used for both selection and modification of individual fields within value, but only selection can be composed in a natural way. The special syntax for updates makes composing modifications very cumbersome. The fclabels package tries to solve this problem by implementing field accessors as first class Haskell values instead of special syntax. Labels are implemented as lenses and can easily be composed for both selection and modification. To avoid boilerplate labels can be derived using Template Haskell. This talk will give a brief introduction into the usage of the library and will show a bit of the inner workings as a bridge to future extensions.
+
Haskell's record system for algebraic datatypes uses labels as accessors for fields within constructors. Record labels can be used for both selection and modification of individual fields within value, but only selection can be composed in a natural way. The special syntax for updates makes composing modifications very cumbersome. The fclabels package tries to solve this problem by implementing field accessors as first class Haskell values instead of special syntax. Labels are implemented as lenses and can easily be composed for both selection and modification. To avoid boilerplate labels can be derived using Template Haskell. This talk will give a brief introduction into the usage of the library and will show a bit of the inner workings as a bridge to future
  +
extensions.
  +
  +
* [http://hackage.haskell.org/package/fclabels fclabels] on Hackage
  +
* [https://github.com/sebastiaanvisser/fclabels fclabels] on GitHub
  +
* [https://vimeo.com/41098956 video] on Vimeo
  +
  +
=== <span id="kinds"></span>GHC 7.6, More Well-Typed Than Ever ===
  +
  +
José Pedro Magalhães (UU)
  +
  +
With each new version, GHC brings new and exciting type-level features to the
  +
Haskell language. In this talk we look at some upcoming features for GHC 7.6:
  +
data kinds, kind polymorphism, type-level literals, and deferred type errors.
  +
We show through some example programs how to take advantage of the new features,
  +
and what possibilities they open for Haskell programmers.
  +
  +
* [http://dreixel.net/research/pdf/ghc7.6mwtte_pres_dhd2012.pdf Slides]
  +
* [https://vimeo.com/42399455 video] on Vimeo
   
 
=== <span id="holes"></span>Holes in GHC ===
 
=== <span id="holes"></span>Holes in GHC ===
Line 147: Line 202:
   
 
This will be a demonstration of work-in-progress on adding holes for type-based debugging with GHC. See the [http://hackage.haskell.org/trac/ghc/wiki/Holes GHC Trac page] for details.
 
This will be a demonstration of work-in-progress on adding holes for type-based debugging with GHC. See the [http://hackage.haskell.org/trac/ghc/wiki/Holes GHC Trac page] for details.
  +
  +
* [https://vimeo.com/42452121 video] on Vimeo
  +
  +
=== <span id="regex-applicative">Applicative Regular Expressions</span> ===
  +
  +
Roman Cheplyaka
  +
  +
In this short talk I am going to describe the
  +
[https://github.com/feuerbach/regex-applicative regex-applicative] project:
  +
* what it is about
  +
* how it compares to other parsing combinator libraries
  +
* its current state and unsolved problems
  +
  +
I'll be glad to accept any help
  +
[http://www.haskell.org/haskellwiki/DHD_UHac/Projects#regex-applicative during UHac].
  +
  +
* [http://ro-che.info/docs/2012-04-20-applicative-regexps.pdf Slides]
  +
* [http://hackage.haskell.org/package/regex-applicative regex-applicative] on Hackage
  +
* [https://github.com/feuerbach/regex-applicative regex-applicative] on GitHub
  +
* [https://vimeo.com/42462403 video] on Vimeo
  +
  +
=== <span id="homepage">How I Generate My Homepage</span> ===
  +
  +
Wouter Swierstra (UU)
  +
  +
* [https://github.com/spl/dhd-2012-slides/raw/master/wouter-swierstra-homepage.pdf Slides]
  +
  +
  +
[[Category:Community]]

Latest revision as of 14:03, 17 December 2012


This is the final program for the Dutch HUG Day.

Time Title Speaker
9:30 Coffee and Tea
10:00 Welcome Sean Leather, Stef Joosten
10:15 Supporting Different Versions of the WebSockets Protocol Jasper Van der Jeugt
10:45 Building Your Own Haskell Ecosystem Erik Hesselink
11:15 Model Checking Abstract Syntax Trees Pascal Hof
11:45 Lightning Talks
DotFS - or How Fred Solved His Config Clutter Paul van der Walt, Sjoerd Timmer
Snap and Gruze Kevin Jardine
Invitation to Participate in a Functional Programming Case Study Jurriaan Hage
12:15 Lunch (provided by Ordina)
13:15 Haskell in Practice: How Haskell Has Been Used in a (Paid) IT Project Stef Joosten, Martijn Schrage
13:45 fclabels: First Class Record Labels for Haskell Sebastiaan Visser
14:15 GHC 7.6, More Well-Typed Than Ever José Pedro Magalhães
14:45 Lightning Talks
Holes in GHC Thijs Alkemade
Applicative Regular Expressions Roman Cheplyaka
How I Generate My Homepage Wouter Swierstra
15:15 Closing Jurriën Stutterheim
15:30 Depart for UHac

Summaries

Supporting Different Versions of the WebSockets Protocol

Jasper Van der Jeugt (UGent)

The Haskell websockets library allows you to write WebSocket-enabled servers in Haskell, bidirectional communication with the browser. However, browsers and their related specifications change fast, and there are different versions of the WebSockets protocol. This talk discusses a type-safe technique which disallows the programmer from using primitives not available in the chosen version, while still allowing the latest features.

Building Your Own Haskell ecosystem

Erik Hesselink (Silk)

When you develop a lot of different Haskell packages that work together, managing all these packages and their versions can be difficult. In this talk, I'll explain how we deal with this at Silk. I will show how to use Hackage 2.0 to build your own internal package repository, how to use cabal-dev to manage installed packages, and show a tool for bumping package versions. Together, this makes working on large amounts of packages with multiple people much easier.

Model Checking Abstract Syntax Trees

Pascal Hof (TU Dortmund)

Model checking turned out to be a useful tool for the analysis of programs. Usually one transforms abstract syntax trees to control flow graphs, which offer a abstract representation of program behavior. Whenever one is not focused on program behavior but on structural properties of the program (e.g. semantic analysis of a compiler), model checking the abstract syntax tree comes in handy. My talk introduces a problem, which can be solved using model checking abstract syntax trees. Additionally, different approaches for a implementation will be discussed.

DotFS - or How Fred Solved His Config Clutter

Paul van der Walt (UU), Sjoerd Timmer (UU)

Everyone who has more than one account on Linux/Unix/OS X systems knows how hard is can be to keep track of all the different config files in your home directory. .vimrc, .muttrc, .hgrc, .screenrc, .bashrc, and .xinitrc are just a few, but we're sure you can come up with many more yourself. Imagine how wonderful your life could be if you just had an easy tool to keep track of different versions of all these files on all your machines. We argue that traditional version control systems on their own are not up the task and we provide an alternative.

Snap and Gruze

Kevin Jardine

Developing an astronomy application using Snap and an experimental entity-attribute-value store for Haskell.

Invitation to Participate in a Functional Programming Case Study

Jurriaan Hage (UU)

I want to invite you to participate in an experiment in Haskell. In this experiment we are going to pit HaRe (the Haskell Refactorer) against Holmes (my plagiarism detector). The goal is to find out how much time somebody needs to refactor a Haskell program into something that is not recognizable by Holmes as plagiarism. We shall be looking at two groups of study: experienced programmers (we shall pretend they are paid for by newbies to make their assignments for them, and to do so without starting from scratch), and the newbies themselves. This experiment is a collaboration with Simon Thompson of Kent. He will take charge of the newbies, my task is to perform the experiment with experienced Haskell programmers, which is why I am now seeking for participants.

Haskell in Practice: How Haskell Has Been Used in a (Paid) IT Project

Stef Joosten (Ordina), Martijn Schrage (Oblomov Systems)

This presentation shows how new thinking helps the judiciary to gain control over and to reduce cost in a landscape of many different IT systems that serve the courts of law in the Netherlands.

Although Haskell plays a role outside the limelight, the results have become possible because of a tool, Ampersand, which has been built in Haskell.

The presentation is accompanied by a brief demonstration.

fclabels: First Class Record Labels for Haskell

Sebastiaan Visser (Silk)

Haskell's record system for algebraic datatypes uses labels as accessors for fields within constructors. Record labels can be used for both selection and modification of individual fields within value, but only selection can be composed in a natural way. The special syntax for updates makes composing modifications very cumbersome. The fclabels package tries to solve this problem by implementing field accessors as first class Haskell values instead of special syntax. Labels are implemented as lenses and can easily be composed for both selection and modification. To avoid boilerplate labels can be derived using Template Haskell. This talk will give a brief introduction into the usage of the library and will show a bit of the inner workings as a bridge to future extensions.

GHC 7.6, More Well-Typed Than Ever

José Pedro Magalhães (UU)

With each new version, GHC brings new and exciting type-level features to the Haskell language. In this talk we look at some upcoming features for GHC 7.6: data kinds, kind polymorphism, type-level literals, and deferred type errors. We show through some example programs how to take advantage of the new features, and what possibilities they open for Haskell programmers.

Holes in GHC

Thijs Alkemade (UU)

This will be a demonstration of work-in-progress on adding holes for type-based debugging with GHC. See the GHC Trac page for details.

Applicative Regular Expressions

Roman Cheplyaka

In this short talk I am going to describe the regex-applicative project:

  • what it is about
  • how it compares to other parsing combinator libraries
  • its current state and unsolved problems

I'll be glad to accept any help during UHac.

How I Generate My Homepage

Wouter Swierstra (UU)