Difference between revisions of "Budapest Hackathon 2017"
|Line 148:||Line 148:|
=== STG Optimisations ===
=== STG Optimisations ===
'''Description''': Since the GHC's internal STG language is unityped, the runtime representation of `\case Right a → Just a` is the identity (`
'''Description''': Since the GHC's internal STG language is unityped, the runtime representation of `\case Right a → Just a` is the identity (``) operationally. However, this optimisation currently is not implemented. Something similar is already done, so this might be low-hanging fruit.
'''Contact''': Gabor Greif
'''Contact''': Gabor Greif
Revision as of 12:18, 27 July 2017
|When:||2017July 29 - 30th (Saturday & Sunday)|
|Hours:||09:00 ~ 17:00|
|Where:||Gizmodo Media Hungary, 1062 Andrássy út 66.|
- 1 About
- 2 Sponsors
- 3 Registration
- 4 Venue
- 5 Local arrangements
- 6 Schedule
- 7 Projects
- 8 Talks/demos
- 9 Attendees
- 10 Communication
- 11 Organizers
- 12 Code of Conduct
The Budapest Haskell User Group will once again hold a two day Haskell Hackathon in Budapest. This is the third the occasion (info about the first, and second hackathon), and this time we will hold it in Gizmodo Media Group's Budapest office. The event is an international, grassroots collaborative coding festival with a simple focus: build and improve Haskell libraries, tools, and infrastructure, and growing the local community.
This is a great opportunity to meet your fellow Haskellers in real life, find new contributors for your project, improve existing libraries and tools or even start new ones!
This event is open to any experience level, from beginners to gurus. In fact, one of the goals is to bring beginners in contact with experts so that the former can get a quick start in the Haskell community. We will have a dedicated beginners' track, and there are going to be experienced haskellers on site whom you can directly approach during the whole event with any Haskell-related question that might pop up.
There will be lots of hacking, good food, and, of course, fun!
You can fill out the necessary registration information here.
There is no registration deadline, or requirement really, so you can join us even if you didn't fill out the form, it just help us with the organization.
The Hackathon will be held at Gizmodo Media's Budapest office. WiFi, projectors for talks, and snacks & refreshments will be provided by our sponsors.
Detailed schedules will be posted soon.
Getting to Budapest
Getting to the venue
The Gizmodo Media Group's offices (1062 Budapest, Andrássy út 66.) are near center of the city, so it can be easily approached even by foot from downtown accommodations.
For public transport timetables, and more informations please visit the local transport authority’s site.
Information about tickets, and recommended tickets:
- K9 Residence (In the city center, from 40 euro/night)
- Budapest Budget Hostel
Note: This is only an approximate schedule.
|9:00||doors open||doors open|
|9:30|| Andres Löh
| András Leitereg, Dániel Berényi |
LambdaGen: A GPU Code Generator Powered by Recursion Schemes
|10:10||short break||short break|
|10:20|| Michal Kawalec
Functional programming with bananas in barbed wire
|11:00||project discussions, start of project work||project discussions, start of project work|
|13:30||lunch break||lunch break|
|17:00||end of scheduled programs, beers||end of scheduled programs, beers|
generics-sop: Generic Programming using True Sums of Products
generics-sop is a library for datatype-generic programming in Haskell. Datatypes are viewed as n-ary sums of n-ary products. Such sums and products are represented in a type-safe way using Haskell GADTs and manipulated via higher-rank polymorphic combinators provided by the library.
The core of the library is relatively stable, but some new features, such as type-level metadata, require more experience to stabilize. So one open task is to just experiment with type-level metadata and provide feedback.
Other tasks are improving the documentation, and creating a systematic benchmark suite so that the performance of generics-sop can be measured and the performance of different existing internal representations can be compared with each other.
Contact: Andres Löh
Description: Dependency Injection library for Haskell to allow powerful unit testing and mocking (compile-time type-checked)
Contact: Milan Nagy
Description: Since the GHC's internal STG language is unityped, the runtime representation of `\case Right a → Just a` is the strict identity (`\ !a → a`) operationally. However, this optimisation currently is not implemented. Something similar is already done, so this might be low-hanging fruit.
Contact: Gabor Greif
As of yet the following talks are scheduled:
Andres Löh - generics-sop
Datatype-generic programming and generics-sop provides access to the internal structure of datatype definitions, allowing functions to access datatype constructors and their arguments in a uniform yet type-safe way. As a result, we can implement functions that work over a large range of datatypes and are typically built into the compiler as "derivable" classes directly within Haskell, such as equality and comparison functions, (de)serialization functions to various formats, or generic traversals such as maps and folds.
We will look at a number of examples and show how they can be solved with generics-sop.
Andres is a partner and Haskell Consultant at Well-Typed LLP.
András Leitereg, Dániel Berényi - LambdaGen: A GPU Code Generator Powered by Recursion Schemes
Problems that are data and computation intensive but are also naturally parallelizable are very frequent in physics, statistics and other fields of science. Their efficient parallel implementation would however require not just decent programming skills, but also deep insight of the target architecture. These computations are often in the form of a linear algebraic expression, and our goal is to deduce their optimal parallelization and memory usage automatically. We'd like to create a tool that offers a compromise between minimizing the implementation and the running time, for scientists who are not programmers. We chose a small set of high level operations accessible through a Haskell EDSL, with which the users build an expression tree of their computation. Then we apply a series of recursion scheme based transformations on the expression tree, and finally produce a SYCL source code to evaluate the expression on GPU. We keep this abstract representation throughout the processing, which opens the possibility of optimizations that are otherwise difficult to recognize and carry out. It also minimizes the time we spent with debugging, but imposes some problems that are specific to the functional context.
- András Leitereg (Department of Informatics, Eötvös Loránd University)
- Dániel Berényi (Wigner GPU Lab)
Michal Kawalec - Functional programming with bananas in barbed wire
In our day to day functional programming, we encounter recursion every step of the way. If only there were a way of abstracting away its repetitive parts and clarifying the recursive code with minimal boilerplate!
Fortunately, recursion schemes come to the rescue. They allow for a clear and concise definition of recursion, while being guided by the typechecker. The talk will present basic theory behind them but will not require advanced knowledge of mathematics. We believe that recursion schemes can greatly benefit from a more widespread usage and will try to convey the practical ways in which they can be used in real life programs.
Michal is an engineer of many trades. He is currently responsible for libraries and architecture of League of Legends, and, previously, he had worked with startups, supercomputers, and particle detectors. At night, he writes Haskell libraries and runs the biggest Haskell Meetup in Poland.
Notes regarding the talks
We plan more, and we will update this site regularly so check back later.
Apart from longer presentations, it will be possible to give lightning talks, or project demos. If you're interested in giving one of these, please contact us on one of the addresses at the bottom of the page.
Here is the list of participants who have signed up, and have chosen their name to be listed.
If you have any questions about the event you can reach us here:
All code from this and past event will be uploaded to the meetup’s Github page.
- Dániel Berecz
- Csaba Hruska
- Péter Diviánszky
- Andor Pénzes
Code of Conduct
All attendees, speakers, exhibitors, organizers, contributors and volunteers are required to conform to the following Code of Conduct.
BP-HUG events are for anyone interested in the Haskell language, its history, related topics, and want to discuss them in a fun, engaging and respectful environment.
Be an adult, don't be a jerk.
We value the participation of each member of the community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the meet-ups, this hackathon, and on the electronic channels listed above.
If you are experiencing harassment on or have concerns about the content please contact:
- Dániel Berecz: dαniεl.bεrεcz@gmαil.com (replace the greek letters)
- All: firstname.lastname@example.org
The organizers will be available to help you with any issues or concerns at this event.
What it means
The BP-HUG is dedicated to providing a harassment-free experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of meet-up participants in any form.
All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any meet-up, including talks.
Be kind to others. Do not insult or put down other attendees. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for this event.
Attendees violating these rules may be asked to leave the meet-up at the sole discretion of the organizers.
Thank you for helping make this a welcoming, friendly event for all.
Spelling it out
Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
Participants asked to stop any harassing behavior are expected to comply immediately.Contributors to the GitHub repository, the Meetup and/or event-related sites, sponsors, or similar are also subject to the anti-harassment policy. Organizers (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.