Skip to content

Instantly share code, notes, and snippets.

View mbbx6spp's full-sized avatar
🎯
Focusing

Susan Potter mbbx6spp

🎯
Focusing
View GitHub Profile

The following shows that the latest nixos-unstable channel has all the transitive dependencies for haskellPackages.lens available for fetching from the binary cache:

$ nix-env -f https://releases.nixos.org/nixos/unstable/nixos-18.09pre149415.8395f9aa85e/nixexprs.tar.xz \
  -iA haskellPackages.lens --dry-run
(dry run; not doing anything)
installing 'lens-4.16.1'
these paths will be fetched (136.28 MiB download, 1899.17 MiB unpacked):
@mbbx6spp
mbbx6spp / nixos-installer-ideas.org
Last active July 15, 2018 17:04
Some thoughts on improving the NixOS Installation experience

NixOS Installer Ideas

Background

I recently installed NixOS from scratch on a new device and since I haven’t needed to do this in 1.5 years I forgot the sequence needed and made a whole bunch of mistakes.

It would be nice to be able to improve the experience and guide the user. On the other end of the installer UX are assisted installers which often use insecure defaults (e.g. for partitioning, or default passwds, etc).

nixos-help is potentially a valuable tool here but the documentation could use some attention in terms of organization, flow, and ensuring the documentation is updated to the current release of NixOS it is shipped with.

@mbbx6spp
mbbx6spp / tlatoolbox.nix
Last active March 17, 2018 05:21
nixpkgs ships with a tlaplus package which contains some standalone tools like tla2tex and tla2any etc but for the entire IDE I had to come up with my own package. I haven't submitted it upstream yet as the layout of the package dir is entirely wrong so I need to work on that first but it works for far.
{ stdenv, fetchurl, gtk2, xorg, patchelf, unzip, makeWrapper, jre }:
let version = "1.5.6"; in
stdenv.mkDerivation rec {
inherit version;
name = "TLAToolBox-${version}";
src = fetchurl {
url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.x86_64.zip";
sha256 = "1b5sf4d7sv0x1hg4f1if3q7wzsi09dr8fv71qfagj8m25zrh3lvj";
};
@mbbx6spp
mbbx6spp / config
Created November 22, 2017 16:19
Blocked SSH port, GitHub workaround
# Put in your ~/.ssh/config
### Problem
#
# You are on a public WiFi network that blocks SSH ports but you don't want to switch
# to pushing your Github changes to GH remotes via HTTPS nor do you want to change the
# remote hostname in all your repos.
Host github.com
Hostname ssh.github.com
@mbbx6spp
mbbx6spp / FooBarBaz.hs
Created September 5, 2017 19:19
Exercise about definition of combinator.
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RankNTypes #-}
module FooBarBaz.Main
( compose3a
, compose3b
, compose3c
, main
) where
{-
@mbbx6spp
mbbx6spp / cors-validation
Last active May 10, 2017 19:48
CORs cURL check
#!/usr/bin/env bash
function usage() {
>&2 echo "Usage: $0 SOURCE_URL PROXY_URL"
}
function main() {
local -r source_url="${1}"
local -r proxy_url="${2}"
curl \
@mbbx6spp
mbbx6spp / .gitignore
Last active April 20, 2017 03:45
Node JS streams reproduction of problem in simplest form
node_modules
@mbbx6spp
mbbx6spp / church-numerals.scala
Last active April 13, 2017 15:09 — forked from tommysullivan/church-numerals.scala
A fork for a friend's Gist to demonstrate some things
/*
SP: currying this gives the type: (T => T) => T => T
That looks an awful lot like Haskell's application ($) operator. :)
There is a higher order abstraction here, sniff it out.
*/
type ChurchNumeral[T] = (T => T, T) => T
def cn0[T](f:T=>T, x:T):T = x
def cn1[T](f:T=>T, x:T):T = f(x)
def cn2[T](f:T=>T, x:T):T = f(f(x))
@mbbx6spp
mbbx6spp / LAZY.md
Last active March 29, 2017 21:58
Silly benchmark to satisfy my burning curiousity.
$ ruby bench/lazy.rb
                                                                                                           user     system      total        real
using Range#lazy                                                                                       0.330000   0.000000   0.330000 (  0.330689)
using Enumerator#yield                                                                                 0.170000   0.000000   0.170000 (  0.177117)
using Fiber#yield                                                                                      0.340000   0.120000   0.460000 (  0.458015)
@mbbx6spp
mbbx6spp / mutualrecursion.hs
Last active January 5, 2017 04:00
Initial motivating example for using recursion schemes
-- module of natural number properties ... and stuff
module Naturally where
import Prelude hiding (even, odd)
-- recursive data structure
data Nat = Zero -- base case is "zero"
| Succ Nat -- successor of another Nat is the "recursive" case data constructor
deriving (Eq)