Difference between revisions of "ZuriHac2016/Projects"

From HaskellWiki
Jump to navigation Jump to search
 
(9 intermediate revisions by 3 users not shown)
Line 14: Line 14:
 
= Cryptonite =
 
= Cryptonite =
   
'''Contact''': Vincent Hanquez
+
'''Contact''': Vincent Hanquez, Luke Taylor
   
 
'''Homepage''': https://github.com/haskell-crypto/cryptonite
 
'''Homepage''': https://github.com/haskell-crypto/cryptonite
Line 20: Line 20:
 
'''Required skill level''': Advanced
 
'''Required skill level''': Advanced
   
  +
Cryptonite is a haskell cryptography kitchen sink. If you have any crypto related project that, get in touch with the maintainers. Some ideas:
= Discussion about Local Haskell Clubs =
 
  +
  +
* ECIES implementation: easy haskell, medium crypto
  +
* ECC class to handle multiples implementation
  +
* Performance improvement (RSA, AES-GCM, ECC)
  +
 
= <s>Discussion about Local Haskell Clubs</s> =
  +
  +
'''Unfortunately, José-Paul Dominguez could not attend the Hackathon'''
   
 
'''Contact''': José-Paul Dominguez
 
'''Contact''': José-Paul Dominguez
Line 37: Line 45:
 
Haskell programmers will be interested by giving tips or eventually
 
Haskell programmers will be interested by giving tips or eventually
 
getting involved.
 
getting involved.
  +
  +
= Foundation =
  +
  +
'''Contact''': Vincent Hanquez, Nicolas Di Prima
  +
  +
'''Homepage''': https://github.com/haskell-foundation/foundation
  +
  +
'''Required skill level''': From Medium to Expert
  +
  +
Foundation is a rethinking of base, providing a blank canvas to set a better haskell experience with:
  +
  +
* first class support for vector, bytestring, text
  +
* better number abstraction
  +
  +
We're working on making our first public release
   
 
= Hakyll =
 
= Hakyll =
Line 46: Line 69:
 
'''Required skill level''': Beginner
 
'''Required skill level''': Beginner
   
  +
Suggested work:
= Haskell IDE Engine =
 
 
'''Contact''': Moritz Kiefer
 
   
'''Homepage''': https://github.com/haskell/haskell-ide-engine
+
* [https://github.com/jaspervdj/hakyll/issues/414 Improve spacing control in templates]
  +
* Replace the preview web server in Hakyll by something that requires minimal dependencies
   
 
= Hedsql =
 
= Hedsql =
Line 101: Line 123:
 
Description: the library is currently using a State Monad for writing SELECT queries, but maybe there is a better way.
 
Description: the library is currently using a State Monad for writing SELECT queries, but maybe there is a better way.
   
= Opaleye =
+
= <s>Opaleye</s> =
  +
  +
'''Unfortunately, Tom Ellis could not attend the Hackathon. '''
   
 
Work on the list of [https://github.com/tomjaguarpaw/haskell-opaleye/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement Opaleye enhancements]
 
Work on the list of [https://github.com/tomjaguarpaw/haskell-opaleye/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement Opaleye enhancements]
Line 118: Line 142:
   
 
'''Required skill level''': Expert
 
'''Required skill level''': Expert
  +
  +
haskell-opencv is an in-development opensource Haskell binding to the popular OpenCV-3.1 C++ Computer Vision library. Note that other Haskell OpenCV bindings already exist but these target the older 2.4 version of OpenCV.
  +
  +
The library comes with haddock documentation. Example programs are embedded in the documentation and are automatically build and run as part of the test-suite. They output images which are referenced from the documentation. Besides documentation the library also comes with a test-suite and the beginning of a benchmark suite. Finally, the library is already being used in production by LumiGuide for [https://bicycledutch.wordpress.com/2015/06/09/bicycle-parking-guidance-system-in-utrecht/ detecting available space to park your bicycle or car in big parking facilities].
  +
  +
The library is not finished yet. A lot of functions still need to be bound. However, the basis is there to easily bind missing functionality. All the core pieces are in place: core datatypes like points, sizes, polygons and most importantly matrices are there. It's also easy to bind missing datatypes. We use inline-c to inline C++ code in our Haskell code. We also have a way of dealing with exceptions originating from C++ code.
  +
  +
The goal of this ZuriHac project is simply to bind more functionality. Roel and Bas will be available as mentors and can help you get started quickly and provide advice on how to best represent OpenCV functions in Haskell.
   
 
= Hadrian (Shaking up GHC) =
 
= Hadrian (Shaking up GHC) =
Line 144: Line 176:
   
 
'''Required skill level''': Advanced
 
'''Required skill level''': Advanced
  +
  +
Spock is a lightweight web framework that provides everything needed to build web applications in Haskell. The last major release was made half a year ago and since then we have accumulated some changes and feature requests that are waiting to be released. The goal is to have a new release ready by the end of the hackathon. This should include at least the current state of the repository, in the optimal case new features and/or performance improvements. A very cool vision would also be to make it easy to use Spock full stack with GHCJS. There's some not-yet-opensourced code for that that could be worked on and released. Summarized, there are tasks (from easy to more difficult) like: Improve documentation, write/improve benchmarks, write examples/tutorials, revisit github issues and fix or close them, finalize the design for defining REST-APIs, finalize the design for interop with GHCJS-Frontend, improve performance, revisit current package layout (what belongs into which package?).
   
 
= Hoodle =
 
= Hoodle =

Latest revision as of 12:03, 24 July 2016

Agda

Contact: Philipp Hausmann

Homepage: http://wiki.portal.chalmers.se/agda/pmwiki.php

Required skill level: Advanced

Agda is a dependently-typed functional programming language implemented in Haskell. The plan is to improve the current IO support in the Standard Library/Prelude and maybe fix a bug or two in the Agda Compiler Backends.

Cryptonite

Contact: Vincent Hanquez, Luke Taylor

Homepage: https://github.com/haskell-crypto/cryptonite

Required skill level: Advanced

Cryptonite is a haskell cryptography kitchen sink. If you have any crypto related project that, get in touch with the maintainers. Some ideas:

  • ECIES implementation: easy haskell, medium crypto
  • ECC class to handle multiples implementation
  • Performance improvement (RSA, AES-GCM, ECC)

Discussion about Local Haskell Clubs

Unfortunately, José-Paul Dominguez could not attend the Hackathon

Contact: José-Paul Dominguez

Required skill level: Beginner

The Grenoble Haskell club is a project I envisaged with Jérémy, who is attenting ZuriHac2016 too. We would like to bring Haskell to our University with a "student club", open to everybody. Anyone could propose talks, projects, materials around Haskell in order to learn, teach, try and have fun.

I thought it might be insteresting to discuss about it with people. Being myself a recent "Haskeller" I find it quite hard sometimes to catch people's interest about Haskell. Maybe experienced Haskell programmers will be interested by giving tips or eventually getting involved.

Foundation

Contact: Vincent Hanquez, Nicolas Di Prima

Homepage: https://github.com/haskell-foundation/foundation

Required skill level: From Medium to Expert

Foundation is a rethinking of base, providing a blank canvas to set a better haskell experience with:

  • first class support for vector, bytestring, text
  • better number abstraction

We're working on making our first public release

Hakyll

Contact: Jasper Van der Jeugt

Homepage: http://jaspervdj.be/hakyll

Required skill level: Beginner

Suggested work:

Hedsql

Contact: Léonard Monnier

Homepage: https://github.com/momomimachli/Hedsql

Required skill level: Beginner

By order of difficulty, the following things could be done:

Data.Text support

Level: beginner

Description: use Data.Text instead of String

Injection tests

Level: beginner in Haskell, solid SQL knowledge

Description: ensure that the library is dealing correctly against SQL injection.

Database tests

Level: beginner/intermediate

Description: write the integration tests against real databases (SqLite, PostgreSQL and MariaDB).

Add new SQL functionalities

Level: intermediate Description:

Add support to additional SQL functions such as:

  • ALTER statements
  • types (such as time-stamp, date, etc.)
  • various SQL vendor functions such as "sqlite3_last_insert_rowid()" for example.

It implies to work through the full stack:

  • create a new function/datatype in the AST
  • create a new constructor function to generate the AST
  • create new parser(s) function(s) to generate the SQL code.

Architecture

Level: expert

Description: the library is currently using a State Monad for writing SELECT queries, but maybe there is a better way.

Opaleye

Unfortunately, Tom Ellis could not attend the Hackathon.

Work on the list of Opaleye enhancements

Contact: Tom Ellis

Homepage: https://hackage.haskell.org/package/opaleye

Required skill level: Advanced

OpenCV 3.1 Haskell binding

Homepage: https://github.com/LumiGuide/haskell-opencv

Contact: Bas van Dijk

Required skill level: Expert

haskell-opencv is an in-development opensource Haskell binding to the popular OpenCV-3.1 C++ Computer Vision library. Note that other Haskell OpenCV bindings already exist but these target the older 2.4 version of OpenCV.

The library comes with haddock documentation. Example programs are embedded in the documentation and are automatically build and run as part of the test-suite. They output images which are referenced from the documentation. Besides documentation the library also comes with a test-suite and the beginning of a benchmark suite. Finally, the library is already being used in production by LumiGuide for detecting available space to park your bicycle or car in big parking facilities.

The library is not finished yet. A lot of functions still need to be bound. However, the basis is there to easily bind missing functionality. All the core pieces are in place: core datatypes like points, sizes, polygons and most importantly matrices are there. It's also easy to bind missing datatypes. We use inline-c to inline C++ code in our Haskell code. We also have a way of dealing with exceptions originating from C++ code.

The goal of this ZuriHac project is simply to bind more functionality. Roel and Bas will be available as mentors and can help you get started quickly and provide advice on how to best represent OpenCV functions in Haskell.

Hadrian (Shaking up GHC)

Contact: Andrey Mokhov

Homepage: https://github.com/snowleopard/hadrian

Required skill level: Advanced

Hadrian is a new build system for the Glasgow Haskell Compiler. It is based on the Shake library and we hope that it will eventually replace the current make-based build system. You can find more details about the motivation behind this project and our implementation approach in this document.

Hadrian is a work in progress, and there are still many issues that need to be solved before we can match the capabilities of the old build system. Join this project if you'd like to help.

Spock

Contact: Alexander Thiemann

Homepage: https://www.spock.li

Required skill level: Advanced

Spock is a lightweight web framework that provides everything needed to build web applications in Haskell. The last major release was made half a year ago and since then we have accumulated some changes and feature requests that are waiting to be released. The goal is to have a new release ready by the end of the hackathon. This should include at least the current state of the repository, in the optimal case new features and/or performance improvements. A very cool vision would also be to make it easy to use Spock full stack with GHCJS. There's some not-yet-opensourced code for that that could be worked on and released. Summarized, there are tasks (from easy to more difficult) like: Improve documentation, write/improve benchmarks, write examples/tutorials, revisit github issues and fix or close them, finalize the design for defining REST-APIs, finalize the design for interop with GHCJS-Frontend, improve performance, revisit current package layout (what belongs into which package?).

Hoodle

Contact: Ian-Woo Kim

Homepage: http://ianwookim.org/hoodle

Required skill level: Advanced

Hoodle is a pen notetaking program written almost entirely in Haskell. It's one of rather rare GUI programs in Haskell world. Recently, I upgraded hoodle to use Gtk3, and therefore much modernized and easier to be ported to other platform natively. In this hackathon, I would like to stabilize this Gtk3 port and want to try to port the program to many different platform (especially targetting OS X and hopefully windows), and modernize tablet input part to use gtk3 counterpart, not use custom X11 C FFI. I also want to add some shiny new features if possible during the hackathon.