Haskell Hackers: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(16 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[File:Haskell_logo.png|left]]
[[File:Haskell_logo.png|left]]


We assemble to construct software that matters, far from the madding crowd of callbacks, type errors and brogrammers. The Noisebrige Haskell Hackers is a community who learns by doing.
We assemble to construct software that matters, far from the madding crowd of callbacks, runtime errors and brogrammers. The Noisebrige Haskell Hackers is a community who learns by doing.


Rather than being a meetup focused on talks, this is a recurring hack night where participants learn by actively programming together. Actions speak louder than words, and we strive to make useful contributions to open source, documentation, or personal experiments while making friends with likeminded developers.
Rather than being a meetup focused on talks, this is a recurring hack night where participants learn by actively programming together. Actions speak louder than words, and we strive to make useful contributions to open source, documentation, or personal experiments while making friends with likeminded developers.
Line 7: Line 7:
= Next Meeting =
= Next Meeting =


Thursday 9/8/2016.
Thursday 9/29/2016.


* 6:00 - Mingle
* 6:00 - Mingle
Line 17: Line 17:
Here's a place to brainstorm prior to the meeting about possible stuff to code.
Here's a place to brainstorm prior to the meeting about possible stuff to code.


=== begriffs ===
begriffs:
   * Fix issues on https://github.com/begriffs/postgrest
   * Fix issues on https://github.com/begriffs/postgrest
   * Experiment with writing example parsers for megaparsec's documentation
  * Continue with exemplary CI template
=== Your name here ===
    https://github.com/begriffs/haskell-circle-example
   * Experiment with writing example parsers for megaparsec's
    documentation
  * Add code examples to Haddock docs for packages lacking examples
 
epaniagua (e7a):
  * Write a tagless final embedding of the simply typed lambda calculus, along with a few evaluation
    functions like printing, beta reduction, and evaluation for primitive operations on primitive
    types. Implement Hindley-Milnor type inference for terms.
  * Write a framework for writing proof assistants along the lines of Coq, though perhaps
    more modest in scope.  To limit scope, maybe focus on the architecture and data structures
    to be used during proof tree search.
  * Experiment with packrat parsing or packrat parser generation.
  * Implement an object language with dependent types, for example dependently typed lambda calculus.
  * Implement a bijection between inductive types and boolean-valued functions in the spirit
    of Curry-Howard.
  * Software for keeping a personal schedule.  Input would be a DAG of tasks and a calendar.
    Output would be a calendar with time scheduled for construing those tasks if feasible,
    otherwise an explanation of by how much the dag is overcommitted and perhaps a few schedules
    for feasible subgraphs.
  * Actually, even just a good data model for the scheduling problem would be a win.
  * Work through Write Yourself a Scheme in 48h tutorial
    (https://en.m.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours).
  * Write a gRPC server in Haskell.  There are a few libraries, but I haven't tried any of them yet.
 
victordenisov:
  * Mongodb driver
  * Scope highlighter for editors
 
cdsmith:
  * CodeWorld (https://github.com/google/codeworld)
 
jefdaj:
  * A program for aggregating lots of small, simple lists and/or spreadsheets into an RDF
    knowledgebase, then querying it with SPARQL. I've been brainstorming how it would
    manage stuff in a biology lab (cell lines, freezer boxes, gene sequences, experimental
    measurements, etc), but the idea is fairly general. [https://tarql.github.io/ Tarql]
    already translates tables to RDF, and [https://jena.apache.org/documentation/query/cmds.html Arq]
    already does queries, so this would mostly be about figuring out
    the overall data model--how to encode everything it needs in simple text files without
    too much confusing "magic"?
  * Would also be interested in learning about tagless-final (but at a pretty basic level!),
    or working on the personal schedule DAG model.
 
radoye:
  * learn/understand the relationship between Free / FreeER / TTF
 
alanvx:
  * learning Yesod
 
isovector:
  * a template haskell function to generate vacuous instances of type classes for uninhabited types
 
[add your ideas]:
   * foo
   * foo
   * bar
   * bar

Revision as of 14:39, 29 September 2016

Haskell logo.png

We assemble to construct software that matters, far from the madding crowd of callbacks, runtime errors and brogrammers. The Noisebrige Haskell Hackers is a community who learns by doing.

Rather than being a meetup focused on talks, this is a recurring hack night where participants learn by actively programming together. Actions speak louder than words, and we strive to make useful contributions to open source, documentation, or personal experiments while making friends with likeminded developers.

Next Meeting

Thursday 9/29/2016.

  • 6:00 - Mingle
  • 6:30 - Form a circle, announce what you'd like to work on or learn. Find a partner/group and get to work
  • ??:00 - bye bye

Possible Hacks

Here's a place to brainstorm prior to the meeting about possible stuff to code.

begriffs:

 * Fix issues on https://github.com/begriffs/postgrest
 * Continue with exemplary CI template
    https://github.com/begriffs/haskell-circle-example
 * Experiment with writing example parsers for megaparsec's
   documentation
 * Add code examples to Haddock docs for packages lacking examples

epaniagua (e7a):

 * Write a tagless final embedding of the simply typed lambda calculus, along with a few evaluation
   functions like printing, beta reduction, and evaluation for primitive operations on primitive
   types. Implement Hindley-Milnor type inference for terms.
 * Write a framework for writing proof assistants along the lines of Coq, though perhaps
   more modest in scope.  To limit scope, maybe focus on the architecture and data structures
   to be used during proof tree search.
 * Experiment with packrat parsing or packrat parser generation.
 * Implement an object language with dependent types, for example dependently typed lambda calculus.
 * Implement a bijection between inductive types and boolean-valued functions in the spirit
   of Curry-Howard.
 * Software for keeping a personal schedule.  Input would be a DAG of tasks and a calendar.
   Output would be a calendar with time scheduled for construing those tasks if feasible,
   otherwise an explanation of by how much the dag is overcommitted and perhaps a few schedules
   for feasible subgraphs.
 * Actually, even just a good data model for the scheduling problem would be a win.
 * Work through Write Yourself a Scheme in 48h tutorial
   (https://en.m.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours).
 * Write a gRPC server in Haskell.  There are a few libraries, but I haven't tried any of them yet.

victordenisov:

 * Mongodb driver
 * Scope highlighter for editors

cdsmith:

 * CodeWorld (https://github.com/google/codeworld)

jefdaj:

 * A program for aggregating lots of small, simple lists and/or spreadsheets into an RDF
   knowledgebase, then querying it with SPARQL. I've been brainstorming how it would
   manage stuff in a biology lab (cell lines, freezer boxes, gene sequences, experimental
   measurements, etc), but the idea is fairly general. Tarql
   already translates tables to RDF, and Arq
   already does queries, so this would mostly be about figuring out
   the overall data model--how to encode everything it needs in simple text files without
   too much confusing "magic"?
 * Would also be interested in learning about tagless-final (but at a pretty basic level!),
   or working on the personal schedule DAG model.

radoye:

 * learn/understand the relationship between Free / FreeER / TTF 
 

alanvx:

 * learning Yesod

isovector:

 * a template haskell function to generate vacuous instances of type classes for uninhabited types

[add your ideas]:

 * foo
 * bar