Skip to content

Instantly share code, notes, and snippets.

View eraserhd's full-sized avatar

Jason Felice eraserhd

View GitHub Profile
@eraserhd
eraserhd / foo.c
Created June 23, 2021 14:48
Executable C file
//usr/bin/env cc -o "/tmp/foo.$$" "$0" || exit $?; exec "/tmp/foo.$$" "$@"
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("hello, world!\n");
}
{
description = "2u environment configuration";
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
outputs = { self, nixpkgs }: let
devEnvironmentForSystem = system: let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
;; I? Input satisfied?
;; O? Output satisfied?
;; RR? Requires release?
;; HR? Has release?
;;
(def status-table
;; # I? O? RR? HR? | Status
;; --- -- -- -- -- | ------
'[[ 0 N N N N :| "UNAVAILABLE"]
[ 1 Y N N N :| "AVAILABLE"]
irb(main):001:0> class Foo
irb(main):002:1> class Bar
irb(main):003:2> end
irb(main):004:1> end
=> nil
irb(main):005:0> Foo::Bar.new.kind_of?(Foo)
=> false
irb(main):006:0>

I really like and support this ADR, and want this to work. The SSM Parameter Store seems like a solid solution that integrates well with our tech stack.

On a procedural note, I'm worried that we are making these decisions without considering the migration cost. In the software indstry, I've very frequently experienced this pattern:

Time index Organizational mood
1 B is better and easier to maintain than A, so we will move to B
2-50 Implement B
51-60 Migrate a few easy systems, as a test bed
Time index Organizational gestalt
1 B is better and easier to maintain than A, so we will move to B
2-99 Implement B
100 (Pareto's) 80% of systems migrated to use B. The easiest systems are chosen first, as test bed, and the most often used systems are chosen next.
101 Organizational analysis of remaining systems indicates it isn't worth migrating - some of the systems are "going away", and any way Product is putting pressure on us to deliver customer-facing value and it is very hard to explain the value of what is affectionately known as "the second 80% of the project"
101+ Organization maintains A and B indefinitely, increasing costs, the fragility of the system, and defeating the original purpose of the project.
> (begin-amb (let (x (amb 0 1 2)) (required (not (= 0 x))) (amb-collect x)))
(2 1)
> (begin-amb (let (x (amb 0 1 2)) (required (not (= 0 x))) (amb-collect x)))
*** ERROR IN #<procedure #6> -- amb: [amb-completion] amb exhausted
1> ,t
> (begin-amb (let (x (amb 0 1 2)) (required (not (= 0 x))) (amb-collect x)))
(1 2)
> (begin-amb (let (x (amb 0 1 2)) (required (not (= 0 x))) (amb-collect x)))
(1 2)
> (begin-amb (let (x (amb 0 1 2)) (required (not (= 0 x))) (amb-collect x)))
define-command enable-search-highlight %{ try %{ add-highlighter global/search-highlight dynregex '%reg{/}' 0:default,red } }
define-command disable-search-highlight %{ try %{ remove-highlighter global/search-highlight } }
map global normal / ': enable-search-highlight<ret>/'
map global normal ? ': enable-search-highlight<ret>?'
map global normal <a-/> ': enable-search-highlight<ret><a-/>'
map global normal <a-?> ': enable-search-highlight<ret><a-?>'
map global normal n ': enable-search-highlight<ret>n'
map global normal N ': enable-search-highlight<ret>N'
== TODO Fix cask
- [ ] bin/create_site_lists.py
== TODO Fix bodega
- [ ] bin/create_site_lists.py
== TODO Fix cp-segment-keys
these derivations will be built:
/nix/store/g4l0jwv2a9jypinpw3d72amsws1n0zcq-git-host-tools-0.1.0.drv
building '/nix/store/g4l0jwv2a9jypinpw3d72amsws1n0zcq-git-host-tools-0.1.0.drv'...
unpacking sources
unpacking source archive /nix/store/vinddjlh0qfbhxw82gigf5rb0ybi1jxy-git-host-tools
source root is git-host-tools
patching sources
configuring
no configure script, doing nothing
building