41554 blogs · [ { "id": "01a0877a-a8b5-70eb-98bf-5693744c9120", "title": "mkAIDerivation", "url": "https://functor.tokyo/blog/2025-06-14-mkAIDerivation", "published_at": "2025-06-14T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d6379ffc9349", "title": "How to Statically-link Haskell Binaries using Nix", "url": "https://functor.tokyo/blog/2024-09-29-statically-link-haskell-binaries", "published_at": "2024-09-29T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a0aa9fad", "title": "Cloudy: CLI tool for easily spinning up compute instances in the cloud", "url": "https://functor.tokyo/blog/2024-09-25-cloudy", "published_at": "2024-09-25T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a0f856e3", "title": "FODONUTs: Fixed-Output Derivations for Operating Network-Utilizing Tests", "url": "https://functor.tokyo/blog/2023-07-24-fodonuts", "published_at": "2023-07-24T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a10fc7a1", "title": "evil-nix: download files without requiring a hash", "url": "https://functor.tokyo/blog/2023-06-28-evil-nix", "published_at": "2023-06-28T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a175d422", "title": "Bound by a Free-Monad-like Structure", "url": "https://functor.tokyo/blog/2023-05-11-bound", "published_at": "2023-05-11T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a1eb74b2", "title": "binplz: easily curl static binaries", "url": "https://functor.tokyo/blog/2023-02-26-binplz", "published_at": "2023-02-26T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a2addde6", "title": "Building Pandoc with stacklock2nix", "url": "https://functor.tokyo/blog/2022-12-26-building-pandoc-with-stacklock2nix", "published_at": "2022-12-26T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a36fab50", "title": "Building Dhall with stacklock2nix", "url": "https://functor.tokyo/blog/2022-12-20-building-dhall-with-stacklock2nix", "published_at": "2022-12-20T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a404bfb7", "title": "Building the PureScript Compiler with stacklock2nix", "url": "https://functor.tokyo/blog/2022-12-16-building-purescript-with-stacklock2nix", "published_at": "2022-12-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a482fd05", "title": "stacklock2nix", "url": "https://functor.tokyo/blog/2022-12-15-stacklock2nix", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a5362059", "title": "Get Involved with Nixpkgs Haskell", "url": "https://functor.tokyo/blog/2022-11-16-contribute-nixpkgs-haskell", "published_at": "2022-11-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a5b723c7", "title": "How to Setup LXD on NixOS", "url": "https://functor.tokyo/blog/2022-09-10-lxd-on-nixos", "published_at": "2022-09-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a5ddc62d", "title": "Why PureNix?", "url": "https://functor.tokyo/blog/2022-01-10-why-purenix", "published_at": "2022-01-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a62aafea", "title": "Who Would Find PureNix Easy to Use?", "url": "https://functor.tokyo/blog/2022-01-05-who-would-like-purenix", "published_at": "2022-01-05T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a6613913", "title": "Getting Started with PureNix", "url": "https://functor.tokyo/blog/2022-01-04-getting-started-with-purenix", "published_at": "2022-01-04T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a675e3b4", "title": "PureNix", "url": "https://functor.tokyo/blog/2022-01-03-purenix", "published_at": "2022-01-03T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a6f186d6", "title": "Git no_push", "url": "https://functor.tokyo/blog/2021-12-15-git-no_push", "published_at": "2021-12-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a7dc112d", "title": "The Road to purescript2nix", "url": "https://functor.tokyo/blog/2021-12-10-road-to-purescript2nix", "published_at": "2021-12-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a80f297a", "title": "purescript2nix", "url": "https://functor.tokyo/blog/2021-12-10-purescript2nix", "published_at": "2021-12-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a81f03f0", "title": "PureScript Package Sets with Hashes", "url": "https://functor.tokyo/blog/2021-12-10-purescript-package-set-with-hashes", "published_at": "2021-12-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a852eff8", "title": "dhallDirectoryToNix", "url": "https://functor.tokyo/blog/2021-12-10-dhallDirectoryToNix", "published_at": "2021-12-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637a945a91f", "title": "Cross-compiling and Static-linking with Nix", "url": "https://functor.tokyo/blog/2021-10-20-nix-cross-static", "published_at": "2021-10-20T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637aa045633", "title": "Xephyr for GUI over SSH X-Forwarding", "url": "https://functor.tokyo/blog/2021-05-07-Xephyr", "published_at": "2021-05-07T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637aa713a50", "title": "How to Make Sure Nixpkgs Can Evaluate", "url": "https://functor.tokyo/blog/2020-06-02-evaluating-nixpkgs", "published_at": "2020-06-02T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637ab0732d2", "title": "Announcing password-2.0", "url": "https://functor.tokyo/blog/2020-05-18-password-2.0", "published_at": "2020-05-18T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637ab5b50bb", "title": "How Long Does It Take to Learn to Juggle?", "url": "https://functor.tokyo/blog/2020-03-15-learn-to-juggle", "published_at": "2020-03-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637ac446e50", "title": "Announcing termonad-2.0.0.0", "url": "https://functor.tokyo/blog/2019-09-13-termonad-2.0.0.0", "published_at": "2019-09-13T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637ac9a1369", "title": "Announcing pretty-simple-3.0.0.0", "url": "https://functor.tokyo/blog/2019-08-15-pretty-simple-3.0.0.0", "published_at": "2019-08-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637ad5bbaca", "title": "Open Sum Types in Haskell with world-peace", "url": "https://functor.tokyo/blog/2019-07-11-announcing-world-peace", "published_at": "2019-07-11T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637adfbb9e0", "title": "ghcid for Web App Development", "url": "https://functor.tokyo/blog/2019-04-07-ghcid-for-web-app-dev", "published_at": "2019-04-07T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637aef5f459", "title": "Nix Derivation for fast.ai Course", "url": "https://functor.tokyo/blog/2019-03-16-nix-derivation-for-fastai", "published_at": "2019-03-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637afa01bc4", "title": "PlayStation 3/4 Controller Over Bluetooth on NixOS", "url": "https://functor.tokyo/blog/2018-12-20-playstation-bluetooth-controller", "published_at": "2018-12-20T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b071febd", "title": "Termonad: A Terminal Emulator Configurable in Haskell", "url": "https://functor.tokyo/blog/2018-11-15-termonad", "published_at": "2018-11-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b072fb98", "title": "Japanese on NixOS", "url": "https://functor.tokyo/blog/2018-10-01-japanese-on-nixos", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b0e372d9", "title": "How to get into Machine Learning for a Haskeller", "url": "https://functor.tokyo/blog/2018-08-21-machine-learning-for-haskellers", "published_at": "2018-08-21T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b11fc587", "title": "Install VirtualBox Oracle Extension Pack on NixOS", "url": "https://functor.tokyo/blog/2018-08-19-virtualbox-on-nixos-update", "published_at": "2018-08-19T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b1b0ecc1", "title": "Steps for Releasing a Haskell Package to Hackage", "url": "https://functor.tokyo/blog/2018-07-16-release-haskell-packages-to-hackage", "published_at": "2018-07-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b2089c76", "title": "Functional Sapporo", "url": "https://functor.tokyo/blog/2018-06-25-functional-sapporo", "published_at": "2018-06-25T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b2ded10a", "title": "CLI Program for Pretty-Printing Haskell Datatypes", "url": "https://functor.tokyo/blog/2018-03-02-pretty-simple-cli-exe", "published_at": "2018-03-02T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b317e253", "title": "Install VirtualBox on NixOS", "url": "https://functor.tokyo/blog/2018-02-24-virtualbox-on-nixos", "published_at": "2018-02-24T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b4116964", "title": "Show all packages installed in NixOS", "url": "https://functor.tokyo/blog/2018-02-20-show-packages-installed-on-nixos", "published_at": "2018-02-20T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b5075a90", "title": "Use packages from nixos-unstable in configuration.nix without nix-channel", "url": "https://functor.tokyo/blog/2018-02-18-install-packages-from-nixos-unstable", "published_at": "2018-02-18T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b54b2014", "title": "XMonad and Taffybar on NixOS using Stack", "url": "https://functor.tokyo/blog/2018-02-16-setup-xmonad-on-nixos", "published_at": "2018-02-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b55b5bef", "title": "servant-rawm", "url": "https://functor.tokyo/blog/2017-10-15-servant-rawm", "published_at": "2017-10-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b5b80f0c", "title": "GHC Warnings You Should Use in Addition to -Wall", "url": "https://functor.tokyo/blog/2017-07-28-ghc-warnings-you-should-enable", "published_at": "2017-07-28T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b6617f43", "title": "k2pdfopt for Reading Academic Papers on a Kindle", "url": "https://functor.tokyo/blog/2017-07-21-k2pdfopt-for-academic-papers", "published_at": "2017-07-21T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b6a09d88", "title": "highlight CLI application", "url": "https://functor.tokyo/blog/2017-07-01-highlight", "published_at": "2017-07-01T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b6ca5cc8", "title": "Type Signatures in Instances in PureScript", "url": "https://functor.tokyo/blog/2017-06-05-purescript-instance-signatures", "published_at": "2017-06-05T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b749c47a", "title": "servant-checked-exceptions", "url": "https://functor.tokyo/blog/2017-05-10-servant-checked-exceptions", "published_at": "2017-05-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b7a0028b", "title": "When is UndecidableInstances safe?", "url": "https://functor.tokyo/blog/2017-04-07-undecidable-instances", "published_at": "2017-04-07T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b8040237", "title": "xml-html-qq", "url": "https://functor.tokyo/blog/2017-02-17-xml-html-qq", "published_at": "2017-02-17T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b85d4aed", "title": "Inspecting generated Template Haskell", "url": "https://functor.tokyo/blog/2017-01-16-looking-at-generated-template-haskell", "published_at": "2017-01-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b8d6ef66", "title": "Keter behind an nginx Reverse Proxy over HTTPS", "url": "https://functor.tokyo/blog/2016-11-09-keter-behind-nginx-reverse-proxy", "published_at": "2016-11-09T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b97d37e8", "title": "Intro to PureScript for a Haskeller", "url": "https://functor.tokyo/blog/2016-10-18-intro-to-purescript", "published_at": "2016-10-18T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b9b666a3", "title": "Yahoo Finance API Wrapper in Haskell (updated to v0.2.0.0)", "url": "https://functor.tokyo/blog/2016-10-15-yahoo-finance-api-2", "published_at": "2016-10-15T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b9f63179", "title": "purescript-unicode", "url": "https://functor.tokyo/blog/2016-10-06-purescript-unicode", "published_at": "2016-10-06T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637b9fb531f", "title": "{-# OPTIONS_GHC -fno-warn-orphans #-}", "url": "https://functor.tokyo/blog/2016-09-16-options-ghc-fno-warn-orphans", "published_at": "2016-09-16T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bad20583", "title": "Yahoo Finance API Wrapper in Haskell", "url": "https://functor.tokyo/blog/2016-07-10-yahoo-finance-api", "published_at": "2016-07-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bb478420", "title": "5 Ways to Test Applications that Access a Database in Haskell", "url": "https://functor.tokyo/blog/2015-11-20-testing-db-access", "published_at": "2015-11-20T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bbc5e124", "title": "Setup Debian MIPS", "url": "https://functor.tokyo/blog/2015-08-14-debian-mips", "published_at": "2015-08-14T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bc5faa7f", "title": "Type-level Strings, Type-level Lists, Type-level Operators, and Type Families in Servant", "url": "https://functor.tokyo/blog/2015-08-13-servant-type-families", "published_at": "2015-08-13T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bd516019", "title": "cabal init Now Creates Main.hs", "url": "https://functor.tokyo/blog/2015-07-01-cabal-create-main-hs", "published_at": "2015-07-01T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bdb84696", "title": "Puppet Module for Keter", "url": "https://functor.tokyo/blog/2015-06-26-puppet-module-for-keter", "published_at": "2015-06-26T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bde00a7d", "title": "Installing ghcjs on Debian 7 Wheezy", "url": "https://functor.tokyo/blog/2015-04-10-building-ghcjs-on-debian", "published_at": "2015-04-10T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637be335a1e", "title": "Passing -ddump-splices from Cabal", "url": "https://functor.tokyo/blog/2015-03-24-running-ddump-splices-from-cabal", "published_at": "2015-03-24T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bf00c1fe", "title": "Multi-parameter Type Classes in Haskell", "url": "https://functor.tokyo/blog/2015-03-14-multi-parameter-type-classes", "published_at": "2015-03-14T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637bfd19ddc", "title": "Using Spell Checking in Vim", "url": "https://functor.tokyo/blog/2014-12-24-vim-spell", "published_at": "2014-12-24T00:00:00+00:00" }, { "id": "01a0877a-a8b6-71b0-b7c3-d637c05486f4", "title": "Initial Blog Post", "url": "https://functor.tokyo/blog/2014-12-23-initial-blog-post", "published_at": "2014-12-23T00:00:00+00:00" } ] posts Claim your blog
Back to functor.tokyo
Blog · corpus.blog/blogs/functor.tokyo/posts

functor.tokyo

functor.tokyo

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014