Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikesperber/icfp2021

Functional Software Architecture tutorial at ICFP 2021
https://github.com/mikesperber/icfp2021

Last synced: 5 days ago
JSON representation

Functional Software Architecture tutorial at ICFP 2021

Awesome Lists containing this project

README

        

# Preparation

If you have a working Haskell/Cabal setup, things might just work.
There's also a working Nix configuration, which at this point requires
a recent `nix-unstable` channel, however.

Otherwise:

- install [Docker](https://www.docker.com/)
- give Docker at least 6GB RAM where relevant
- install [Visual Studio Code](https://code.visualstudio.com/download)
- install VS Code Extension "Remote - Containers"
- select "View" -> "Command Palette" (some modifiers + P), type
"containers", select"Remote - Containers: Open Folder in Container"
- open the `hearts` directory

VS Code will then construct a container to do its business. That
might also take while.

# Starting the Game

## Console

The `Sync` module has two functions `gameAlong` and
`gameInteractive`. (Very rudimentary.)

## UI version

- in the `hearts` directory, run `./docker-shell.sh` to start a
suitable shell in a Docker container

- inside the Docker container, do `cabal build` to build the server

- inside the Docker container, do `./run-server-inside-docker.sh` to
start the server

- *outside* the Docker container:

- install [Elm](https://elm-lang.org/)

- cd to `hearts-frontend`, do:

```
elm reactor
```

- go to the URL there, typically
[`http://localhost:8000`](http://localhost:8000)

- click on `examples`, then `HeartsFrontend.elm`