Skip to content

Instantly share code, notes, and snippets.

View duncanmalashock's full-sized avatar

Duncan Malashock duncanmalashock

View GitHub Profile
@duncanmalashock
duncanmalashock / Button.elm
Last active January 19, 2022 13:46
"Config" Builder
module Button exposing (Config, config, withIcon, withSizeLarge, view)
import Html exposing (Html)
import Icon exposing (Icon)
type alias Config msg =
{ onClick : msg
, label : String
, maybeIcon : Maybe Icon
, size : Size
@duncanmalashock
duncanmalashock / cleanup.yml
Last active January 11, 2022 16:26
GitHub Action config for removing unused code
# .github/workflows/cleanup.yml
# Runs the elm-review command on a regular basis and opens a PR removing unused code
name: Cleanup
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
schedule:
# Run at midnight UTC, every Sunday
@duncanmalashock
duncanmalashock / ReviewConfig.elm
Created January 11, 2022 14:19
ReviewConfig for removing unused code using `elm-review`
module ReviewConfig exposing (config)
{-| Do not rename the ReviewConfig module or the config function, because
`elm-review` will look for these.
To add packages that contain rules, add them to this review project using
`elm install author/packagename`
when inside the directory containing this file.
@duncanmalashock
duncanmalashock / container.scss
Created October 23, 2017 21:08
SCSS for "stack", "inset", and "inline" container components
$space-zero: 0px;
$space-xs: 2px;
$space-s: 4px;
$space-m: 7px;
$space-l: 14px;
$space-xl: 30px;
$space-xxl: 64px;
$space-xxxl: 128px;
$spaces: (

Ivan: Vintage computer graphics made easy with Elm

Abstract

You'll see a live demonstration and design overview of Ivan, a retrocomputing personal project written in Elm. Ivan is a web application framework for working with 80s-era analog vector graphics, which uses an analog oscilloscope as its output device.

From this talk, the audience will get:

  1. A concrete example of how the "make impossible states impossible" idea around data modeling in Elm can apply to the problem domain of computer graphics
  2. Some fun demo material that will provide a refreshing visual contrast to the usual web application