This blog post series has moved here.
You might also be interested in the 2016 version.
#!/usr/bin/env bash | |
set -e | |
HALCYON_NO_SELF_UPDATE=1 \ | |
source "${HALCYON_DIR}/src.sh" | |
test_ghc () { | |
local -a versions |
This blog post series has moved here.
You might also be interested in the 2016 version.
One of the many things I do for my group at work is to take care of automating as many things as possible. It usually brings me a lot of satisfaction, mostly because I get a kick out of making people's lives easier.
But sometimes, maybe too often, I end up in drawn-out struggles with machines and programs. And sometimes, these struggles bring me to the edge of despair, so much so that I regularly consider living on a computer-less island growing vegetables for a living.
This is the story of how I had to install Pandoc in a CentOS 6 Docker container. But more generally, this is the story of how I think computing is inherently broken, how programmers (myself included) tend to think that their way is the way, how we're ultimately replicating what most of us think is wrong with society, building upon layers and layers of (best-case scenario) obscure and/or weak foundations.
*I would like to extend my gratitude to Google, StackOverflow, GitHub issues but mostly, the people who make the
export HALCYON_AWS_ACCESS_KEY_ID=... | |
export HALCYON_AWS_SECRET_ACCESS_KEY=... | |
export HALCYON_S3_BUCKET=... | |
if [[ ! -d ~/halcyon ]]; then | |
git clone https://github.com/mietek/halcyon.git ~/halcyon | |
fi | |
source <( ~/halcyon/halcyon paths ) |
{ config, pkgs, ... }: | |
let | |
hostname = "luz3"; | |
in { | |
imports = | |
[ # Include the results of the hardware scan. | |
./hardware-configuration.nix | |
# I use VirtualBox to connect to Windows and Linux guests |
<snippet> | |
<!-- | |
Produces imports of the form: | |
import qualified Data.Foo as F | |
import Data.Foo (Foo, fun) | |
Foo and F in as and includes sections are determined by the last | |
name in the module string: Foo -> F and Foo, Data.Foo -> F and Foo | |
--> |
diff --git a/nixops/backends/__init__.py b/nixops/backends/__init__.py | |
index 86ed0f4..c52e9d3 100644 | |
--- a/nixops/backends/__init__.py | |
+++ b/nixops/backends/__init__.py | |
@@ -93,6 +93,17 @@ class MachineState(nixops.resources.ResourceState): | |
except nixops.ssh_util.SSHCommandFailed: | |
return None | |
+ def get_os_arch(self): | |
+ """Get the machine's OS archicture.""" |
{-# LANGUAGE GADTs, RankNTypes #-} | |
import Control.Applicative | |
import Control.Category | |
import Data.List (foldl') | |
import Data.Profunctor | |
import Prelude hiding ((.), id) | |
-- | Explicit state-passing Moore machine | |
data Moore i o where |
{-# LANGUAGE FlexibleInstances #-} | |
module Main where | |
import Control.Applicative ((<$>)) | |
import Control.Monad.State.Lazy as S | |
class Monad m => World m where | |
writeLine :: String -> m () | |
instance World IO where |