https://wiki.haskell.org/api.php?action=feedcontributions&user=ErrGe&feedformat=atomHaskellWiki - User contributions [en]2022-01-27T04:39:00ZUser contributionsMediaWiki 1.27.4https://wiki.haskell.org/index.php?title=ZuriHac2015&diff=59802ZuriHac20152015-05-29T10:02:14Z<p>ErrGe: Add link to talks</p>
<hr />
<div>[[Image:ZuriHac2015.png|right]]<br />
<br />
----<br />
{|<br />
|When:<br />
|Friday 29th of May 2015 - Sunday 31st of May 2015<br />
|-<br />
|Where:<br />
|Google, Zurich, Switzerland<br />
|}<br />
----<br />
<br />
<big>Talks by [[File:kmett.jpg|50px]] [https://github.com/ekmett Edward Kmett] and [[File:duncan.jpg|50px]] [http://www.well-typed.com/people/duncan/ Duncan Coutts]</big><br />
<br />
'''Important:'''<br><br />
Switzerland has [http://en.wikipedia.org/wiki/AC_power_plugs_and_sockets#Swiss_SEV_1011_.28Type_J.29 its own power sockets]. We can't provide converters for everybody so make sure to bring one along. Do note that the [http://en.wikipedia.org/wiki/Europlug Europlug] will fit in a Swiss power socket.<br />
<br />
&nbsp;<br />
<br />
== About ==<br />
<br />
On the last weekend of May 2015, the [http://www.meetup.com/haskellerz Zurich Haskell Meetup group] will organize ZuriHac 2015, a three day Haskell Hackathon hosted at the Google offices.<br />
<br />
This is the fourth Haskell Hackathon in Zurich. The previous three were [[ZuriHac2014]], [[ZuriHac2013]], and [[ZuriHac2010]].<br />
<br />
The Haskell Hackathon is an international, grassroots collaborative coding festival with a simple focus: build and improve Haskell libraries, tools, and infrastructure.<br />
<br />
This is a great opportunity to meet your fellow Haskellers in real life,<br />
find new contributors for your project, improve existing libraries and tools or<br />
even start new ones!<br />
<br />
This year, we want to have a special focus on beginners. During the whole event there will be beginners' mentors on site who you can directly approach at any time with any Haskell-related question you might have. Also, we will be having introductory talks for beginners, focusing on conveying experience that cannot simply be gathered by reading books or blog posts.<br />
<br />
== Sponsors ==<br />
<br />
[[File:Google.png|230px]]<br />
<br />
[http://www.google.com/about/jobs/locations/zurich/ Google Switzerland] hosts the Hackathon.<br />
<br />
== Venue notice ==<br />
<br />
Visitors are not allowed to take any photos in the venue. No distribution of any Google work-related information visible inside the building. Visitors should always have a visitor sticker visible. Guests can not be left unattended.<br />
<br />
== News ==<br />
<br />
;27th of May 15<br />
:the [[/BBQ|BBQ will take place on Friday 29th of May]] ('''do bring some warm clothes''')<br />
<br />
;25th of May 15<br />
:Extended [https://www.google.com/maps/d/edit?mid=zizk28jdgSYw.kTu0mNVlZpBo venue map] with some Zurich by Night suggestions<br />
<br />
;9th of April 15<br />
:Confirmed beginners' talks<br />
<br />
;26th of March 15<br />
:Edward Kmett announced his talk title<br />
<br />
;6th of March 15<br />
:Duncan Coutts confirmed as second invited speaker; swapping days with Edward.<br />
;4th of March 15<br />
:Registration is open<br />
<br />
;10th of February 15<br />
:Added wiki page<br />
<br />
== Registration ==<br />
We have reached our maximum capacity. If you want to be queued into the wait list please still fill out this form: http://goo.gl/forms/L24NgFRvCw<br />
<br />
If somebody cancels, we will fill up the seats from the wait list in first come first serve order. Please don't book anything before we have confirmed a seat for you.<br />
<br />
== Attendees ==<br />
Here is the [[/Attendees|list of participants]] who have signed up for ZuriHac 2015 and have chosen their name to be listed there.<br />
<br />
And here is the distribution of the expertise level of all of the participants:<br />
<br />
{|<br />
! Beginner !! Advanced !! Expert<br />
|-<br />
| 51 || 49 || 20<br />
|}<br />
<br />
45 participants offered to be a beginners' mentor for half a day (thank you!).<br />
<br />
== Location ==<br />
[[File:ZurichMontage.jpg|300px|right]]<br />
<br />
'''Zurich, Switzerland'''<br />
<br />
Here is a map with [https://www.google.com/maps/d/edit?mid=zizk28jdgSYw.kTu0mNVlZpBo map with all important locations].<br />
<br />
To learn more about the city, please see the [http://en.wikipedia.org/wiki/Zurich '''Wikipedia'''] and [http://wikitravel.org/en/Zurich '''Wikitravel'''] articles.<br />
<br />
See here for [http://www.zvv.ch/ public transport in the Zurich area].<br />
<br />
'''A note on day tickets:'''<br />
<br />
Day tickets in Zurich run for 24 hours and can be used on all forms of transport, bus, train, tram.<br />
<br />
If you arrive via airplane, please note that the airport is outside of the zone 10, which only covers the city of Zurich itself. Since zone 10 counts double, you will need a ticket for 3 zones then.<br />
<br />
You can buy tickets from [http://www.zvv.ch/en/tickets/automatic-ticket-machine/index.html the ticket machines].<br />
<br />
Please note that all public transit in Zürich '''is free on Sunday''' (more precisely from Sunday, May 31st, 00.00, to June 1st, 05.00) due to anniversary of ZVV.<br />
<br />
== Accommodation ==<br />
<br />
We recommend the following accommodation options:<br />
<br />
* http://www.langstars.com/en/ Youthhostel, CHF 50 per night.<br />
<br />
* https://www.airbnb.com/ Airbnb, variable.<br />
<br />
* Hotel Neufeld, http://www.hotel-neufeld.ch/.<br />
<br />
== Schedule ==<br />
{|<br />
|-<br />
! !! Friday !! Saturday !! Sunday<br />
|-<br />
| 9am || doors open || doors open || doors open<br />
|-<br />
| 10am || opening ceremony & projects intro (*1) || ||<br />
|-<br />
| 11am || Jannis Limperg, Monads by example (*4) || Gergely Risko, Template Haskell (*4) || Johan Tibell, Performance (*4)<br />
|-<br />
| 12pm || || lunch snacks (*3) || pizza lunch (*6)<br />
|- <br />
| 1pm || Oliver Charles, Web programming (*4) || Mathieu Boespflug, Distributed programming (*4) ||<br />
|-<br />
| 2pm || proper lunch (*5) || || project summaries (*1)<br />
|-<br />
| 3pm || || ||<br />
|-<br />
| 4pm || Duncan Coutts, Better faster binary serialization || Edward Kmett, Discrimination is Wrong: Improving Productivity ||<br />
|-<br />
| 5pm || buy food and head to || ||<br />
|-<br />
| 6pm || the [[/BBQ|BBQ at the lake]] || || doors close<br />
|-<br />
| 7pm || *sizzle,sizzle* || ||<br />
|-<br />
| 8pm || *chomp* =) =) || doors close ||<br />
|}<br />
<br />
=== Notes ===<br />
(*1) If you are hosting a project, please be there to both introduce it and give a summary afterwards. Also, please add your project to the [[/Projects|projects page]].<br />
<br />
(*3) We will provide salad and sandwiches or similar snacks for you. Because of limited budget we cannot serve a real lunch meal every day. Of course you can go to a local grocery shop and bring food and drinks with you.<br />
<br />
(*4) Beginners' track; Those talks will happen in a separate area, so if you don't want to attend you won't be disturbed.<br />
<br />
(*5) On Friday we will provide a proper lunch mean.<br />
<br />
(*6) On Sunday we will provide three types of pizzas and a salad.<br />
<br />
== Talks ==<br />
<br />
The links to the slides of the talks can be found on the [https://github.com/meiersi/HaskellerZ#2015-meetups '''HaskellerZ github page'''].<br />
<br />
=== Edward Kmett ===<br />
Title: Discrimination is Wrong: Improving Productivity<br />
<br />
Abstract:<br />
This talk is a case study in library design in Haskell.<br />
<br />
Fritz Henglein has shown through a number of excellent papers how to use "discrimination" to do lots of things in O(n): Sorting many more data types than you'd expect, table joins, etc.<br />
<br />
In the process of optimizing this approach and wrapping it up in a form that can be easily consumed, we'll take a lot of detours through the different ways you can think about code when optimizing Haskell.<br />
<br />
* We'll need some category theory, from a deeper understanding of monoids to Day convolution.<br />
* We'll need to consider final and initial encodings.<br />
* We'll need to drift down to low level system concerns from building a custom foreign prim to nesting unsafePerformIO within unsafePerformIO.<br />
* We'll need properties of laziness from productivity to IVars.<br />
<br />
Along the way we'll find and fix a small problem with the initial discrimination paper, which opens the door to streaming results, rather than having to wait until all the input is ready.<br />
<br />
=== Duncan Coutts ===<br />
Title: Better faster binary serialization<br />
<br />
Abstract:<br />
<br />
This talk is a case study in low level optimization in Haskell.<br />
<br />
We have existing libraries for binary serialization but the mainstream<br />
ones use bad formats, and could always be faster. We will look at new<br />
work to improve on the existing libraries, to use a new better format,<br />
and to dramatically improve performance.<br />
<br />
We will go into the details of a number of standard and new techniques<br />
for getting a good combination of performance with features and<br />
flexibility.<br />
<br />
* High+low level approach to eliminating unnecessary allocations in deserialization<br />
* Surprising use of deep embeddings and interpreters<br />
* Moving work from compiled code to an interpreter<br />
* Rewrite rules to improve interpreted code<br />
* Deep embedding of composition to give statically allocated descriptions of branching programs<br />
* Types to safely use unsafe low level data structures<br />
* Looking at STG code to see allocations and other problems<br />
* Fast path / slow path tricks<br />
* Explicit control stacks<br />
* ABIs / calling conventions for unknown functions<br />
<br />
There'll be plenty of code, types and benchmarks.<br />
<br />
=== Jannis Limperg ===<br />
Title: Monads by example<br />
<br />
Abstract: The Monad type class is used extensively in both the Haskell standard<br />
library and numerous third-party libraries for all sorts of domains.<br />
Yet, it is also one of the most infamous roadblocks for Haskell<br />
beginners, which this talk aims to address.<br />
<br />
In order to build an intuition for what a Monad 'is' and especially for<br />
how it's useful in everyday programming, we will take a look at several<br />
important instances of the Monad class from the standard library (and<br />
the de-facto standard transformers package): Maybe, Either, [], State<br />
and IO. The examples will focus for the most part on how these very<br />
different types are all instances of the abstract concept of a Monad,<br />
and how using this abstraction and the associated syntactic sugar (do<br />
notation) can lead to cleaner, more readable code. Afterwards, we will<br />
take a look at how the Monad class is defined by a set of simple laws<br />
that every Monad instance must obey. Time permitting, we may also touch<br />
upon slightly more advanced topics such as Monad transformers and how<br />
Monads are related to Functors and Applicative Functors.<br />
<br />
Prerequisites: [http://learnyouahaskell.com/chapters LYAH] up to and including chapter 8 (or of course<br />
anything else that covers the same topics). In particular, a basic<br />
understanding of algebraic data types and type classes is essential.<br />
<br />
=== Oliver Charles ===<br />
Title: An Introduction to Web Programming<br />
<br />
Abstract: For many people, Haskell is not their first programming language - a lot of us learnt to program in other languages like Python or Java, and would like to be able to use Haskell to solve practical problems. However, what seem to be simple web applications in other languages can be daunting to even begin using Haskell. In this talk, we'll look at how to build a small web application to allow ZuriHac participants to share what they have been working on. We'll use the Spock web framework along with postgresql-simple to build a basic CRUD application, and see how we can start prototyping a simple web application within minutes.<br />
<br />
=== Gergely Risko ===<br />
Title: Template Haskell<br />
<br />
Abstract: Template Haskell is the meta programming extension for GHC. In this<br />
talk we will investigate and livecode some basic concepts of code<br />
generation and code introspection provided by this facility. We will<br />
also take a look on an example: the hflags command line parsing<br />
library.<br />
<br />
=== Mathieu Boespflug ===<br />
Title: Distributed Programming<br />
<br />
Abstract: TBD<br />
<br />
=== Johan Tibell ===<br />
Title: Performance<br />
<br />
Abstract: Production quality code not only needs to compute the correct result,<br />
but needs to do so within some given resource constraints (i.e. time<br />
and memory). We'll look at the most common optimizations you can use<br />
to make your Haskell code perform better and some rules of thumb you<br />
can use in your daily Haskell programming to avoid some performance<br />
problems "by design".<br />
<br />
== Projects ==<br />
See the [[/Projects|projects page]].<br />
<br />
== Communication ==<br />
If you have any questions before the event, please reach out to Gleb Peregud <gleber.p@gmail.com> or Alexander Bernauer <acopton@gmail.com>. If you are a confirmed participant, you will receive update emails from Gleb or Alex as well.<br />
<br />
Before the event, and in particular during the event, you can find us and other participants on irc://freenode.net/#zurihac. In addition, feel free to post on Twitter and Google+ using the hashtag '''#zurihac'''.<br />
<br />
== Organizers ==<br />
The events are organized in name of the [http://www.meetup.com/HaskellerZ/ Zurich Haskell meetup group] by the following people:<br />
<br />
* Gleb Peregud (Google)<br />
* Alexander Bernauer (Google)<br />
* Johan Tibell (Google)<br />
* Simon Meier (IBM Research)<br />
<br />
[[Category:Community]]<br />
[[Category:Events]]<br />
[[Category:Hackathon]]</div>ErrGehttps://wiki.haskell.org/index.php?title=Learning_Haskell&diff=59138Learning Haskell2014-12-04T15:00:43Z<p>ErrGe: </p>
<hr />
<div>[[Category:Tutorials]]<br />
<br />
This portal points to places where you can go if you want to learn Haskell. <br />
<br />
The [[Introduction|Introduction to Haskell]] on the Haskell website tells you what Haskell gives you: substantially increased programmer productivity, shorter, clearer, and more maintainable code, fewer errors, higher reliability, a smaller semantic gap between the programmer and the language, shorter lead times. There is an old but still relevant paper about [http://www.cse.chalmers.se/~rjmh/Papers/whyfp.html Why Functional Programming Matters] (PDF) by John Hughes. More recently, Sebastian Sylvan wrote an article about [[Why Haskell Matters]].<br />
<br />
There is also a [http://www.haskell.org/haskellwiki/Comparison table comparing Haskell to other functional languages]. Many questions about functional programming are answered by the [http://www.cs.nott.ac.uk/~gmh//faq.html comp.lang.functional FAQ].<br />
<br />
You can ask questions to members of the Haskell community on mailing lists, IRC, or StackOverflow. We recommend installing the [http://www.haskell.org/platform/ Haskell Platform].<br />
<br />
== Training courses ==<br />
<br />
Short training courses aimed at existing programmers<br />
<br />
* [http://www.well-typed.com/services_training On-site and public training courses] by Well-Typed (2-day intro, 2-day advanced, custom on-site courses)<br />
* [http://www.nobleprog.co.uk/haskell/training Public training courses] by NobleProg and Nilcons<br />
* [http://www.cs.ox.ac.uk/softeng/subjects/FPR.html Software Engineering course on Functional Programming] at the University of Oxford (1-week course)<br />
* [http://www.cs.uu.nl/wiki/USCS Summerschool on Applied Functional Programming] at Utrecht University (2-week course)<br />
<br />
== Material for self-study ==<br />
<br />
Below there are links to certain introductory material. If you want to dig deeper, see [[Books and tutorials]].<br />
<br />
=== Textbooks ===<br />
<br />
* [http://www.cs.yale.edu/homes/hudak/SOE/ The Haskell School of Expression]<br />
* [http://www.haskellcraft.com/ Haskell: the Craft of Functional Programming]<br />
* [http://www.prenhall.com/allbooks/ptr_0134843460.html Introduction to Functional Programming using Haskell]<br />
* [http://www.cambridge.org/us/knowledge/isbn/item1129654/Introduction%20to%20Functional%20Programming%20Systems%20Using%20Haskell/?site_locale=en_US An Introduction to Functional Programming Systems Using Haskell]<br />
* [http://www.iro.umontreal.ca/~lapalme/Algorithms-functional.html Algorithms: A functional programming approach]<br />
* [http://homepages.cwi.nl/~jve/HR/ The Haskell Road to Logic, Maths, and Programming] (also freely [http://fldit-www.cs.uni-dortmund.de/~peter/PS07/HR.pdf available online]). <br />
* [http://www.cs.nott.ac.uk/~gmh/book.html Programming in Haskell]<br />
* [http://book.realworldhaskell.org/ Real World Haskell]<br />
* [http://nostarch.com/lyah.htm Learn You a Haskell for Great Good!]<br />
<br />
=== Online tutorials ===<br />
<br />
* [[Meta-tutorial]]<br />
* [http://pluralsight.com/training/Courses/Find?highlight=true&searchTerm=haskell Haskell Fundamentals - get started and learn key concepts] at Pluralsight (2-part, 5 hour online course)<br />
* [http://en.wikibooks.org/wiki/Haskell Haskell Wikibook] A thorough textbook with a step-by-step beginners track assuming no programming background. Also includes many advanced concepts, and adaptations of "Yet Another Haskell Tutorial", "Write Yourself a Scheme in 48 Hours", and "All about monads".<br />
* [http://pub.hal3.name/daume02yaht.pdf YAHT - Yet Another Haskell Tutorial] (good tutorial available online)<br />
* [http://www.cs.ou.edu/~rlpage/fpclassCurrent/textbook/haskell.shtml Two dozen short lessons]<br />
* [http://www.haskell.org/tutorial/ A Gentle Introduction to Haskell] - classic text, but not so gentle really :D<br />
* [ftp://ftp.geoinfo.tuwien.ac.at/navratil/HaskellTutorial.pdf Haskell-Tutorial]<br />
* [http://lasche.codingcrew.de/kurse/haskell/hskurs_index.htm Online Haskell Course] (German)<br />
* [http://collection.openlibra.com.s3.amazonaws.com/pdf/haskell_tutorial_for_c_programmers_en.pdf Haskell tutorial for C Programmers]<br />
* [http://learnyouahaskell.com/ Learn You a Haskell for Great Good!] Beautiful, illustrated Haskell tutorial for programmers with less of a functional programming background.<br />
* [http://www.youtube.com/playlist?list=PL2672EBC57C1F5F9B Learning Haskell] Ongoing tutorial in the form of YouTube videos; updates slowly.<br />
*[https://stevekrouse.github.io/hs.js/ Pattern matching, first-class functions, and abstracting over recursion in Haskell], a simulation of the evaluation of map, foldr and foldl.<br />
* [https://www.fpcomplete.com/school?show=tutorials School of Haskell]<br />
<br />
=== Advanced tutorials ===<br />
<br />
* [[Hitchhikers guide to Haskell]]<br />
* [http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours Write Yourself a Scheme in 48 Hours]<br />
* [http://research.microsoft.com/en-us/um/people/simonpj/papers/marktoberdorf/ Tackling the Awkward Squad] (on I/O, interfacing to C, concurrency and exceptions)<br />
<br />
=== Debugging/profiling/optimization ===<br />
<br />
=== Monads ===<br />
<br />
* [http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html You Could Have Invented Monads! (And Maybe You Already Have.)]<br />
* [http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf Monads for Functional Programming]<br />
* [http://www.haskell.org/haskellwiki/All_About_Monads All about monads]<br />
* [[IO inside|IO inside: down the Rabbit Hole]]<br />
<br />
=== Type classes ===<br />
<br />
* [http://homepages.inf.ed.ac.uk/wadler/papers/class/class.ps.gz The paper that for the first time introduced type classes and their implementation using dictionaries]<br />
* [[Research papers/Type systems#Type classes|More papers on the type classes]]<br />
<br />
=== Generic programming ===<br />
<br />
* [[Scrap your boilerplate]]<br />
<br />
=== Popular libraries ===<br />
<br />
* ByteStrings?<br />
* [http://legacy.cs.uu.nl/daan/download/parsec/parsec.html Parsec, a fast combinator parser]<br />
* [[Modern array libraries]]<br />
* [http://www.haskell.org/haskellwiki/Gtk2Hs/Tutorials Gtk2Hs, the GUI library]<br />
<br />
=== Reference ===<br />
<br />
* The official language definition: [[Language and library specification]]<br />
* [http://www.letu.edu/people/jaytevis/Programming-Languages/Haskell/tourofprelude.html Tour of the Haskell Prelude]<br />
* [http://zvon.org/other/haskell/Outputglobal/index.html Haskell Reference]<br />
* Haskell [[Reference card]]<br />
* [http://members.chello.nl/hjgtuyl/tourdemonad.html A tour of the Haskell Monad functions]<br />
* [http://www.cs.uu.nl/wiki/bin/view/Helium/ATourOfTheHeliumPrelude Tour of the Helium Prelude]<br />
* [http://www.cs.kent.ac.uk/people/staff/sjt/craft2e/errors/allErrors.html Some common Hugs error messages]<br />
* [http://cheatsheet.codeslower.com/ The Haskell Cheatsheet] - A reference card and mini-tutorial in one.<br />
* A [http://www.haskell.org/haskellwiki/Category:Glossary Glossary] of common terminology.<br />
<br />
=== Course material ===<br />
* [http://www.cse.chalmers.se/edu/course/TDA555/ Introduction to Functional Programming, Chalmers] (for beginners at programming)<br />
* [http://www.cse.chalmers.se/edu/course/TDA452/ Functional Programming, Chalmers]<br />
* [http://www.cse.chalmers.se/edu/course/afp/ Advanced Functional Programming, Chalmers]<br />
* [http://www.cse.chalmers.se/edu/course/pfp/ Parallel Functional Programming, Chalmers]<br />
* [http://www.shuklan.com/haskell Introduction to Haskell], University of Virginia CS 1501<br />
* [http://www.cs.caltech.edu/courses/cs11/material/haskell/index.html CS 11 Caltech]<br />
* [http://www.cs.uu.nl/docs/vakken/lfp/ Functional programming]: course notes ([http://www.staff.science.uu.nl/~fokke101/courses/fp-eng.pdf English], [http://www.staff.science.uu.nl/~fokke101/courses/fp-nl.pdf Dutch], [http://www.staff.science.uu.nl/~fokke101/courses/fp-sp.pdf Spanish]), slides in Dutch<br />
* [http://www.cse.unsw.edu.au/~cs1011/05s2/ CS1011]: Tutorials, lab exercises and solutions<br />
* Stanford - [http://www.scs.stanford.edu/11au-cs240h/ Functional Systems in Haskell]<br />
<br />
<br />
== Trying Haskell online ==<br />
<br />
There are several websites where you can enter a Haskell program and run it. They are (in no particular order):<br />
* [https://cloud.sagemath.com/ SageMathCloud]<br />
* [https://www.fpcomplete.com/school/using-fphc FP Haskell Center]<br />
* [http://tryhaskell.org/ Try Haskell]<br />
* [http://www.codeworld.info/ Codeworld]<br />
* [http://chrisuehlinger.com/LambdaBubblePop/ Bubble Pop!], the satisfaction of popping bubble wrap, combined with the satisfaction of really elegant functional programming!<br />
* [http://tryplayg.herokuapp.com/ Try Haste & HPlayground client-side framework]; the source code is on [https://github.com/agocorona/tryhplay GitHub]<br />
<br />
To create a browser based environment yourself:<br />
* [http://gibiansky.github.io/IHaskell/ IHaskell]</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2014/Projects&diff=59043ZuriHac2014/Projects2014-10-27T10:27:08Z<p>ErrGe: /* The `th-versions` package */</p>
<hr />
<div>These are some of the projects that ZuriHac 2014 [[ZuriHac2014/Attendees|attendees]] will be working on:<br />
<br />
=Aeson=<br />
<br />
See: http://hackage.haskell.org/package/aeson<br />
<br />
* Bas van Dijk (Faster JSON encoder)<br />
<br />
=Scion / Lambdachine=<br />
<br />
* Thomas Schilling<br />
<br />
=Hakyll=<br />
<br />
See: http://jaspervdj.be/hakyll/<br />
<br />
* Jasper van der Jeugt<br />
* David Wagner<br />
<br />
=Haskell: the Gathering=<br />
<br />
Implementation of Magic: the Gathering in Haskell. We will work on [https://github.com/MedeaMelana/Magic the rules engine], [https://github.com/MedeaMelana/Magic/tree/master/Magic-Cards/src/Magic card implementations] (both in Haskell) and [https://github.com/q42jaap/magic-client the web client] (TypeScript/HTML). Help is welcome in all three areas.<br />
<br />
* Martijn van Steenbergen<br />
<br />
=T-Digest=<br />
<br />
Persistent implementation of the T-Digest (https://github.com/tdunning/t-digest) quantile estimation data structure, for use in ekg.<br />
<br />
* Johan Tibell<br />
<br />
=Nomyx=<br />
<br />
Nomyx is a game where you can change the rules while playing: http://www.nomyx.net<br />
<br />
* Corentin Dupont (I'll work on new features and [http://www.github.com/cdupont/Nomyx/issues?state=open bugs] . Help/advices are welcome :))<br />
<br />
=Snap=<br />
<br />
See: http://snapframework.com/<br />
<br />
* Alfredo Di Napoli - I have in mind a couple of interesting features I would like to see in snap.<br />
<br />
=Hackage=<br />
<br />
See: http://hackage.haskell.org/<br />
<br />
* Ian Ross (tags interface)<br />
* Alp Mestanogullari (most likely a nice statistics page)<br />
<br />
=GHC bug squashing=<br />
<br />
I plan to fix a few random GHC bugs and I’m more than happy to guide GHC-newbies in doing the same. Planning and coordination will happen at https://ghc.haskell.org/trac/ghc/wiki/ZuriHac2014. I started to collect some suitable tickets, feel free to add some.<br />
<br />
* Joachim Breitner<br />
* Lorenzo Tabacchini<br />
<br />
=Oauth-provider=<br />
<br />
See: http://github.com/gseitz/oauth-provider<br />
<br />
* Gerolf Seitz (I would like to have a RFC / code-review on oauth-provider)<br />
<br />
=Math Symbols in Diagrams=<br />
<br />
I'd like to be able to label diagrams with mats symbols and fonts: http://projects.haskell.org/diagrams/. There has been some discussion of this on #diagrams and I need to write up an approach. NB I have used diagrams a lot but never hacked on the package itself.<br />
<br />
* Dominic Steinitz<br />
* David Wagner<br />
<br />
=Propellor=<br />
<br />
See: http://hackage.haskell.org/package/propellor<br />
<br />
* David Wagner (I would like to add [http://mmonit.com/monit/ monit] support to propellor).<br />
<br />
=Rest=<br />
<br />
We have recently open sourced our [https://github.com/silkapp/rest rest framework] which Erik Hesselink gave a presentation about at last years ZuriHac. It provides a declarative way to define REST resources (rest-core) which can be used to run the api on different web servers (rest-happstack, rest-snap) and to automatically generate clients for different languages along with documentation and usage examples (rest-gen). We want to write introductory materials to get people started. We'd appreciate help and we'd be happy to sit down with anyone wanting to get started with rest.<br />
<br />
* Adam Bergmark<br />
* Erik Hesselink<br />
* Sebastiaan Visser<br />
<br />
Project ideas:<br />
<br />
* Write tutorials based on the rest-example blog application<br />
* Refactor the rest-gen haskell client generation to use haskell-src-exts<br />
* Write a test-framework that runs an api and uses its generated client<br />
<br />
= Erlang Interpreter in Haskell=<br />
<br />
This is my learning project for Haskell, and since I come from Erlang background I have chosen to combine both things into one.<br />
<br />
* Gleb Peregud<br />
* Felipe Zapata<br />
<br />
= LGtk: GUI framework in Haskell=<br />
<br />
See [http://lgtk.wordpress.com/ http://lgtk.wordpress.com/] and [http://www.haskell.org/haskellwiki/LGtk http://www.haskell.org/haskellwiki/LGtk].<br />
I would like to work on a browser backend with GHCJS and improving documentation (writing a tutorial especially).<br />
<br />
* Péter Diviánszky<br />
* Pék Dániel<br />
<br />
= LambdaCube 3D - Stunts game=<br />
[http://lambdacube3d.wordpress.com/ LambdaCube 3D] is a domain specific language and library that makes it possible to program GPUs in a purely functional style.<br />
During ZuriHac I'll implement FRP based menu for [https://www.youtube.com/watch?v=XoE5CKLLnaM Stunts demo]. If you are interested in game development join! :)<br />
<br />
* Csaba Hruska<br />
<br />
= extensible-effects =<br />
<br />
Revise the package's API and prepare the 2.0 version.<br />
<br />
WIP is at https://github.com/feuerbach/extensible-effects<br />
<br />
* Roman Cheplyaka<br />
* Steven Keuchel<br />
<br />
= complexity =<br />
<br />
[http://hackage.haskell.org/package/complexity Complexity] is a tool to measure the emprical complexity of functions. During Zurihac we want to rewrite complexity so that it makes use of the excellent Criterion package. We also want to rewrite the reporting part. Perhaps not depend on any GUI toolkits but instead generate a static HTML report.<br />
<br />
* Roel van Dijk<br />
* Tim Schwarte<br />
<br />
= Binding for librabbitmq =<br />
<br />
See https://github.com/alanxz/rabbitmq-c<br />
<br />
* Mikael Brockman<br />
<br />
= The `psqueues` package =<br />
<br />
Help creating a <hask>psqueues</hask> package providing performant implementations of priority search queues. These are data structures that manage a set of triples of the form <hask>(key, priority, value)</hask> and allow efficient lookup and removal by key, efficient update of priority by key and efficient lookup and removal of the element with minimal priority. More precisely, I imagine that the package should provide <hask>IntPSQ</hask>s, <hask>HashPSQ</hask>, and <hask>PSQ</hask> data structures whose requirements and API are analogous to <hask>IntMap</hask>s, <hask>HashMap</hask>s, and general <hask>Map</hask>s. <br />
<br />
The implementation plan is as follows.<br />
<br />
* The APIs are structured analogously to the existing <hask>containers</hask> and <hask>unordered-containers</hask> APIs extended with additional functions inspired by the <hask>PSQueue</hask> package.<br />
* The implementation of <hask>PSQ</hask> is based on [http://hackage.haskell.org/package/PSQueue-1.1/docs/Data-PSQueue.html Hinze's construction] and the code already provided in the <hask>PSQueue</hask> package. <br />
* The implementation of <hask>IntPSQ</hask>s uses a radix-tree that stores <hask>(key, priority, value)</hask> triples in inner nodes and enforces the min-heap property. There is a draft of this structure in TODO URL, which significantly outperforms the <hask>PSQueue</hask> package specialized to <hask>Int</hask>s (see [https://github.com/meiersi/containers/commit/4009123e0a9cb1ceec3bac9fd6432420cd00d47b]).<br />
* The implementation of the <hask>HashPSQ</hask>s uses an <hask>IntPSQ</hask> over the hash values of the keys and manages the collisions using a <hask>PSQ</hask> to guarantee logarithmic worst-case performance for <hask>insert</hask>s and <hask>lookup</hask>s.<br />
<br />
The two main use cases of the structures provided by this package are the GHC IO manager and pure LRU caches, which are used in many web application backends to speedup data storage access. However, I'm sure there are more use cases for efficient priority search queues.<br />
<br />
There is a [https://github.com/meiersi/containers/commits/feat-compact-intmaps branch in my fork of containers] that contains a minimal, but working and well-performing [https://github.com/meiersi/containers/blob/feat-compact-intmaps/Data/IntPSQ.hs IntPSQ]. The work that remains to be done is to <br />
<br />
* incorporate and modernize the <hask>PSQ</hask> from the <hask>PSQueues</hask> package<br />
* combine <hask>IntPSQ</hask>s and <hask>PSQ</hask>s to form a <hask>HashPSQ</hask><br />
* implement extensive tests<br />
* implement more realistic benchmarks for the above two usecases<br />
<br />
This project is well-suited for a group of Haskellers starting at intermediate level, as the work can be parallelized well and the individual tasks are small and well-defined.<br />
<br />
Project lead: Simon Meier<br />
<br />
Participants:<br />
* Alex Sayers<br />
* Jasper Van der Jeugt<br />
<br />
= The `th-versions` package =<br />
<br />
The goal of this package would be to implement Template Haskell functions to look around in the environment for build time information: timestamp, git commit hash (and info on dirtiness maybe), content of VERSION file while walking upwards from the current directory, path of compilation, hostname of compilation, architecture, etc.<br />
<br />
Then we would embed this to the program/library being compiled with a splice.<br />
<br />
Template Haskell may not be everyone's favorite extension, but it's definitely better than CPP. :)<br />
<br />
This project is well-suited for some advanced beginners who want to learn about TemplateHaskell and already create some useful new hackage package in the process.<br />
<br />
If you have questions, feel free to ask:<br />
* Gergely Risko (errge is his username at the nilcons com-pany)<br />
* Mihaly Barasz<br />
<br />
= GHC `--make-link-only` flag =<br />
<br />
At nilcons we use makefiles to drive Haskell compilation for various reasons. The final linking has to be done with `ghc --make`, because that's the easiest way to call the linker with all the necessary packages correctly passed.<br />
<br />
But we want to assert that this `ghc --make` shouldn't do any compilations at all, because previous parts of the makefile should have taken care of that. If GHC detects that compilations are needed and linking is not enough, that's a serious mistake somewhere in our system.<br />
<br />
Currently this check is implemented by grepping for "Compiling" in the output of `ghc --make`, which is a bit kludgy.<br />
<br />
Therefore we would like to implement the `--make-link-only` mode (open to better names) that will do the same thing as `--make` linking wise, but if compilations are needed it will issue a fatal error.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= GHC: selectively ignore some warnings =<br />
<br />
`-fwarn-name-shadowing` is a very useful warning that can uncover a lot of hard to catch bugs. But it's annoying when a short name is used locally in a small let that is otherwise defined in the Prelude or in lens: e.g. `map`, `to`, `view`.<br />
<br />
Therefore we would like to add annotations that can be used to ignore name shadowing for the binding, something like this:<br />
<br />
f = ...<br />
let {-# SHADOWS #-} map = defaultMapWhatever<br />
in gameWithAnotherMap map<br />
...<br />
<br />
We're not sure about the syntax here, so we're happy to hear your opinions!<br />
<br />
A similar request for `-fwarn-unused-binds` is already in trac under #3283, we'll try to handle that too.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= Opaleye =<br />
<br />
See: http://staff.science.uva.nl/~grelck/nl-fp-day-2014.html#ellis<br />
<br />
And: http://staff.science.uva.nl/~grelck/nl-fp-talks/ellis.pdf<br />
<br />
* Tom Ellis<br />
* Renzo Carbonara<br />
<br />
= hoodle =<br />
<br />
See: http://ianwookim.org/hoodle<br />
<br />
And: http://github.com/wavewave/hoodle<br />
<br />
* Ian-Woo Kim</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2014/Projects&diff=58285ZuriHac2014/Projects2014-06-05T06:52:06Z<p>ErrGe: /* The `psqueues` package */</p>
<hr />
<div>These are some of the projects that ZuriHac 2014 [[ZuriHac2014/Attendees|attendees]] will be working on:<br />
<br />
=Aeson=<br />
<br />
See: http://hackage.haskell.org/package/aeson<br />
<br />
* Bas van Dijk (Faster JSON encoder)<br />
<br />
=Scion / Lambdachine=<br />
<br />
* Thomas Schilling<br />
<br />
=Hakyll=<br />
<br />
See: http://jaspervdj.be/hakyll/<br />
<br />
* Jasper van der Jeugt<br />
* David Wagner<br />
<br />
=Haskell: the Gathering=<br />
<br />
Implementation of Magic: the Gathering in Haskell. We will work on [https://github.com/MedeaMelana/Magic the rules engine], [https://github.com/MedeaMelana/Magic/tree/master/Magic-Cards/src/Magic card implementations] (both in Haskell) and [https://github.com/q42jaap/magic-client the web client] (TypeScript/HTML). Help is welcome in all three areas.<br />
<br />
* Martijn van Steenbergen<br />
<br />
=T-Digest=<br />
<br />
Persistent implementation of the T-Digest (https://github.com/tdunning/t-digest) quantile estimation data structure, for use in ekg.<br />
<br />
* Johan Tibell<br />
<br />
=Nomyx=<br />
<br />
Nomyx is a game where you can change the rules while playing: http://www.nomyx.net<br />
<br />
* Corentin Dupont (I'll work on new features and [http://www.github.com/cdupont/Nomyx/issues?state=open bugs] . Help/advices are welcome :))<br />
<br />
=Snap=<br />
<br />
See: http://snapframework.com/<br />
<br />
* Alfredo Di Napoli - I have in mind a couple of interesting features I would like to see in snap.<br />
<br />
=Hackage=<br />
<br />
See: http://hackage.haskell.org/<br />
<br />
* Ian Ross (tags interface)<br />
* Alp Mestanogullari (most likely a nice statistics page)<br />
<br />
=GHC bug squashing=<br />
<br />
I plan to fix a few random GHC bugs and I’m more than happy to guide GHC-newbies in doing the same. Planning and coordination will happen at https://ghc.haskell.org/trac/ghc/wiki/ZuriHac2014. I started to collect some suitable tickets, feel free to add some.<br />
<br />
* Joachim Breitner<br />
* Lorenzo Tabacchini<br />
<br />
=Oauth-provider=<br />
<br />
See: http://github.com/gseitz/oauth-provider<br />
<br />
* Gerolf Seitz (I would like to have a RFC / code-review on oauth-provider)<br />
<br />
=Math Symbols in Diagrams=<br />
<br />
I'd like to be able to label diagrams with mats symbols and fonts: http://projects.haskell.org/diagrams/. There has been some discussion of this on #diagrams and I need to write up an approach. NB I have used diagrams a lot but never hacked on the package itself.<br />
<br />
* Dominic Steinitz<br />
* David Wagner<br />
<br />
=Propellor=<br />
<br />
See: http://hackage.haskell.org/package/propellor<br />
<br />
* David Wagner (I would like to add [http://mmonit.com/monit/ monit] support to propellor).<br />
<br />
=Rest=<br />
<br />
We have recently open sourced our [https://github.com/silkapp/rest rest framework] which Erik Hesselink gave a presentation about at last years ZuriHac. It provides a declarative way to define REST resources (rest-core) which can be used to run the api on different web servers (rest-happstack, rest-snap) and to automatically generate clients for different languages along with documentation and usage examples (rest-gen). We want to write introductory materials to get people started. We'd appreciate help and we'd be happy to sit down with anyone wanting to get started with rest.<br />
<br />
* Adam Bergmark<br />
* Erik Hesselink<br />
* Sebastiaan Visser<br />
<br />
Project ideas:<br />
<br />
* Write tutorials based on the rest-example blog application<br />
* Refactor the rest-gen haskell client generation to use haskell-src-exts<br />
* Write a test-framework that runs an api and uses its generated client<br />
<br />
= Erlang Interpreter in Haskell=<br />
<br />
This is my learning project for Haskell, and since I come from Erlang background I have chosen to combine both things into one.<br />
<br />
* Gleb Peregud<br />
* Felipe Zapata<br />
<br />
= LGtk: GUI framework in Haskell=<br />
<br />
See [http://lgtk.wordpress.com/ http://lgtk.wordpress.com/] and [http://www.haskell.org/haskellwiki/LGtk http://www.haskell.org/haskellwiki/LGtk].<br />
I would like to work on a browser backend with GHCJS and improving documentation (writing a tutorial especially).<br />
<br />
* Péter Diviánszky<br />
* Pék Dániel<br />
<br />
= LambdaCube 3D - Stunts game=<br />
[http://lambdacube3d.wordpress.com/ LambdaCube 3D] is a domain specific language and library that makes it possible to program GPUs in a purely functional style.<br />
During ZuriHac I'll implement FRP based menu for [https://www.youtube.com/watch?v=XoE5CKLLnaM Stunts demo]. If you are interested in game development join! :)<br />
<br />
* Csaba Hruska<br />
<br />
= extensible-effects =<br />
<br />
Revise the package's API and prepare the 2.0 version.<br />
<br />
WIP is at https://github.com/feuerbach/extensible-effects<br />
<br />
* Roman Cheplyaka<br />
<br />
= complexity =<br />
<br />
[http://hackage.haskell.org/package/complexity Complexity] is a tool to measure the emprical complexity of functions. During Zurihac we want to rewrite complexity so that it makes use of the excellent Criterion package. We also want to rewrite the reporting part. Perhaps not depend on any GUI toolkits but instead generate a static HTML report.<br />
<br />
* Roel van Dijk<br />
* Tim Schwarte<br />
<br />
= Binding for librabbitmq =<br />
<br />
See https://github.com/alanxz/rabbitmq-c<br />
<br />
* Mikael Brockman<br />
<br />
= The `psqueues` package =<br />
<br />
Help creating a <hask>psqueues</hask> package providing performant implementations of priority search queues. These are data structures that manage a set of triples of the form <hask>(key, priority, value)</hask> and allow efficient lookup and removal by key, efficient update of priority by key and efficient lookup and removal of the element with minimal priority. More precisely, I imagine that the package should provide <hask>IntPSQ</hask>s, <hask>HashPSQ</hask>, and <hask>PSQ</hask> data structures whose requirements and API are analogous to <hask>IntMap</hask>s, <hask>HashMap</hask>s, and general <hask>Map</hask>s. <br />
<br />
The implementation plan is as follows.<br />
<br />
* The APIs are structured analogously to the existing <hask>containers</hask> and <hask>unordered-containers</hask> APIs extended with additional functions inspired by the <hask>PSQueue</hask> package.<br />
* The implementation of <hask>PSQ</hask> is based on [http://hackage.haskell.org/package/PSQueue-1.1/docs/Data-PSQueue.html Hinze's construction] and the code already provided in the <hask>PSQueue</hask> package. <br />
* The implementation of <hask>IntPSQ</hask>s uses a radix-tree that stores <hask>(key, priority, value)</hask> triples in inner nodes and enforces the min-heap property. There is a draft of this structure in TODO URL, which significantly outperforms the <hask>PSQueue</hask> package specialized to <hask>Int</hask>s (see [https://github.com/meiersi/containers/commit/4009123e0a9cb1ceec3bac9fd6432420cd00d47b]).<br />
* The implementation of the <hask>HashPSQ</hask>s uses an <hask>IntPSQ</hask> over the hash values of the keys and manages the collisions using a <hask>PSQ</hask> to guarantee logarithmic worst-case performance for <hask>insert</hask>s and <hask>lookup</hask>s.<br />
<br />
The two main use cases of the structures provided by this package are the GHC IO manager and pure LRU caches, which are used in many web application backends to speedup data storage access. However, I'm sure there are more use cases for efficient priority search queues.<br />
<br />
There is a [https://github.com/meiersi/containers/commits/feat-compact-intmaps branch in my fork of containers] that contains a minimal, but working and well-performing [https://github.com/meiersi/containers/blob/feat-compact-intmaps/Data/IntPSQ.hs IntPSQ]. The work that remains to be done is to <br />
<br />
* incorporate and modernize the <hask>PSQ</hask> from the <hask>PSQueues</hask> package<br />
* combine <hask>IntPSQ</hask>s and <hask>PSQ</hask>s to form a <hask>HashPSQ</hask><br />
* implement extensive tests<br />
* implement more realistic benchmarks for the above two usecases<br />
<br />
This project is well-suited for a group of Haskellers starting at intermediate level, as the work can be parallelized well and the individual tasks are small and well-defined.<br />
<br />
Project lead: Simon Meier<br />
<br />
Participants:<br />
* Alex Sayers<br />
* Jasper Van der Jeugt<br />
<br />
= The `th-versions` package =<br />
<br />
The goal of this package would be to implement Template Haskell functions to look around in the environment for build time information: timestamp, git commit hash (and info on dirtiness maybe), content of VERSION file while walking upwards from the current directory, path of compilation, hostname of compilation, architecture, etc.<br />
<br />
Then we would embed this to the program/library being compiled with a splice.<br />
<br />
Template Haskell may not be everyone's favorite extension, but it's definitely better than CPP. :)<br />
<br />
This project is well-suited for some advanced beginners who want to learn about TemplateHaskell and already create some useful new hackage package in the process.<br />
<br />
If you have questions, feel free to ask:<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= GHC `--make-link-only` flag =<br />
<br />
At nilcons we use makefiles to drive Haskell compilation for various reasons. The final linking has to be done with `ghc --make`, because that's the easiest way to call the linker with all the necessary packages correctly passed.<br />
<br />
But we want to assert that this `ghc --make` shouldn't do any compilations at all, because previous parts of the makefile should have taken care of that. If GHC detects that compilations are needed and linking is not enough, that's a serious mistake somewhere in our system.<br />
<br />
Currently this check is implemented by grepping for "Compiling" in the output of `ghc --make`, which is a bit kludgy.<br />
<br />
Therefore we would like to implement the `--make-link-only` mode (open to better names) that will do the same thing as `--make` linking wise, but if compilations are needed it will issue a fatal error.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= GHC: selectively ignore some warnings =<br />
<br />
`-fwarn-name-shadowing` is a very useful warning that can uncover a lot of hard to catch bugs. But it's annoying when a short name is used locally in a small let that is otherwise defined in the Prelude or in lens: e.g. `map`, `to`, `view`.<br />
<br />
Therefore we would like to add annotations that can be used to ignore name shadowing for the binding, something like this:<br />
<br />
f = ...<br />
let {-# SHADOWS #-} map = defaultMapWhatever<br />
in gameWithAnotherMap map<br />
...<br />
<br />
We're not sure about the syntax here, so we're happy to hear your opinions!<br />
<br />
A similar request for `-fwarn-unused-binds` is already in trac under #3283, we'll try to handle that too.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2014/Projects&diff=58282ZuriHac2014/Projects2014-06-04T20:07:59Z<p>ErrGe: </p>
<hr />
<div>These are some of the projects that ZuriHac 2014 [[ZuriHac2014/Attendees|attendees]] will be working on:<br />
<br />
=Aeson=<br />
<br />
See: http://hackage.haskell.org/package/aeson<br />
<br />
* Bas van Dijk (Faster JSON encoder)<br />
<br />
=Scion / Lambdachine=<br />
<br />
* Thomas Schilling<br />
<br />
=Hakyll=<br />
<br />
See: http://jaspervdj.be/hakyll/<br />
<br />
* Jasper van der Jeugt<br />
* David Wagner<br />
<br />
=Haskell: the Gathering=<br />
<br />
Implementation of Magic: the Gathering in Haskell. We will work on [https://github.com/MedeaMelana/Magic the rules engine], [https://github.com/MedeaMelana/Magic/tree/master/Magic-Cards/src/Magic card implementations] (both in Haskell) and [https://github.com/q42jaap/magic-client the web client] (TypeScript/HTML). Help is welcome in all three areas.<br />
<br />
* Martijn van Steenbergen<br />
<br />
=T-Digest=<br />
<br />
Persistent implementation of the T-Digest (https://github.com/tdunning/t-digest) quantile estimation data structure, for use in ekg.<br />
<br />
* Johan Tibell<br />
<br />
=Nomyx=<br />
<br />
Nomyx is a game where you can change the rules while playing: http://www.nomyx.net<br />
<br />
* Corentin Dupont (I'll work on new features and [http://www.github.com/cdupont/Nomyx/issues?state=open bugs] . Help/advices are welcome :))<br />
<br />
=Snap=<br />
<br />
See: http://snapframework.com/<br />
<br />
* Alfredo Di Napoli - I have in mind a couple of interesting features I would like to see in snap.<br />
<br />
=Hackage=<br />
<br />
See: http://hackage.haskell.org/<br />
<br />
* Ian Ross (tags interface)<br />
* Alp Mestanogullari (most likely a nice statistics page)<br />
<br />
=GHC bug squashing=<br />
<br />
I plan to fix a few random GHC bugs and I’m more than happy to guide GHC-newbies in doing the same. Planning and coordination will happen at https://ghc.haskell.org/trac/ghc/wiki/ZuriHac2014. I started to collect some suitable tickets, feel free to add some.<br />
<br />
* Joachim Breitner<br />
* Lorenzo Tabacchini<br />
<br />
=Oauth-provider=<br />
<br />
See: http://github.com/gseitz/oauth-provider<br />
<br />
* Gerolf Seitz (I would like to have a RFC / code-review on oauth-provider)<br />
<br />
=Math Symbols in Diagrams=<br />
<br />
I'd like to be able to label diagrams with mats symbols and fonts: http://projects.haskell.org/diagrams/. There has been some discussion of this on #diagrams and I need to write up an approach. NB I have used diagrams a lot but never hacked on the package itself.<br />
<br />
* Dominic Steinitz<br />
* David Wagner<br />
<br />
=Propellor=<br />
<br />
See: http://hackage.haskell.org/package/propellor<br />
<br />
* David Wagner (I would like to add [http://mmonit.com/monit/ monit] support to propellor).<br />
<br />
=Rest=<br />
<br />
We have recently open sourced our [https://github.com/silkapp/rest rest framework] which Erik Hesselink gave a presentation about at last years ZuriHac. It provides a declarative way to define REST resources (rest-core) which can be used to run the api on different web servers (rest-happstack, rest-snap) and to automatically generate clients for different languages along with documentation and usage examples (rest-gen). We want to write introductory materials to get people started. We'd appreciate help and we'd be happy to sit down with anyone wanting to get started with rest.<br />
<br />
* Adam Bergmark<br />
* Erik Hesselink<br />
* Sebastiaan Visser<br />
<br />
Project ideas:<br />
<br />
* Write tutorials based on the rest-example blog application<br />
* Refactor the rest-gen haskell client generation to use haskell-src-exts<br />
* Write a test-framework that runs an api and uses its generated client<br />
<br />
= Erlang Interpreter in Haskell=<br />
<br />
This is my learning project for Haskell, and since I come from Erlang background I have chosen to combine both things into one.<br />
<br />
* Gleb Peregud<br />
* Felipe Zapata<br />
<br />
= LGtk: GUI framework in Haskell=<br />
<br />
See [http://lgtk.wordpress.com/ http://lgtk.wordpress.com/] and [http://www.haskell.org/haskellwiki/LGtk http://www.haskell.org/haskellwiki/LGtk].<br />
I would like to work on a browser backend with GHCJS and improving documentation (writing a tutorial especially).<br />
<br />
* Péter Diviánszky<br />
* Pék Dániel<br />
<br />
= LambdaCube 3D - Stunts game=<br />
[http://lambdacube3d.wordpress.com/ LambdaCube 3D] is a domain specific language and library that makes it possible to program GPUs in a purely functional style.<br />
During ZuriHac I'll implement FRP based menu for [https://www.youtube.com/watch?v=XoE5CKLLnaM Stunts demo]. If you are interested in game development join! :)<br />
<br />
* Csaba Hruska<br />
<br />
= extensible-effects =<br />
<br />
Revise the package's API and prepare the 2.0 version.<br />
<br />
WIP is at https://github.com/feuerbach/extensible-effects<br />
<br />
* Roman Cheplyaka<br />
<br />
= complexity =<br />
<br />
[http://hackage.haskell.org/package/complexity Complexity] is a tool to measure the emprical complexity of functions. During Zurihac we want to rewrite complexity so that it makes use of the excellent Criterion package. We also want to rewrite the reporting part. Perhaps not depend on any GUI toolkits but instead generate a static HTML report.<br />
<br />
* Roel van Dijk<br />
* Tim Schwarte<br />
<br />
= Binding for librabbitmq =<br />
<br />
See https://github.com/alanxz/rabbitmq-c<br />
<br />
* Mikael Brockman<br />
<br />
= The `psqueues` package =<br />
<br />
Help creating a <hask>psqueues</hask> package providing performant implementations of priority search queues. These are data structures that manage a set of triples of the form <hask>(key, priority, value)</hask> and allow efficient lookup by key and efficient lookup and removal of the element with minimal priority. More precisely, I imagine that the package should provide <hask>IntPSQ</hask>s, <hask>HashPSQ</hask>, and <hask>PSQ</hask> data structures whose requirements and API are analogous to <hask>IntMap</hask>s, <hask>HashMap</hask>s, and general <hask>Map</hask>s. <br />
<br />
The implementation plan is as follows.<br />
<br />
* The APIs are structured analogously to the existing <hask>containers</hask> and <hask>unordered-containers</hask> APIs extended with additional functions inspired by the <hask>PSQueue</hask> package.<br />
* The implementation of <hask>PSQ</hask> is based on [http://hackage.haskell.org/package/PSQueue-1.1/docs/Data-PSQueue.html Hinze's construction] and the code already provided in the <hask>PSQueue</hask> package. <br />
* The implementation of <hask>IntPSQ</hask>s uses a radix-tree that stores <hask>(key, priority, value)</hask> triples in inner nodes and enforces the min-heap property. There is a draft of this structure in TODO URL, which significantly outperforms the <hask>PSQueue</hask> package specialized to <hask>Int</hask>s (see [https://github.com/meiersi/containers/commit/4009123e0a9cb1ceec3bac9fd6432420cd00d47b]).<br />
* The implementation of the <hask>HashPSQ</hask>s uses an <hask>IntPSQ</hask> over the hash values of the keys and manages the collisions using a <hask>PSQ</hask> to guarantee logarithmic worst-case performance for <hask>insert</hask>s and <hask>lookup</hask>s.<br />
<br />
The two main use cases of the structures provided by this package are the GHC IO manager and pure LRU caches, which are used in many web application backends to speedup data storage access. However, I'm sure there are more use cases for efficient priority search queues.<br />
<br />
There is a [https://github.com/meiersi/containers/commits/feat-compact-intmaps branch in my fork of containers] that contains a minimal, but working and well-performing [https://github.com/meiersi/containers/blob/feat-compact-intmaps/Data/IntPSQ.hs IntPSQ]. The work that remains to be done is to <br />
<br />
* incorporate and modernize the <hask>PSQ</hask> from the <hask>PSQueues</hask> package<br />
* combine <hask>IntPSQ</hask>s and <hask>PSQ</hask>s to form a <hask>HashPSQ</hask><br />
* implement extensive tests<br />
* implement more realistic benchmarks for the above two usecases<br />
<br />
This project is well-suited for a group of Haskellers starting at intermediate level, as the work can be parallelized well and the individual tasks are small and well-defined.<br />
<br />
Project lead: Simon Meier<br />
<br />
Participants:<br />
* Alex Sayers<br />
* Jasper Van der Jeugt<br />
<br />
= The `th-versions` package =<br />
<br />
The goal of this package would be to implement Template Haskell functions to look around in the environment for build time information: timestamp, git commit hash (and info on dirtiness maybe), content of VERSION file while walking upwards from the current directory, path of compilation, hostname of compilation, architecture, etc.<br />
<br />
Then we would embed this to the program/library being compiled with a splice.<br />
<br />
Template Haskell may not be everyone's favorite extension, but it's definitely better than CPP. :)<br />
<br />
This project is well-suited for some advanced beginners who want to learn about TemplateHaskell and already create some useful new hackage package in the process.<br />
<br />
If you have questions, feel free to ask:<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= GHC `--make-link-only` flag =<br />
<br />
At nilcons we use makefiles to drive Haskell compilation for various reasons. The final linking has to be done with `ghc --make`, because that's the easiest way to call the linker with all the necessary packages correctly passed.<br />
<br />
But we want to assert that this `ghc --make` shouldn't do any compilations at all, because previous parts of the makefile should have taken care of that. If GHC detects that compilations are needed and linking is not enough, that's a serious mistake somewhere in our system.<br />
<br />
Currently this check is implemented by grepping for "Compiling" in the output of `ghc --make`, which is a bit kludgy.<br />
<br />
Therefore we would like to implement the `--make-link-only` mode (open to better names) that will do the same thing as `--make` linking wise, but if compilations are needed it will issue a fatal error.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz<br />
<br />
= GHC: selectively ignore some warnings =<br />
<br />
`-fwarn-name-shadowing` is a very useful warning that can uncover a lot of hard to catch bugs. But it's annoying when a short name is used locally in a small let that is otherwise defined in the Prelude or in lens: e.g. `map`, `to`, `view`.<br />
<br />
Therefore we would like to add annotations that can be used to ignore name shadowing for the binding, something like this:<br />
<br />
f = ...<br />
let {-# SHADOWS #-} map = defaultMapWhatever<br />
in gameWithAnotherMap map<br />
...<br />
<br />
We're not sure about the syntax here, so we're happy to hear your opinions!<br />
<br />
A similar request for `-fwarn-unused-binds` is already in trac under #3283, we'll try to handle that too.<br />
<br />
* Gergely Risko<br />
* Mihaly Barasz</div>ErrGehttps://wiki.haskell.org/index.php?title=Consultants&diff=57614Consultants2014-02-24T14:43:13Z<p>ErrGe: </p>
<hr />
<div>== Europe ==<br />
; NilCons http://www.nilcons.com/<br />
: [mailto:cons@nilcons.com cons@nilcons.com]<br />
: Zurich, Switzerland.<br />
<br />
; Well-Typed LLP http://www.well-typed.com/<br />
: The Haskell Consultants<br />
: [mailto:info@well-typed.com info@well-typed.com]<br />
: Europe and US on-site, remote work worldwide.<br />
<br />
; zerobuzz UG https://zerobuzz.net/<br />
: [mailto:info@zerobuzz.net info@zerobuzz.net]<br />
: Germany and Switzerland<br />
<br />
== North-America ==<br />
; AppSolutions LLC http://www.appsolutions.com/<br />
: Anton van Straaten http://www.appsolutions.com/anton/<br />
: New York, Boston, Philadelphia, Washington DC<br />
<br />
; Brett Letner http://www.linkedin.com/in/brettletner<br />
: Lawrence, KS, USA<br />
<br />
; Chris Forno [http://jekor.com/ http://jekor.com/]<br />
: San Francisco<br />
<br />
; LambdaPix http://lambdapix.com<br />
: Conal Elliott<br />
: Blog: http://conal.net/blog<br />
: San Andreas, CA, USA<br />
<br />
; OM Consulting Limited ''[mailto:omconsult@gmail.com omconsult@gmail.com]'' :Intelligent solutions.<br />
<br />
; Sankel Software http://sankelsoftware.com<br />
: David Sankel<br />
: Albuquerque, NM, USA<br />
<br />
; Simon Michael http://joyful.com<br />
: Los Angeles<br />
<br />
[[Category:Community]]</div>ErrGehttps://wiki.haskell.org/index.php?title=Consultants&diff=57613Consultants2014-02-24T14:42:13Z<p>ErrGe: </p>
<hr />
<div>== Europe ==<br />
; NilCons http://www.nilcons.com/<br />
; [mailto:cons@nilcons.com]<br />
; Zurich, Switzerland.<br />
<br />
; Well-Typed LLP http://www.well-typed.com/<br />
: The Haskell Consultants<br />
: [mailto:info@well-typed.com info@well-typed.com]<br />
: Europe and US on-site, remote work worldwide.<br />
<br />
; zerobuzz UG https://zerobuzz.net/<br />
: [mailto:info@zerobuzz.net info@zerobuzz.net]<br />
: Germany and Switzerland<br />
<br />
== North-America ==<br />
; AppSolutions LLC http://www.appsolutions.com/<br />
: Anton van Straaten http://www.appsolutions.com/anton/<br />
: New York, Boston, Philadelphia, Washington DC<br />
<br />
; Brett Letner http://www.linkedin.com/in/brettletner<br />
: Lawrence, KS, USA<br />
<br />
; Chris Forno [http://jekor.com/ http://jekor.com/]<br />
: San Francisco<br />
<br />
; LambdaPix http://lambdapix.com<br />
: Conal Elliott<br />
: Blog: http://conal.net/blog<br />
: San Andreas, CA, USA<br />
<br />
; OM Consulting Limited ''[mailto:omconsult@gmail.com omconsult@gmail.com]'' :Intelligent solutions.<br />
<br />
; Sankel Software http://sankelsoftware.com<br />
: David Sankel<br />
: Albuquerque, NM, USA<br />
<br />
; Simon Michael http://joyful.com<br />
: Los Angeles<br />
<br />
[[Category:Community]]</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2013&diff=56716ZuriHac20132013-09-01T09:44:31Z<p>ErrGe: /* Demoday */</p>
<hr />
<div>[[Image:zurihac2013.png|right]]<br />
<br />
Zurich FP Afternoon:<br />
----<br />
{|<br />
|When:<br />
|Thursday, Aug 29th 2013<br />
|-<br />
|Hours:<br />
|13:00 ~ 18:00<br />
|-<br />
|Where:<br />
|ETH, Zurich, Switzerland<br />
|}<br />
----<br />
<br />
ZuriHac 2013:<br />
<br />
----<br />
{|<br />
|When:<br />
|Friday, Aug 30th 2013 – Sunday, Sep 1st 2013<br />
|-<br />
|Hours:<br />
|09:00 ~ 20:00<br />
|-<br />
|Where:<br />
|Erudify, Zurich, Switzerland<br />
|}<br />
----<br />
<br />
'''Important:'''<br><br />
Switzerland has [http://en.wikipedia.org/wiki/AC_power_plugs_and_sockets#Swiss_SEV_1011_.28Swiss_10.C2.A0A.2F250.C2.A0V.29.28Type_J.29 its own power sockets]. We can't provide converters for everybody so make sure to bring one along. Do note that the [http://en.wikipedia.org/wiki/AC_power_plugs_and_sockets#CEE_7.2F16_Europlug_.28Type_C.29 Europlug] will fit in a Swiss power socket. There's an electronics shop [https://maps.google.ch/maps?q=Fust+Center+Eschenmoser&hl=en&cid=6177809817081314569&gl=CH&t=m&z=16&iwloc=A Fust Center Eschenmoser] very near our office where you can buy converters.<br />
<br />
&nbsp;<br />
<br />
== About ==<br />
<br />
On Thursday, 29 August 2013 the Zurich HaskellerZ Meetup group will hold the "Zurich FP Afternoon". This will be a half-day event consisting of talks themed "Functional Programming in Industry". It will be held at ETH and will start with a keynote from Simon Marlow!<br />
<br />
The Zurich FP Afternoon is followed by ZuriHac 2013, a three day Haskell Hackathon from Friday, 30 August until Sunday, 1 September hosted at the Erudify offices.<br />
<br />
The Haskell Hackathon is an international, grassroots collaborative coding festival with a simple focus: build and improve Haskell libraries, tools, and infrastructure.<br />
<br />
This is a great opportunity to meet your fellow haskellers in real life,<br />
find new contributors for your project, improve existing libraries and tools or<br />
even start new ones!<br />
<br />
See [[ZuriHac]] for previous Hackathons in Zurich.<br />
<br />
== Sponsors ==<br />
http://www.erudify.com/assets/img/erudify-logo.png<br />
<br />
[https://erudify.com Erudify] will host the Hackathon.<br />
<br />
<br />
http://i.imgur.com/5cdqsFU.png<br />
<br />
[http://www.google.com/about/jobs/locations/zurich/ Google Switzerland] are providing financial and food support<br />
<br />
[[Image:ETH.png|450px]]<br />
<br />
[http://eth.ch ETH] will host the Zurich FP Afternoon.<br />
<br />
== News ==<br />
;19 August 2013<br />
:[http://www.google.com/about/jobs/locations/zurich/ Google Switzerland] is an official co-sponsor of ZuriHac 2013.<br> This enables us to give all attendees this free T-shirt:<br> [[Image:T_Shirt_ZuriHac_2013_front_1.jpg|250px]][[Image:T_Shirt_ZuriHac_2013_back_1.jpg|250px]]<br> and free food and drinks during the FP Afternoon!<br> Thanks Google!<br />
<br />
;24 July 2013<br />
:Completed [[ZuriHac2013#Schedule|speakers schedule]] for the FP Afternoon.<br />
<br />
;10 June 2013<br />
:[http://bit.ly/ZuriHac2013Reg Registration] is now open!<br />
<br />
== Registration ==<br />
To register please fill in the [http://bit.ly/ZuriHac2013Reg form].<br />
<br />
== Location ==<br />
[[File:ZurichMontage.jpg|300px|right]]<br />
<br />
'''Zurich, Switzerland'''<br />
<br />
To learn more about the city, please see the [http://en.wikipedia.org/wiki/Zurich '''Wikipedia'''] and [http://wikitravel.org/en/Zurich '''Wikitravel'''] articles.<br />
<br />
* The Zurich FP Afternoon will be hosted at [http://www.rauminfo.ethz.ch/Rauminfo/grundrissplan.gif?region=Z&areal=Z&gebaeude=CAB&geschoss=G&raumNr=61 ETH, building: CAB, room: G61], address: [https://maps.google.com/maps?q=cab+zurich&hl=en&ll=47.378151,8.548077&spn=0.001041,0.005845&sll=37.0625,-95.677068&sspn=84.226897,191.513672&hq=cab&hnear=Zurich,+Canton+of+Zurich,+Switzerland&t=m&fll=47.378178,8.548114&fspn=0.009212,0.023378&layer=c&cbll=47.378152,8.548077&panoid=p0nIrEwC3UaWPZmRJjLN6g&cbp=11,64.77,,0,0&z=19 Universitätstrasse 6, Zürich]. <br />
<br />
* ZuriHac will be hosted at the Erudify offices, [https://maps.google.ch/maps?q=Gr%C3%BCngasse+19,+Z%C3%BCrich&hl=en&ie=UTF8&ll=47.372947,8.525573&spn=0.008734,0.009559&sll=47.373386,8.524925&layer=c&cbp=13,222.55,,0,0.06&cbll=47.373504,8.525083&hnear=Gr%C3%BCngasse+19,+Kreis+4,+8004+Z%C3%BCrich&t=h&z=17&iwloc=A&panoid=vqb-ZHsYZ3d-SIhVYQeEoQ Grüngasse 19, Zürich].<br />
<br />
=== Getting around ===<br />
<br />
[https://maps.google.ch/maps/ms?msa=0&msid=215847268401510829939.0004decda4c3d2e76270f Google map with important places]<br />
<br />
Local transport links:<br />
<br />
http://www.zvv.ch/en/<br />
<br />
'''Getting to the FP Afternoon Talks on the 29th from the Airport'''<br />
<br />
Follow signs to the Tram 10 from the Airport arrivals.<br />
Take the Tram 10 direct to the stop "ETH/Universitätsspital" <br />
<br />
'''Getting to the Zurich Youth Hostel from the Airport'''<br />
<br />
Take any train that stops at Zurich Bahnhof Hardbrücke, transfer to the 33 Trolley bus going direction Morgental. Take 33 to Jugendherberge and you will see the Hostel.<br />
<br />
'''Getting from the Youth Hostel to the FP Afternoon Talks'''<br />
<br />
Walk to Morgental and take the number 7 Tram direction Bahnhof Stettbach. Change to the Number 10 or Number 6 Tram at the stop "Central" (direction Flughafen/Oerklion and Zoo) and get off at "ETH/Universitätsspital" <br />
<br />
'''A note on day tickets:'''<br />
<br />
Day tickets in Zurich run for 24 hours and can be used on all forms of transport, bus, train, tram.<br />
<br />
=== Accommodation ===<br />
<br />
We have spoken with the local Youth Hostel in Zurich and they will be able to group Haskellers together if you mention the code "ZuriHac2013" when booking and when you check in.<br />
<br />
The website to book is here http://www.youthhostel.ch/en/hostels/zurich <br />
<br />
'''Please be advised we do not have a hold on rooms so you should book sooner rather than later if you will attend! Erudify and the Youth Hostel can't guarantee space'''<br />
<br />
The Hostel has good public transport links to the Hackathon and downtown Zurich.<br />
<br />
Transport between the Hostel and Hackathon is very easy with the Trolley Bus 33.<br />
<br />
Other options we recommend are [http://www.wimdu.com/zurich Wimdu] or [https://www.airbnb.com/s/Zurich--Switzerland?checkin=08%2F29%2F2013&checkout=09%2F01%2F2013 Airbnb].<br />
<br />
== Schedule ==<br />
<br />
=== FP Afternoon ===<br />
<br />
<small><br />
{| border=1 style="border: 1px solid darkgray; border-collapse:collapse; " <br />
|-<br />
! Time !! Speaker !! Title !! Abstract !! Slides<br />
|- valign="top" valign="top" style="background: Chartreuse"<br />
| 13:00 || [[File:Zurihac2013.png|50px|top]] || Registration || Food and drinks provided by Google ||<br />
|- valign="top"<br />
| 13:30 || [[File:Simon_Marlow.jpg|50px|top]] Simon Marlow || '''Keynote:''' The Haxl Project at Facebook || Writing code in an environment as large and complex as Facebook involves talking to many different back-end services, including databases, search engines, caches, and so forth. Each of these data sources has different characteristics and requires different access patterns to make best use of its resources. Typical front-end code will need to access many of these resources concurrently, but the programmer doesn't want to be concerned with the details of how best to access each resource. Moreover, we want to be able to write our code in a modular way and yet have concurrent accesses to the back-end services automatically batched and overlapped for us.<br />
<br />
This talk describes a system that we're building using Haskell that allows the<br />
front-end programmer writing business logic to access all the back-end<br />
services in a concise and consistent way, while the system handles batching<br />
and overlapping of requests to multiple data sources behind the scenes. The<br />
programming model is one of implicit concurrency: there's no fork or async<br />
operation, all external data access is implicitly performed in parallel where<br />
possible.<br />
|| [https://github.com/meiersi/HaskellerZ/blob/master/meetups/20130829-FPAfternoon_The_Haxl_Project_at_Facebook/The%20Haxl%20Project%20at%20Facebook.pdf?raw=true Slides]<br />
|- valign="top" style="background: Chartreuse;"<br />
| 14:30 || ''Break'' || || Food and drinks provided by Google ||<br />
|- valign="top"<br />
| 15:00 ||[[File:Erik Hesselink.jpg|50px|top]]Erik Hesselink || Functional programming at [http://silkapp.com/ Silk]. || At Silk we've been using functional programming for about 4 years now. We've used it to build a web application, coding in Haskell and Javascript. I will explain what we do, how we do it, and what we've found to be the strengths and weaknesses of Haskell and Javascript.<br />
|| [https://github.com/meiersi/HaskellerZ/blob/master/meetups/20130829-FPAfternoon_Silk_Haskell_web_application_architecture/20130829-FPAfternoon_Silk_Haskell_web_application_architecture.pdf?raw=true Slides]<br />
|- valign="top"<br />
| 15:35 || [[File:Gergely_Risko.png|50px|top]]Gergely Risko || [https://github.com/errge/ceh Ceh], power-user environments to share || It's a common problem to share user environments (editor, compiler, browser, etc.) between GNU/Linux computers: laptop on the move and desktop at home, or different engineering workstations of a product team. This is usually solved by using the GNU/Linux distribution's package manager. That fails if the different engineers use different distributions or different versions. Ceh, building on Nix provides the same version controlled, reproducible power-user environment on top of any modern GNU/Linux, be it 64-bit or 32-bit. What makes it interesting for Haskellers is the fact that Nix applies the concept of purity and laziness on the filesystem level and package management level, and Ceh also has excellent GHC support with ~80 cabal packages included. ||[http://www.gergely.risko.hu/fpafternoon-zurich-20130829/ceh.html#(1) Slides]<br />
|- valign="top" style="background: Chartreuse;"<br />
| 16:10 || ''Break'' || || Food and drinks provided by Google ||<br />
|- valign="top"<br />
| 16:40 || [[File:Thomas_Schilling.jpg|50px|top]]Thomas Schilling || A [https://github.com/nominolo/lambdachine virtual machine] for Haskell<br />
|| The Glasgow Haskell Compiler is a very good static compiler, but the code it produces is often large and it can be difficult to predict performance.<br />
Furthermore, profiling a program often requires recompiling the program and<br />
all libraries it uses. This talk describes Lambdachine, a virtual machine and<br />
trace-based just-in-time (JIT) compiler for Haskell, which attempts to address<br />
these problems. Lambdachine reuses GHC for type checking and (optional)<br />
static optimisations, and complements it with additional optimisations<br />
performed at runtime based on the program's behaviour. This talk describes<br />
some of the challenges of the design and implementation of Lambdachine.<br />
|| [https://github.com/meiersi/HaskellerZ/blob/master/meetups/20130829-FPAfternoon_Lambdachine/20130829-FPAfternoon_Lambdachine.pdf?raw=true Slides]<br />
|- valign="top"<br />
| 17:15 || [[File:Luite_Stegeman.png|50px|top]]Luite Stegeman || Concurrent Haskell in the browser with [https://github.com/ghcjs/ghcjs GHCJS] || GHCJS is a Haskell to JavaScript compiler that supports many modern Haskell features, including lightweight threads, exceptions, Template Haskell and STM. Since It's based on GHC, we also get all recent type system extensions for free!<br />
<br />
In this talk I will explain how GHCJS hooks into the GHC pipeline to translate<br />
Haskell to JavaScript and discuss the challenges of compiling to a high level<br />
language. We will see how we can interact with JavaScript code from the<br />
Haskell world, in particular how GHCJS lets us avoid callback hell for HTTP<br />
requests and event handling in the browser.<br />
|| [https://github.com/meiersi/HaskellerZ/blob/master/meetups/20130829-FPAfternoon_GHCJS/20130829-FPAfternoon_GHCJS.pdf?raw=true Slides]<br />
|- valign="top" style="background: Chartreuse;"<br />
| 17:50 || ''Prizegiving'' || || Announcement of Google prizes ||<br />
|}<br />
</small><br />
<br />
=== ZuriHac ===<br />
<br />
==== Friday ====<br />
<br />
Hacking hours: 10:00 to 18:00.<br />
<br />
===== Introduction =====<br />
<br />
Please come before '''11:00'''. At 11:00 there will be projects introduction and discussion.<br />
<br />
===== BBQ =====<br />
<br />
Since the weather is lovely we'll go BBQing at Lake Zurich this afternoon! <br />
<br />
* The plan is to leave at 18:00.<br />
<br />
* We'll close the office at 18:00 so make sure you've got your stuff with you.<br />
<br />
* To make it easier we'll go in two groups:<br />
** Group A will be lead by Simon Meier.<br />
** Group B will be lead by Bas van Dijk.<br />
** We'll assemble the groups at around 17:45.<br />
<br />
* Everybody should bring their own food & drinks so we'll go shopping at: [https://maps.google.ch/maps?saddr=Gr%C3%BCngasse+19,+Z%C3%BCrich&daddr=Genossenschaft+Migros+Z%C3%BCrich,+Wengistrasse+7,+8004+Zurich&hl=en&ie=UTF8&ll=47.374273,8.524227&spn=0.002594,0.005681&sll=47.375134,8.523663&sspn=0.002594,0.005681&geocode=FUrc0gIdfRSCACnT_ovwGwqQRzGzmw-qajTgrg%3BFYfi0gIdLQ6CACnf-nNzGQqQRzFyoNByzNxPpg&oq=grun&gl=CH&dirflg=w&mra=ls&t=m&z=18 Migros at Wengistrasse 7] which is a 5 min. walk from ZuriHac.<br />
<br />
* Then we take the S8 train: [https://maps.google.ch/maps?saddr=Z%C3%BCrich,+Wiedikon+%4047.371469,8.523461&daddr=Wollishofen,+Zurich&hl=en&ie=UTF8&sll=47.359467,8.528566&sspn=0.041513,0.090895&geocode=Fc3U0gIdxQ6CAA%3BFVh40gIdEzaCACmRK9RF2AmQRzGqP7t2jjW0fQ&oq=wollis&gl=CH&dirflg=r&ttype=dep&date=08%2F30%2F13&time=18:40&noexp=0&noal=0&sort=def&mra=ls&t=m&z=14&start=0 from Wiedikon to Wollishofen] at 18:47.<br />
<br />
* Make sure to [http://www.zvv.ch/en/tickets/automatic-ticket-machine/index.html buy a ticket] because Swiss train conductors know no mercy. I suggest you buy a "Tageskarte" (which is a ticket for 24 hours) for zone 10.<br />
<br />
* The BBQ location is: [https://maps.google.ch/?ll=47.345842,8.536197&spn=0.001835,0.00284&t=h&z=19 in the park at the Bachstrasse near Lake Zurich].<br />
<br />
* If you like you can take a dive in the lake. The water is around 22°C. So make sure to pack a swimsuit and towel.<br />
<br />
==== Saturday ====<br />
<br />
Dinner: Pizza!<br />
<br />
* We'll order pizzas at the standard Erudify pizza place: Molino at Stauffacher.<br />
<br />
* Please [http://molino.ch/en/restaurants/zurich-stauffacher/food-beverages.html choose your order] (I can recommend Pizza Miss Italia)<br />
<br />
* Bas will come by and take your order and your money ;-)<br />
<br />
* The organizers will get the pizzas and we'll eat them at ZuriHac.<br />
<br />
==== Sunday ====<br />
<br />
===== Demoday =====<br />
* We would like to organize a Demo / Lightning-talk session at '''13:00''' today. <br />
<br />
* Please come to Bas if you would like to demo something or like to give a lightning talk.<br />
<br />
* Please keep your demo's/talks shorter than '''5 minutes'''.<br />
<br />
* Program:<br />
** Duncan Coutts: Lightning talk: "async I/O vs sync I/O".<br />
** Simon Meier: Demo: "Outlook on an improved binary serialization".<br />
** Simon Hengel: Demo: "Source locations for error / undefined / failing tests". (Or a talk about "Testing with hspec").<br />
** Sjoerd Visscher: Demo: "Free Functors".<br />
** Roman Cheplyaka: Lightning talk: The status of the Haskell Suite<br />
** Erik Hesselink: Demo: "Halberd: automatically generating imports".<br />
** Mihaly Barasz: SSTM, it's a thing!<br />
** Gergely Risko: the final library<br />
<br />
== Attendees ==<br />
See [[/Attendees|the list of people]] who are attending the FP Afternoon / ZuriHac 2013.<br />
<br />
== Projects ==<br />
See the [[/Projects|projects page]].<br />
<br />
== IRC, Twitter ==<br />
The main communication channel during the Hackathon will be our IRC channel: '''#zurihac''' at Freenode.<br />
<br />
'''#zurihac''' is our Twitter/Google+ hashtag as well.<br />
<br />
== Organizers ==<br />
The events are organized in name of the [http://www.meetup.com/HaskellerZ/ Zurich HaskellerZ meetup group] by the following people:<br />
<br />
* Alexander Bernauer (Google)<br />
* Thomas Schilling (Erudify)<br />
* Simon Meier (Erudify)<br />
* Michela D'Amelio (Erudify)<br />
* Dominic Small (Erudify)<br />
* Ales Pospisil (Erudify)<br />
* Bas van Dijk (Erudify)<br />
<br />
For any questions or emergencies, you can always call Bas ([[File:Bas_van_Dijk.png|50px]]) at +41 791 285 624 or send an email to zurihac@erudify.com<br />
<br />
[[Category:Community]]<br />
[[Category:Events]]<br />
[[Category:Hackathon]]</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2010/Projects&diff=34102ZuriHac2010/Projects2010-03-17T08:26:58Z<p>ErrGe: </p>
<hr />
<div>== Generic information ==<br />
<br />
You can apply for an account and a project using<br />
[http://community.haskell.org/admin/ the community server].<br />
<br />
Once you have an account and/or a project, you upload a Darcs repository as follows. First, initialize your repository on the server:<br />
<br />
$ ssh community.haskell.org<br />
you@haskell:~$ cd /srv/code/yourproject<br />
you@haskell:/srv/code/yourproject$ darcs init<br />
<br />
Then, log out and push your repository:<br />
<br />
$ darcs push community.haskell.org:/srv/code/yourproject<br />
<br />
== Projects ==<br />
<br />
If you have a project that you want to work on at the Hackathon, please describe it here.<br />
<br />
Since Hackathons are great for teamwork, consider joining one of the projects mentioned below. If you're interested in one of these projects, add your name to the list of hackers under that project.<br />
<!-- Copy this template<br />
=== Project name ===<br />
<br />
I am a project. Love me.<br />
<br />
Hackers: Hacker 1, Hacker 2<br />
--><br />
<br />
=== Darcs ===<br />
<br />
A large chunk of the Darcs team will be at ZuriHac. We would be delighted for you to join in and do some hacking with us. To help you get started, we have a big list of ProbablyEasy bugs to chew on. See our [http://wiki.darcs.net/Sprints/2010-03 sprint page] for more details!<br />
<br />
Hackers: Florent Becker, Guillaume Hoffmann, Eric Kow, Reinier Lamers, Petr Rockai, Ganesh Sittampalam and more...<br />
<br />
=== Need for speed ===<br />
<br />
In 2006 the Python community had a [http://wiki.python.org/moin/NeedForSpeed NeedForSpeed sprint]. Some Haskell libraries, like the containers library, could use some benchmarks (using e.g. [http://hackage.haskell.org/package/criterion Criterion]) and hopefully some performance improvements.<br />
<br />
=== event ===<br />
<br />
The [http://github.com/tibbe/event event library] will hopefully replace GHC's I/O manager with a more scalable implementation, based on better data structures and more efficient system calls (e.g. epoll/kqueue).<br />
<br />
The project is nearing completion, but more testing and benchmarking is needed. The code also needs to be merged into GHC.<br />
<br />
Hackers: Johan Tibell<br />
<br />
=== Data.Binary on continuations ===<br />
<br />
The [http://code.haskell.org/binary/ Data.Binary library] provides blazing fast reading/writing of binary data. There are a few things I'd like to see improved, hopefully before inclusion in the [http://hackage.haskell.org/platform/ Haskell Platform]:<br />
<br />
* It's not possible to use the library on large inputs without resorting to lazy I/O. By changing the underlying implementation to use continuations and expose a continuations based API we can process large inputs without resorting to unsafe operations. This needs to be done while still offering good performance.<br />
* The library lacks error handling. The above implementation would naturally support communicating errors to the user. There are however other ways to achieve the same result.<br />
* The library currently includes two separate features in one package, low-level binary parsing of simple types (e.g. Ints and Words) and a data format (the Binary typeclass). Arguably the library should be split in two.<br />
* The binary data format should be documented and it should be clear which types are guaranteed to have the same encoding for the foreseeable future.<br />
<br />
Hackers: Johan Tibell, Christophe Poucet, Marc A. Ziegert, Lennart Kolmodin<br />
<br />
Comment by Jürgen "Jutaro" Nicklisch: I've hacked an addition package to binary: [http://hackage.haskell.org/package/binary-shared binary-shared], which gives sharing of data for serialization and deserialization. For my app this gives a huge saving of space and time and I think it would be reasonable to integrate this into the binary package. <br />
<br />
<br />
=== Adaptable containers ===<br />
<br />
Scala's collection library was [http://www.scala-lang.org/node/2060 completely overhauled] in 2.8. The [http://hackage.haskell.org/package/containers containers library] is a bit dated. There are several things that could be done:<br />
<br />
* Write a new library based on associate data types, yielding performance improvements.<br />
* Write more tests and add some [http://hackage.haskell.org/package/criterion Criterion] benchmarks.<br />
* Consolidate API naming, exported functions, etc.<br />
<br />
Hackers: Christophe Poucet <br />
<br />
=== Leksah ===<br />
<br />
I will work on Leksah and help is needed and welcome<br />
<br />
* Packaging for Debian/Ubuntu<br />
* Editor for Cabal files with configurations<br />
* Concept for Plugins/Extensions<br />
* Fixing bugs<br />
* ...<br />
<br />
Hackers: Jürgen Nicklisch<br />
<br />
=== arbtt ===<br />
<br />
The automatic rule based time tracker needs some love. Possible projects are <br />
<br />
* Graphical statistics<br />
* Export to hamster db (they have nice statistics)<br />
* More powerful date/time manipulation rules (including type inference and good error messages)<br />
* Performance improvements<br />
* ...<br />
<br />
Hackers: Joachim “nomeata” Breitner, Martin Kiefel<br />
<br />
=== loker ===<br />
<br />
Loker is:<br />
* library for parsing (POSIX) UNIX Shell scripts<br />
* program for static analysis of Shell scripts<br />
* compiler for Shell scripts<br />
* whatever you can imagine related to Shell scripts.<br />
<br />
Currently the parser part is almost done. See [http://github.com/feuerbach/loker githug repository].<br />
<br />
I am happy to see anyone interested in the project, please contact [http://ro-che.info/ me].<br />
<br />
Hackers: Roman Cheplyaka<br />
<br />
=== JPEG-decoder ===<br />
<br />
Package stb-image contains a JPEG-decoding function, but it is a wrapper around a C function. Obviously, it is not the Haskell spirit to let C do the dirty work!<br />
<br />
I once wrote a JPEG-decoder purely in Haskell. It is optimized for readability rather than speed.<br />
During the Hackathon, I want to: <br />
* package it under Cabal<br />
* try and optimize it (using bytestreams (or bitstreams?))<br />
* see whether it competes with the C implementation...<br />
Help of hackers who know bytestreams is appreciated (you don't need knowledge of JPEG to participate in this project).<br />
<br />
Hackers: Jeroen Fokker.<br />
<br />
=== hledger ===<br />
[http://hledger.org/ Hledger] is a personal finance manager. Hackers are welcome! Hledger's author Simon Michael will be (remotely) with us.<br />
<br />
Tasks:<br />
# Readline-like interface in "hledger add", perhaps using shellac <br />
# Embedded calculator into "hledger add"<br />
# Exporting data to R<br />
# Improve hledger as a library. Design good API<br />
# Also see ideas [http://groups.google.com/group/hledger/msg/9827288df3e5bf51 here]; feel free to add them to this list if you are going to hack on them<br />
<br />
Hackers: Roman Cheplyaka<br />
<br />
=== BlazeHtml ===<br />
There are several HTML combinator libraries on hackage, but we still need one that is *really* fast. This is attempt to tackle the problem [http://hackage.haskell.org/trac/summer-of-code/ticket/1580 described here]. A simple API proposal can be found [http://gist.github.com/332603 here], and the corresponding github repo [http://github.com/jaspervdj/BlazeHtml is here]. Everyone is welcome to hack on this (new) project, if you're interested please contact [http://jaspervdj.be/contact.html me].<br />
<br />
Hackers: Jasper Van der Jeugt, Simon Meier, Christopher Done(?)<br />
<br />
* I'm interested in this -- I've forked your github gist. Do you want to start a proper project that we can fork? I'll try to come up with some Criterion tests and QuickCheck properties. I'm interested in adding a type-safe layer which may require some newtypes. Criterion will help determine how detrimental this is to speed and space. ---- [[User:Chrisdone|Chrisdone]] 22:17, 15 March 2010 (UTC)<br />
<br />
=== Pesto ===<br />
I will be working on the Pesto web framework. Rather than a regular framework, it is a collection of orthogonal modules for the model, view and controller part. I will try to release the [http://github.com/chriseidhof/regular-web regular-web] package and possibly work on the [http://github.com/chriseidhof/Basil Basil] library.<br />
<br />
Hackers: Chris Eidhof, Christopher Done(?)<br />
<br />
===Sirenial===<br />
[http://code.google.com/p/sirenial/ Sirenial] is a type-safe SQL wrapper. Compared to HaskellDB it uses simpler types and is able to automatically and transparently merge similar SELECT queries. During the Hackathon I will aim to bring the project to a usable state and release a first version on Hackage.<br />
<br />
Hackers: Martijn van Steenbergen<br />
<br />
=== UHC ===<br />
We will work on library support (Cabal, FFI) for UHC.<br />
There are many other projects, work in progress, etc, so just ask us if you want<br />
to work on a UHC related project or just are interested to know a bit more about its internals.<br />
<br />
Hackers: Atze Dijkstra, Andres L&ouml;h, Jeroen Fokker<br />
<br />
=== Testable Documentation ===<br />
I'll work on testable documentation. There is still some work to be done on [http://hackage.haskell.org/package/DocTest DocTest] (e. g. integration with Haddock, support for QuickCheck properties). An other idea is to define a format for tutorials, that allows us to verify that given Examples do actually work. Please drop me some lines (simon hengel at wiktory org), if you are interested in the topic.<br />
<br />
Hackers: Simon Hengel<br />
<br />
=== Histories on data types ===<br />
I'm going to be working on a seamlessly extending ADTs with histories and lifting functions on those ADTs to properly extend the histories. Things I'll probably spend time on: trying to find a clean SYB formulation for this, and extending the Diff library on Hackage to work on ByteString and Text.<br />
<br />
Hackers: Fred Ross<br />
<br />
=== Haskell eval/type-checker/smallchecker as a RESTful service ===<br />
Considering hacking more on the libraries behind TryHaskell as a service for checking small chunks of code -- similar to CodePad but as a RESTful service callable from JavaScript. This could be used on tutorials and online books such as Learn You A Haskell for testing code samples and interactive exercises (e.g. using smallcheck to check correctness of exercise answers). I envisage blog posts showing snippets that one can run in-page. It's currently on my home computer but I have set a Linode VPS for this purpose (it could also work with multiple hosts although I'm not too up on how to do that). Let me know if you're interesting in using or hacking on this idea. Also thinking about how to utilise CodePad if possible.<br />
<br />
Hackers: Christopher Done<br />
<br />
===Cabal===<br />
[http://hackage.haskell.org/trac/hackage/wiki Cabal] just recently i had to implement a minimal packaging system for my work. for some of the tasks it was convenient to reuse some of the cabal features. so i just stumbled across a post from duncan from last year ([http://www.haskell.org/pipermail/cabal-devel/2009-January/004548.html post from duncan]) trying to find developers interested in helping with cabal. don't know if anybody wants to do some work on that but if there is i'd be up for it.<br />
<br />
Hackers: Oliver Mueller<br />
<br />
===symhs===<br />
[http://code.google.com/p/sympy/ sympy] is a very good and easy to use symbolic math package for python. We would like to create something similar in Haskell. Of course the time will be limited, so we will try to concentrate on something minimal which is already useful.<br />
<br />
Hackers: Mihaly Barasz, Gergely Risko<br />
<br />
== Experience ==<br />
<br />
Please list projects with which you are familiar. This way, people know whom to contact for more information or guidance on a particular project.<br />
<br />
{| class="wikitable"<br />
! Name<br />
! Projects<br />
|-<br />
| tibbe<br />
| [http://github.com/tibbe/event event], [http://github.com/tibbe/hyena Hyena], and general networking/HTTP<br />
|-<br />
| chrisdone<br />
| Hacked on/worked on: libgd, hsql, fast/cgi, formlets, json, fdo-notify, mueval, lambdabot, wordcloud, goa, tryhaskell<br />
|-<br />
| coeus<br />
| Network.Socket, binary+cereal; NFSv3 protocol, RS-Codes, have been working with multiple different interacting threads (i.e. combined with single-threaded GUIs, NFS-proxy)<br />
|-<br />
|chriseidhof<br />
| formlets, sphinx, Basil, regular-web, regular, fclabels.<br />
|-<br />
|JedBrown<br />
| distributed memory parallelism, numerical analysis, [http://hackage.haskell.org/package/fft fft]<br />
|-<br />
|SebastiaanVisser<br />
| salvia: websockets, inter-process sessions, more flexible user managent, http-ranges, more abstract api and more. [http://github.com/sebastiaanvisser/salvia-extras (github)]<br />
|}</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2010/Projects&diff=34101ZuriHac2010/Projects2010-03-17T08:25:37Z<p>ErrGe: </p>
<hr />
<div>== Generic information ==<br />
<br />
You can apply for an account and a project using<br />
[http://community.haskell.org/admin/ the community server].<br />
<br />
Once you have an account and/or a project, you upload a Darcs repository as follows. First, initialize your repository on the server:<br />
<br />
$ ssh community.haskell.org<br />
you@haskell:~$ cd /srv/code/yourproject<br />
you@haskell:/srv/code/yourproject$ darcs init<br />
<br />
Then, log out and push your repository:<br />
<br />
$ darcs push community.haskell.org:/srv/code/yourproject<br />
<br />
== Projects ==<br />
<br />
If you have a project that you want to work on at the Hackathon, please describe it here.<br />
<br />
Since Hackathons are great for teamwork, consider joining one of the projects mentioned below. If you're interested in one of these projects, add your name to the list of hackers under that project.<br />
<!-- Copy this template<br />
=== Project name ===<br />
<br />
I am a project. Love me.<br />
<br />
Hackers: Hacker 1, Hacker 2<br />
--><br />
<br />
=== Darcs ===<br />
<br />
A large chunk of the Darcs team will be at ZuriHac. We would be delighted for you to join in and do some hacking with us. To help you get started, we have a big list of ProbablyEasy bugs to chew on. See our [http://wiki.darcs.net/Sprints/2010-03 sprint page] for more details!<br />
<br />
Hackers: Florent Becker, Guillaume Hoffmann, Eric Kow, Reinier Lamers, Petr Rockai, Ganesh Sittampalam and more...<br />
<br />
=== Need for speed ===<br />
<br />
In 2006 the Python community had a [http://wiki.python.org/moin/NeedForSpeed NeedForSpeed sprint]. Some Haskell libraries, like the containers library, could use some benchmarks (using e.g. [http://hackage.haskell.org/package/criterion Criterion]) and hopefully some performance improvements.<br />
<br />
=== event ===<br />
<br />
The [http://github.com/tibbe/event event library] will hopefully replace GHC's I/O manager with a more scalable implementation, based on better data structures and more efficient system calls (e.g. epoll/kqueue).<br />
<br />
The project is nearing completion, but more testing and benchmarking is needed. The code also needs to be merged into GHC.<br />
<br />
Hackers: Johan Tibell<br />
<br />
=== Data.Binary on continuations ===<br />
<br />
The [http://code.haskell.org/binary/ Data.Binary library] provides blazing fast reading/writing of binary data. There are a few things I'd like to see improved, hopefully before inclusion in the [http://hackage.haskell.org/platform/ Haskell Platform]:<br />
<br />
* It's not possible to use the library on large inputs without resorting to lazy I/O. By changing the underlying implementation to use continuations and expose a continuations based API we can process large inputs without resorting to unsafe operations. This needs to be done while still offering good performance.<br />
* The library lacks error handling. The above implementation would naturally support communicating errors to the user. There are however other ways to achieve the same result.<br />
* The library currently includes two separate features in one package, low-level binary parsing of simple types (e.g. Ints and Words) and a data format (the Binary typeclass). Arguably the library should be split in two.<br />
* The binary data format should be documented and it should be clear which types are guaranteed to have the same encoding for the foreseeable future.<br />
<br />
Hackers: Johan Tibell, Christophe Poucet, Marc A. Ziegert, Lennart Kolmodin<br />
<br />
Comment by Jürgen "Jutaro" Nicklisch: I've hacked an addition package to binary: [http://hackage.haskell.org/package/binary-shared binary-shared], which gives sharing of data for serialization and deserialization. For my app this gives a huge saving of space and time and I think it would be reasonable to integrate this into the binary package. <br />
<br />
<br />
=== Adaptable containers ===<br />
<br />
Scala's collection library was [http://www.scala-lang.org/node/2060 completely overhauled] in 2.8. The [http://hackage.haskell.org/package/containers containers library] is a bit dated. There are several things that could be done:<br />
<br />
* Write a new library based on associate data types, yielding performance improvements.<br />
* Write more tests and add some [http://hackage.haskell.org/package/criterion Criterion] benchmarks.<br />
* Consolidate API naming, exported functions, etc.<br />
<br />
Hackers: Christophe Poucet <br />
<br />
=== Leksah ===<br />
<br />
I will work on Leksah and help is needed and welcome<br />
<br />
* Packaging for Debian/Ubuntu<br />
* Editor for Cabal files with configurations<br />
* Concept for Plugins/Extensions<br />
* Fixing bugs<br />
* ...<br />
<br />
Hackers: Jürgen Nicklisch<br />
<br />
=== arbtt ===<br />
<br />
The automatic rule based time tracker needs some love. Possible projects are <br />
<br />
* Graphical statistics<br />
* Export to hamster db (they have nice statistics)<br />
* More powerful date/time manipulation rules (including type inference and good error messages)<br />
* Performance improvements<br />
* ...<br />
<br />
Hackers: Joachim “nomeata” Breitner, Martin Kiefel<br />
<br />
=== loker ===<br />
<br />
Loker is:<br />
* library for parsing (POSIX) UNIX Shell scripts<br />
* program for static analysis of Shell scripts<br />
* compiler for Shell scripts<br />
* whatever you can imagine related to Shell scripts.<br />
<br />
Currently the parser part is almost done. See [http://github.com/feuerbach/loker githug repository].<br />
<br />
I am happy to see anyone interested in the project, please contact [http://ro-che.info/ me].<br />
<br />
Hackers: Roman Cheplyaka<br />
<br />
=== JPEG-decoder ===<br />
<br />
Package stb-image contains a JPEG-decoding function, but it is a wrapper around a C function. Obviously, it is not the Haskell spirit to let C do the dirty work!<br />
<br />
I once wrote a JPEG-decoder purely in Haskell. It is optimized for readability rather than speed.<br />
During the Hackathon, I want to: <br />
* package it under Cabal<br />
* try and optimize it (using bytestreams (or bitstreams?))<br />
* see whether it competes with the C implementation...<br />
Help of hackers who know bytestreams is appreciated (you don't need knowledge of JPEG to participate in this project).<br />
<br />
Hackers: Jeroen Fokker.<br />
<br />
=== hledger ===<br />
[http://hledger.org/ Hledger] is a personal finance manager. Hackers are welcome! Hledger's author Simon Michael will be (remotely) with us.<br />
<br />
Tasks:<br />
# Readline-like interface in "hledger add", perhaps using shellac <br />
# Embedded calculator into "hledger add"<br />
# Exporting data to R<br />
# Improve hledger as a library. Design good API<br />
# Also see ideas [http://groups.google.com/group/hledger/msg/9827288df3e5bf51 here]; feel free to add them to this list if you are going to hack on them<br />
<br />
Hackers: Roman Cheplyaka<br />
<br />
=== BlazeHtml ===<br />
There are several HTML combinator libraries on hackage, but we still need one that is *really* fast. This is attempt to tackle the problem [http://hackage.haskell.org/trac/summer-of-code/ticket/1580 described here]. A simple API proposal can be found [http://gist.github.com/332603 here], and the corresponding github repo [http://github.com/jaspervdj/BlazeHtml is here]. Everyone is welcome to hack on this (new) project, if you're interested please contact [http://jaspervdj.be/contact.html me].<br />
<br />
Hackers: Jasper Van der Jeugt, Simon Meier, Christopher Done(?)<br />
<br />
* I'm interested in this -- I've forked your github gist. Do you want to start a proper project that we can fork? I'll try to come up with some Criterion tests and QuickCheck properties. I'm interested in adding a type-safe layer which may require some newtypes. Criterion will help determine how detrimental this is to speed and space. ---- [[User:Chrisdone|Chrisdone]] 22:17, 15 March 2010 (UTC)<br />
<br />
=== Pesto ===<br />
I will be working on the Pesto web framework. Rather than a regular framework, it is a collection of orthogonal modules for the model, view and controller part. I will try to release the [http://github.com/chriseidhof/regular-web regular-web] package and possibly work on the [http://github.com/chriseidhof/Basil Basil] library.<br />
<br />
Hackers: Chris Eidhof, Christopher Done(?)<br />
<br />
===Sirenial===<br />
[http://code.google.com/p/sirenial/ Sirenial] is a type-safe SQL wrapper. Compared to HaskellDB it uses simpler types and is able to automatically and transparently merge similar SELECT queries. During the Hackathon I will aim to bring the project to a usable state and release a first version on Hackage.<br />
<br />
Hackers: Martijn van Steenbergen<br />
<br />
=== UHC ===<br />
We will work on library support (Cabal, FFI) for UHC.<br />
There are many other projects, work in progress, etc, so just ask us if you want<br />
to work on a UHC related project or just are interested to know a bit more about its internals.<br />
<br />
Hackers: Atze Dijkstra, Andres L&ouml;h, Jeroen Fokker<br />
<br />
=== Testable Documentation ===<br />
I'll work on testable documentation. There is still some work to be done on [http://hackage.haskell.org/package/DocTest DocTest] (e. g. integration with Haddock, support for QuickCheck properties). An other idea is to define a format for tutorials, that allows us to verify that given Examples do actually work. Please drop me some lines (simon hengel at wiktory org), if you are interested in the topic.<br />
<br />
Hackers: Simon Hengel<br />
<br />
=== Histories on data types ===<br />
I'm going to be working on a seamlessly extending ADTs with histories and lifting functions on those ADTs to properly extend the histories. Things I'll probably spend time on: trying to find a clean SYB formulation for this, and extending the Diff library on Hackage to work on ByteString and Text.<br />
<br />
Hackers: Fred Ross<br />
<br />
=== Haskell eval/type-checker/smallchecker as a RESTful service ===<br />
Considering hacking more on the libraries behind TryHaskell as a service for checking small chunks of code -- similar to CodePad but as a RESTful service callable from JavaScript. This could be used on tutorials and online books such as Learn You A Haskell for testing code samples and interactive exercises (e.g. using smallcheck to check correctness of exercise answers). I envisage blog posts showing snippets that one can run in-page. It's currently on my home computer but I have set a Linode VPS for this purpose (it could also work with multiple hosts although I'm not too up on how to do that). Let me know if you're interesting in using or hacking on this idea. Also thinking about how to utilise CodePad if possible.<br />
<br />
Hackers: Christopher Done<br />
<br />
===Cabal===<br />
[http://hackage.haskell.org/trac/hackage/wiki Cabal] just recently i had to implement a minimal packaging system for my work. for some of the tasks it was convenient to reuse some of the cabal features. so i just stumbled across a post from duncan from last year ([http://www.haskell.org/pipermail/cabal-devel/2009-January/004548.html post from duncan]) trying to find developers interested in helping with cabal. don't know if anybody wants to do some work on that but if there is i'd be up for it.<br />
<br />
Hackers: Oliver Mueller<br />
<br />
===symhs===<br />
[http://code.google.com/p/sympy/ sympy] is a very good and easy to use symbolic math package for python. We would like to create something similar in Haskell. Of course the time will be limited, so we will try to concentrate on something minimal which is already useful.<br />
<br />
Hackers: Gergely Risko, Mihaly Barasz<br />
<br />
== Experience ==<br />
<br />
Please list projects with which you are familiar. This way, people know whom to contact for more information or guidance on a particular project.<br />
<br />
{| class="wikitable"<br />
! Name<br />
! Projects<br />
|-<br />
| tibbe<br />
| [http://github.com/tibbe/event event], [http://github.com/tibbe/hyena Hyena], and general networking/HTTP<br />
|-<br />
| chrisdone<br />
| Hacked on/worked on: libgd, hsql, fast/cgi, formlets, json, fdo-notify, mueval, lambdabot, wordcloud, goa, tryhaskell<br />
|-<br />
| coeus<br />
| Network.Socket, binary+cereal; NFSv3 protocol, RS-Codes, have been working with multiple different interacting threads (i.e. combined with single-threaded GUIs, NFS-proxy)<br />
|-<br />
|chriseidhof<br />
| formlets, sphinx, Basil, regular-web, regular, fclabels.<br />
|-<br />
|JedBrown<br />
| distributed memory parallelism, numerical analysis, [http://hackage.haskell.org/package/fft fft]<br />
|-<br />
|SebastiaanVisser<br />
| salvia: websockets, inter-process sessions, more flexible user managent, http-ranges, more abstract api and more. [http://github.com/sebastiaanvisser/salvia-extras (github)]<br />
|}</div>ErrGehttps://wiki.haskell.org/index.php?title=ZuriHac2010/Attendees&diff=33162ZuriHac2010/Attendees2010-01-19T17:14:11Z<p>ErrGe: added Gergely Risko to the attendees</p>
<hr />
<div>This is the attendee list for [[ZuriHac]]. Please refer to the [[ZuriHac|main page]] for more information.<br />
<br />
= Attendees =<br />
<br />
Once you've [[ZuriHac/Register|registered]], please add your name to the following table:<br />
<br />
{| class="wikitable"<br />
! Nickname<br />
! Real Name<br />
! Affiliation<br />
! Mobile #<br />
! Arriving<br />
! Departing<br />
! Accomodation<br />
|-<br />
| coeus<br />
| Marc A. Ziegert<br />
| University of Paderborn<br />
| +49 17 5 6000 700<br />
| <br />
| <br />
| <br />
|-<br />
| Heffalump<br />
| Ganesh Sittampalam<br />
| Credit Suisse (Darcs)<br />
| +447968253467<br />
| <br />
| <br />
| <br />
|-<br />
| tibbe<br />
| Johan Tibell<br />
| Google<br />
| +41787978230<br />
| <br />
| <br />
| <br />
|-<br />
| <br />
| Keith Lomax<br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-<br />
| sioraiocht<br />
| Tom Harper<br />
| Oxford University Computing Laboratory<br />
| +44 7533 998 591<br />
|<br />
|<br />
|<br />
|-<br />
| poucet<br />
| Christophe Poucet<br />
| Google<br />
| +41796691013<br />
| <br />
| <br />
| <br />
|-<br />
| zeuxis<br />
| Harald Holtmann<br />
| <br />
| +49 176 22053266<br />
| <br />
| <br />
| <br />
|-<br />
| rmies<br />
| Michel Rijnders<br />
| TTY (Amsterdam)<br />
| +31646442127<br />
|<br />
|<br />
|<br />
|-<br />
| <br />
| Simon Meier<br />
| ETH Zurich<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| Gh_<br />
| Guillaume Hoffmann<br />
| (Darcs)<br />
|<br />
| 19 morning<br />
| 21 afternoon<br />
|<br />
|-<br />
| vvv<br />
| Valery V. Vorotyntsev<br />
| Infopulse Ukraine<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| jnwhiteh<br />
| Jim Whitehead<br />
| Oxford University Computing Laboratory<br />
| +44 7846 257 133<br />
| <br />
| <br />
|-<br />
| kolmodin<br />
| Lennart Kolmodin<br />
| Västra Götalandsregionen<br />
| +46 73 6223606<br />
| <br />
|<br />
| <br />
|-<br />
| madhadron<br />
| Frederick Ross<br />
| Ecole Polytechnique Federale de Lausanne<br />
| +41 79 710 02 11<br />
| <br />
|<br />
|<br />
|-<br />
| al-maisan<br />
| Muharem Hrnjadovic<br />
| <br />
| +49 (1577) 470-3749<br />
|19 morning<br />
|21 afternoon<br />
|Hotel Neufeld, Friesenbergstraße 15<br />
|<br />
|-<br />
| beschmi<br />
| Benedikt Schmidt<br />
| ETH Zurich (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| chr1s<br />
| Chris Eidhof<br />
| Tupil / Utrecht University<br />
| +31628887656<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Martijn van Steenbergen<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| hesselink<br />
| Erik Hesselink<br />
| typLAB<br />
| +31650994887<br />
|<br />
|<br />
|<br />
|-<br />
| sfvisser<br />
| Sebastiaan Visser<br />
| typLAB / Utrecht University<br />
| +31624828951<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Tom Lokhorst<br />
| Utrecht University<br />
| <br />
|<br />
|<br />
|<br />
|-<br />
| kosmikus<br />
| Andres L&ouml;h<br />
| Utrecht University<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| smurfpje<br />
| Clara L&ouml;h<br />
| Universit&auml;t G&ouml;ttingen<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| nomeata<br />
| Joachim Breitner<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| kowey<br />
| Eric Kow<br />
| University of Brighton (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Simon Hengel<br />
| Spin AG<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Dirk Spöri<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Harald Fischer<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Johannes Weiss<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Gero Kriependorf<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Stefan Wehr<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| David Leuschner<br />
| factis research GmbH<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|<br />
| Steven Keuchel<br />
| Utrecht University<br />
| +31644053336<br />
|<br />
|<br />
|-<br />
| dcoutts<br />
| Duncan Coutts<br />
| Well-Typed LLP<br />
| <br />
| <br />
| <br />
|<br />
|-<br />
| tux_rocker<br />
| ReinierLamers<br />
| (Darcs)<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| jutaro<br />
| Jürgen Nicklisch-Franken<br />
| ICS AG<br />
| <br />
| <br />
|<br />
|<br />
|-<br />
| dons<br />
| Don Stewart<br />
| Galois, Inc<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| gal_bolle<br />
| Florent Becker<br />
| Université d'Orléans<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| ErrGe<br />
| Gergely Risko<br />
| Nokia<br />
| +358504899477<br />
| 19 noon<br />
| 22 noon<br />
|<br />
|}<br />
<br />
= Additional Comments =<br />
<br />
Please use this section to leave comments for other attendees, e.g. for organizing accommodation.</div>ErrGe