Posts
- Scripting the Hell out of Trello with Haskell
Want to use Haskell for something real but don't want to risk it at work? This is how I do it.
- How would I do it in Haskell?
Here's a couple of examples where I contaminated Ruby with functional intuitions.
- Elm Tricks from Production–From Angular v1 to Elm in 4 Days
A solid plan and some patience is all you need to migrate an entire application to a different technology (while it continues to run).
- Elm Tricks from Production–Automated Testing is Just Another Tool
Our take on unit testing and how we approached testing Elm code in AirCasting.
- Elm Tricks from Production–Adding Event Listeners to DOM Nodes that do not yet Exist
How to use `setTimeout` and the DOM mutation observer API to attach callbacks to DOM nodes that do not yet exist.
- Elm Tricks from Production–Declarative, Bug-Free User Interfaces with Custom Types
How to use custom types to keep the interface declarative and avoid bugs.
- Elm Tricks from Production–Migrating from Angular v1 to Elm
How we managed to migrate AirCasting from Angular v1 to Elm while still delivering value
- Elm Tricks from Production–Intro
How Elm enabled fast iterations, cutting costs and keeping everybody happy in one of our projects at work—AirCasting
- Decomposing Features into Pipelines
Code and pray when devising a solution is not the best approach. The exploration needs to start in problem space.
- Homebrew Brewfile Dump with Haskell
This script creates a Brewfile using `brew bundle dump` and adds to that all the apps from `/Applications` that can be installed via Homebrew as casks.
- Crossposting to Medium via Command Line
Using a Haskell script to crosspost to Medium a blog post with a frontmatter as used in Jekyll markdown files
- Custom Markdown in Pandoc
Transforming Pandoc's AST to implement custom Markdown syntax.
- RecordDotSyntax in Haskell
Records in Haskell are troublesome but the Dot (syntax) is coming soon
- Production Drafts for Hakyll Posts
Publish hidden drafts to production with a boolean flag in the metadata
- Adding `published` to Hakyll Posts
Control which posts to publish with a boolean flag in the metadata
- Rewriting to Haskell–Errors
Returning the correct JSON error when parsing fails
- Rewriting to Haskell–Parsing Query Params, Again
Wrapping URL query params in their own types without using FromHttpApiData
- Rewriting to Haskell–Parsing Query Params
Wrapping URL query params in their own types using FromHttpApiData
- Rewriting to Haskell–Linting
Using HLint to improve the code in Stream
- Rewriting to Haskell–Testing
Using HSpec to test Stream through its endpoints
- Rewriting to Haskell–Making GHC More Nitpicky
Enabling GHC compiler warnings to enforce better code
- Rewriting to Haskell–Standing on the shoulders of Rails
Using Rails as a handrail to keep our iteration small
- Rewriting to Haskell–Configuration
Using yaml to configure a Servant application
- Rewriting to Haskell–Automatic Formatting
Using Ormolu to keep code pretty and stop once for all discussions on cosmetics
- Rewriting to Haskell–Deployment
Everything needed to deploy and run Stream (Servant) on the server side
- Rewriting to Haskell–Project Setup
Setting up Servant and CI for Stream
- Rewriting to Haskell–Intro
Hidden in the Functional Programming basement at Lunar Logic we want to have fun, enable newcomers to approach Haskell and creating future options for the company
- Staring at ($), (<$>), (<*>) and (>>=)
Differences and similarities between function application, Functor's `fmap`, Applicative Functor's sequential application and Monad's `bind`
- Why Monad Composes Operations Sequentially
A deeper look at Monad's bind (i.e. >>=) to understand why the type signature implies sequential composition
- From Kanbanery to Trello
Using a Haskell script to migrate a Kanbanery board to Trello
- Crossposting to DevTo via command line
Using a Haskell script to crosspost a blog post with a frontmatter as used in Jekyll markdown files
- Tweeting a Blog Post via command line
Using a Haskell script to post a tweet about a blog post with a frontmatter as used in Jekyll markdown files
- Scaffolding a Blog Post
Using a Haskell script to bootstrap a file from a template
- Playing with Fmt
Using Fmt to format stuff
- Parsing CSV in Haskell
Using Cassava to parse a CSV file
- Refactoring the Mars Rover Kata in Haskell
Refactoring our deployed-to-Mars rover
- Mars Rover Kata in Haskell
Moving a rover on Mars type-safely
- Fun with Typeclasses
Ever heard of `Enum`, `Bounded`, `BoundedEnum` and `CyclicEnum`?
- Merging IO and Either into one monad
How to simplify code by merging two monads into one
- Building a Blog in Haskell with Yesod–Giving Back
In this post I'm celebrating becoming a contributor to Yesod
- Building a Blog in Haskell with Yesod–JSON API
In this post we are going to see how to transform our Yesod blog into a JSON API (including authentication)
- Building a Blog in Haskell with Yesod–Returning JSON
In this post we are going to see how to return JSON in our Yesod blog
- Building a Blog in Haskell with Yesod–Authorization
In this post we are going to take care of authorization in our Yesod blog
- Building a Blog in Haskell with Yesod–Authentication
In this post we are going to add authentication to our Yesod blog
- Building a Blog in Haskell with Yesod–Using a Database
In this post we are going to hook up our Yesod blog to a database
- Building a Blog in Haskell with Yesod–The Basic Structure
In this post we are going to develop the basic structure of our Yesod blog
- Scripting in Haskell and PureScript
Writing scripts with Haskell and PureScript is a good way of doing some functional programming at work
- A Parser Combinator in PureScript (part 2/2)
Implementing and using a parser combinator
- A Parser Combinator in PureScript (part 1/2)
Implementing and using a parser combinator
- A State Monad in PureScript
Implementing and using the State Monad
- Folding Trees in PureScript
Transforming the structure of a tree by employing recursive functions, the Foldable typeclass and the State Monad
- Game of Life in PureScript
Interactive Programming in PureScript
- Nim in PureScript
Interactive Programming in PureScript
- Hangman in PureScript
Interactive Programming in PureScript
- Adding Twitter Cards to Hakyll Posts
Make your Hakyll posts look better in Twitter
- A Useless Compiler in PureScript
Dipping a toe in compilers land
- Functors Compose, Monads Do Not
The title says it all 😅
- Testing Bank Kata in PureScript
Unit testing monadic functions
- Bank Kata in PureScript
Purely functional state mutations in PureScript