Skip to content

Commit e951f33

Browse files
authored
Add some new and updated packages
Add * Plots * pandoc-pyplot * knit * frames-map-reduce * map-reduce-folds * distributed-dataset
1 parent ff13ab3 commit e951f33

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

_posts/2016-10-19-current-environment.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,25 @@ Note: some libraries are mentioned more than once, because they provide function
1212
## Visualization
1313

1414
- **Chart** [](https://github.com/timbod7/haskell-chart){:.github} [![Hackage](https://img.shields.io/hackage/v/Chart.svg)](https://hackage.haskell.org/package/Chart) [![Chart](http://stackage.org/package/Chart/badge/lts-11)](http://stackage.org/lts-11/package/Chart) [![Frames](http://stackage.org/package/Chart/badge/nightly)](http://stackage.org/nightly/package/Chart) : A library for generating 2D Charts and Plots, with backends provided by Cairo (http://hackage.haskell.org/package/Chart-cairo) and Diagrams (http://hackage.haskell.org/package/Chart-diagrams). Documentation: https://github.com/timbod7/haskell-chart/wiki.
15-
- **plotlyhs** [](https://github.com/diffusionkinetics/open/tree/master/plotlyhs){:.github} [![Hackage](https://img.shields.io/hackage/v/plotlyhs.svg)](https://hackage.haskell.org/package/plotlyhs) [![plotlyhs](http://stackage.org/package/plotlyhs/badge/lts-11)](http://stackage.org/lts-11/package/plotlyhs) [![Frames](http://stackage.org/package/plotlyhs/badge/nightly)](http://stackage.org/nightly/package/plotlyhs) : This is a library for generating JSON value to use with the Plotly.js library. The interface directly reflects the structure of the Plotly.js library and is therefore quite low-level. Lenses are used throughout to set Maybe fields in records to provide both data and configuration options.
15+
- **plotlyhs** [](https://github.com/diffusionkinetics/open/tree/master/plotlyhs){:.github} [![Hackage](https://img.shields.io/hackage/v/plotlyhs.svg)](https://hackage.haskell.org/package/plotlyhs) [![plotlyhs](http://stackage.org/package/plotlyhs/badge/lts-11)](http://stackage.org/lts-11/package/plotlyhs) [![plotlyhs](http://stackage.org/package/plotlyhs/badge/nightly)](http://stackage.org/nightly/package/plotlyhs) : This is a library for generating JSON value to use with the Plotly.js library. The interface directly reflects the structure of the Plotly.js library and is therefore quite low-level. Lenses are used throughout to set Maybe fields in records to provide both data and configuration options.
1616
This library does not attempt to communicate with the Plotly API in any other way. All generated plots can be hosted on stand-alone web pages.
17-
- **hvega** [![Hackage](https://img.shields.io/hackage/v/hvega.svg)](https://hackage.haskell.org/package/hvega) [![Chart](http://stackage.org/package/hvega/badge/lts-11)](http://stackage.org/lts-11/package/hvega) [![Frames](http://stackage.org/package/hvega/badge/nightly)](http://stackage.org/nightly/package/hvega): Support the creation of [Vega-Lite](https://vega.github.io/vega-lite/) visualizations in Haskell.
17+
- **plots** [![Hackage](https://img.shields.io/hackage/v/plots.svg)](https://hackage.haskell.org/package/plots) [![plots](http://stackage.org/package/plots/badge/lts-11)](http://stackage.org/lts-11/package/plots) [![plots](http://stackage.org/package/plots/badge/nightly)](http://stackage.org/nightly/package/plots): `Diagrams`-based plotting library.
18+
- **hvega** [![Hackage](https://img.shields.io/hackage/v/hvega.svg)](https://hackage.haskell.org/package/hvega) [![hvega](http://stackage.org/package/hvega/badge/lts-11)](http://stackage.org/lts-11/package/hvega) [![hvega](http://stackage.org/package/hvega/badge/nightly)](http://stackage.org/nightly/package/hvega): Support the creation of [Vega-Lite](https://vega.github.io/vega-lite/) visualizations in Haskell.
19+
20+
## Publication
21+
22+
- **knit** [![Hackage](https://img.shields.io/hackage/v/knit-haskell.svg)](https://hackage.haskell.org/package/knit-haskell) [![hvega](http://stackage.org/package/knit-haskell/badge/lts-11)](http://stackage.org/lts-11/package/knit-haskell) [![hvega](http://stackage.org/package/knit-haskell/badge/nightly)](http://stackage.org/nightly/package/knit-haskell): knit-haskell is a beginning attempt at bringing some of the benefits of Rmarkdown to Haskell. It includes an effects stack (using polysemy rather than mtl) which includes logging, randomness (via random-fu), a simplified interface to Pandoc and various writer-like effects to intersperse document building with regular code. Various helper functions are provided to simplify common operations, making it especially straightforward to build an HTML document from bits of markdown, latex and Lucid or Blaze html. Support is also included for including hvega visualizations.
23+
- **pandoc-pyplot** [![Hackage](https://img.shields.io/hackage/v/pandoc-pyplot.svg)](https://hackage.haskell.org/package/pandoc-pyplot) [![pandoc-pyplot](http://stackage.org/package/pandoc-pyplot/badge/lts-11)](http://stackage.org/lts-11/package/pandoc-pyplot) [![pandoc-pyplot](http://stackage.org/package/pandoc-pyplot/badge/nightly)](http://stackage.org/nightly/package/pandoc-pyplot): A Pandoc filter to include figures generated from Python code blocks. Keep the document and Python code in the same location. Output from Matplotlib is captured and included as a figure.
24+
1825

1926
## Data structures
2027

2128
### Data frames
2229

23-
- **frames** [![Hackage](https://img.shields.io/hackage/v/Frames.svg)](https://hackage.haskell.org/package/Frames) [![Frames](http://stackage.org/package/Frames/badge/lts-11)](http://stackage.org/lts-11/package/Frames) [![Frames](http://stackage.org/package/Frames/badge/nightly)](http://stackage.org/nightly/package/Frames) : User-friendly, type safe, runtime efficient tooling for working with tabular data deserialized from comma-separated values (CSV) files. The type of each row of data is inferred from data, which can then be streamed from disk, or worked with in memory. Also see the comprehensive [tutorial](https://acowley.github.io/Frames/)
24-
- **analyze** [](https://github.com/ejconlon/analyze){:.github} [![Hackage](https://img.shields.io/hackage/v/analyze.svg)](https://hackage.haskell.org/package/analyze) [![analyze](http://stackage.org/package/analyze/badge/lts-11)](http://stackage.org/lts-11/package/analyze) [![analyze](http://stackage.org/package/analyze/badge/nightly)](http://stackage.org/nightly/package/analyze) : `pandas`-like dataframe operations for tabular data with CSV interface.
30+
- **Frames** [![Hackage](https://img.shields.io/hackage/v/Frames.svg)](https://hackage.haskell.org/package/Frames) [![Frames](http://stackage.org/package/Frames/badge/lts-11)](http://stackage.org/lts-11/package/Frames) [![Frames](http://stackage.org/package/Frames/badge/nightly)](http://stackage.org/nightly/package/Frames) : User-friendly, type safe, runtime efficient tooling for working with tabular data deserialized from comma-separated values (CSV) files. The type of each row of data is inferred from data, which can then be streamed from disk, or worked with in memory. Also see the comprehensive [tutorial](https://acowley.github.io/Frames/)
31+
- **Frames-map-reduce** [![Hackage](https://img.shields.io/hackage/v/Frames-map-reduce.svg)](https://hackage.haskell.org/package/Frames-map-reduce) [![Frames](http://stackage.org/package/Frames-map-reduce/badge/lts-11)](http://stackage.org/lts-11/package/Frames-map-reduce) [![Frames-map-reduce](http://stackage.org/package/Frames-map-reduce/badge/nightly)](http://stackage.org/nightly/package/Frames-map-reduce) : This library contains some useful functions for using the map-reduce-folds package with Frames (containers of data rows) from the Frames package. Included, in Frames.MapReduce, are helpers for filtering Frames, splitting records into key and data columns and reattaching key columns after reducing.
32+
Also included, in the Frames.Folds module, are some helpful functions for building folds of Frames from folds over each column, specified either individually or via a constraint on all the columns being folded over.
33+
- **analyze** [](https://github.com/DataHaskell/dh-core){:.github} [![Hackage](https://img.shields.io/hackage/v/analyze.svg)](https://hackage.haskell.org/package/analyze) [![analyze](http://stackage.org/package/analyze/badge/lts-11)](http://stackage.org/lts-11/package/analyze) [![analyze](http://stackage.org/package/analyze/badge/nightly)](http://stackage.org/nightly/package/analyze) : `pandas`-like dataframe operations for tabular data with CSV interface.
2534
Currently maintained within the scope of the [DataHaskell `dh-core` project](https://github.com/datahaskell/dh-core).
2635
- **bookkeeper** [![Hackage](https://img.shields.io/hackage/v/bookkeeper.svg)](https://hackage.haskell.org/package/bookkeeper) [![bookkeeper](http://stackage.org/package/bookkeeper/badge/lts-11)](http://stackage.org/lts-11/package/bookkeeper) [![bookkeeper](http://stackage.org/package/bookkeeper/badge/nightly)](http://stackage.org/nightly/package/bookkeeper) : A new take on datatypes and records using `OverloadedLabels` (which is available since GHC 8). It bears some similarities to Nikita Volkov's `record` library, but requires no Template Haskell.
2736
- **colonnade** [](https://github.com/andrewthad/colonnade){:.github} [![Hackage](https://img.shields.io/hackage/v/colonnade.svg)](https://hackage.haskell.org/package/colonnade) [![colonnade](http://stackage.org/package/colonnade/badge/lts-11)](http://stackage.org/lts-11/package/colonnade) [![colonnade](http://stackage.org/package/colonnade/badge/nightly)](http://stackage.org/nightly/package/colonnade) : The colonnade package provides a way to talk about columnar encodings and decodings of data. This package provides very general types and does not provide a way for the end-user to actually apply the columnar encodings they build to data. Most users will also want to one a companion packages that provides (1) a content type and (2) functions for feeding data into a columnar encoding:
@@ -31,7 +40,10 @@ Currently maintained within the scope of the [DataHaskell `dh-core` project](htt
3140
* yesod-colonnade for yesod widgets
3241
* siphon for encoding and decoding CSVs
3342

43+
### Streaming / Folds
3444

45+
- **map-reduce-folds** [![Hackage](https://img.shields.io/hackage/v/map-reduce-folds.svg)](https://hackage.haskell.org/package/map-reduce-folds) [![map-reduce-folds](http://stackage.org/package/map-reduce-folds/badge/lts-11)](http://stackage.org/lts-11/package/map-reduce-folds) [![map-reduce-folds](http://stackage.org/package/map-reduce-folds/badge/nightly)](http://stackage.org/nightly/package/map-reduce-folds) : map-reduce-folds is an attempt to find a good balance between simplicity, performance, and flexibility for simple map/reduce style operations on a foldable container f of some type x (e.g., [x]). The goal of the package is to provide an efficient fold for the computation via the types in the foldl package.
46+
Folds can be composed Applicatively, which makes it simple to do many such operations on the same data and loop over it only once.
3547

3648

3749

@@ -369,7 +381,15 @@ The datasets package defines two different kinds of datasets:
369381
### Apache Spark bindings
370382

371383
- **sparkle** [![Hackage](https://img.shields.io/hackage/v/sparkle.svg)](https://hackage.haskell.org/package/sparkle) [![sparkle](http://stackage.org/package/sparkle/badge/lts-11)](http://stackage.org/lts-11/package/sparkle) [![sparkle](http://stackage.org/package/sparkle/badge/nightly)](http://stackage.org/nightly/package/sparkle) : A library for writing resilient analytics applications in Haskell that scale to thousands of nodes, using Spark and the rest of the Apache ecosystem under the hood.
372-
See the [blog post](https://www.tweag.io/posts/2016-02-25-hello-sparkle.html) for details:
384+
See the [blog post](https://www.tweag.io/posts/2016-02-25-hello-sparkle.html) for details.
385+
386+
- **distributed-dataset** [![Hackage](https://img.shields.io/hackage/v/distributed-dataset.svg)](https://hackage.haskell.org/package/distributed-dataset) [![distributed-dataset](http://stackage.org/package/distributed-dataset/badge/lts-11)](http://stackage.org/lts-11/package/distributed-dataset) [![distributed-dataset](http://stackage.org/package/distributed-dataset/badge/nightly)](http://stackage.org/nightly/package/distributed-dataset) : A distributed data processing framework in pure Haskell. Inspired by Apache Spark.
387+
`Control.Distributed.Dataset` provides a type which lets you express transformations on a distributed multiset. Its API is highly inspired by Apache Spark.
388+
It uses pluggable ShuffleStore's for storing intermediate compuation results. See 'distributed-dataset-aws' for an implementation using S3.
389+
`Control.Distributed.Fork` contains a fork function which lets you run arbitrary IO actions on remote machines; leveraging StaticPointers language extension and distributed-closure library.
390+
This module is useful when your task is embarrassingly parallel:
391+
It uses pluggable Backends for spawning executors. See 'distributed-dataset-aws' for an implementation using AWS Lambda .
392+
373393
- **kraps-h** [](https://github.com/krapsh/kraps-haskell){:.github} [![Hackage](https://img.shields.io/hackage/v/kraps-h.svg)](https://hackage.haskell.org/package/kraps-h) [![kraps-h](http://stackage.org/package/kraps-h/badge/lts-11)](http://stackage.org/lts-11/package/kraps-h) [![kraps-h](http://stackage.org/package/kraps-h/badge/nightly)](http://stackage.org/nightly/package/kraps-h) : Haskell bindings to Apache Spark. The library consists of:
374394
- A specification to describe data pipelines in a language-agnostic manner, and a communication protocol to submit these pipelines to Spark.
375395
- A serving library, called krapsh-server, that implements this specification on top of Spark. It is written in Scala and is loaded as a standard Spark package.

0 commit comments

Comments
 (0)