by timhigins on 10/24/22, 10:06 PM with 157 comments
by f8 on 10/25/22, 12:02 AM
I also hate the Docker tagline that it "eliminates 'works on my machine' issues". I believe a tool like asdf would also achieve this (correct me if I'm wrong). Docker itself can go haywire depending on the machine and you're basically in hell fighting with it just to get your dev environment working. You essentially eliminate one problem in exchange for a variety of equally frustrating challenges.
by happens on 10/24/22, 11:59 PM
Having the ecosystem of asdf plugins which are basically just shell scripts has been a huge boon. It's been a breeze to work with, and most of the plugins are well written.
Now, I've been contemplating switching to NixOS, but most version managers don't work at all with it due to dynamic linking. I absolutely love the idea of NixOS, but this has really bummed me out. I feel like the nix language is still a little clunky for general use, so as long as there is not a straightforward solution like having a tool-versions file I'm really hesitant to make the full switch.
by ephaeton on 10/25/22, 4:48 AM
Does asdf come with a plugin for asdf & quicklisp? would've preferred for the new guy on the block pay respect to the old guy on the block and used a different name..
by letmeinhere on 10/25/22, 1:25 AM
asdf global python system
by denolfe on 10/25/22, 12:46 AM
by teilo on 10/25/22, 12:33 AM
by rektide on 10/24/22, 10:53 PM
by thunfisch on 10/25/22, 8:51 AM
by tpict on 10/24/22, 11:04 PM
by matsemann on 10/24/22, 11:44 PM
by bluehatbrit on 10/25/22, 9:11 AM
by pmontra on 10/24/22, 11:10 PM
by phtrivier on 10/25/22, 7:20 AM
Sadly, reuses the name of a completely unrelated common lisp tool.
by rubyist5eva on 10/24/22, 11:18 PM
by felipelalli on 10/25/22, 12:13 AM
by password4321 on 10/25/22, 1:23 AM
by ivolimmen on 10/25/22, 6:29 AM
by Existenceblinks on 10/25/22, 9:23 AM
Works great in itself, however, PostgreSQL version upgrade is quite hustle. It's plug-in area, though could have some protocol with the core to make it seamless. I didn't upgrade my postgres for a while (on 12.4 right now).
Not sure if it still requires you to do:
`POSTGRES_EXTRA_CONFIGURE_OPTIONS=--with-openssl LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" asdf install postgres x.x`
And run `pg_upgrade` yourself moving data from previous version to the new one's directory.
by throwawaaarrgh on 10/25/22, 3:50 AM
Seriously through, it's pretty easy to create an asdf plugin, and it works great. But it would be great if there were a static executable to handle it all.
A couple projects out there come close, but need people to contribute code to finish the most useful functionality. One example is https://github.com/marcosnils/bin - the developer is fully in favor of improvements and added features, but needs someone with the free time to add them.
by robertwt7 on 10/25/22, 3:03 AM
Sadly this is not available in windows so i had to use WSL to run everything. Development in windows is so wonky once you switched from unix based system
by Cloudef on 10/25/22, 12:34 AM
by hiyer on 10/25/22, 3:27 AM
by derrida on 10/25/22, 10:58 AM
Convert all data / markup to s-expressions
Make all code lambda calculus in some paren form
No more "xml being manipulated by a scheme designed to look like imperative language" (javacript manipulating the DOM)
Thank you have a nice day.
by pawelduda on 10/24/22, 11:36 PM
by tjoff on 10/25/22, 10:24 AM
Though asdf itself is language-agnostic, is it in practice used more for web-development or something?
by mvaliente2001 on 10/25/22, 6:41 PM
by presentation on 10/24/22, 11:36 PM
by anonyme-honteux on 10/25/22, 3:28 AM
My boss loves ASDF and I liked the idea but I tried to use it three times and failed
by SighMagi on 10/25/22, 12:43 AM
by samgranieri on 10/25/22, 2:20 PM
by AbraKdabra on 10/24/22, 11:55 PM
EDIT: Besides being only for JS.
by maltalex on 10/25/22, 4:00 AM
by dboreham on 10/25/22, 3:41 AM
by seandoe on 10/25/22, 12:54 AM
by javier2 on 10/24/22, 11:36 PM
by mattpallissard on 10/25/22, 2:41 AM
clone the terraform source repo
~ git remote -v
origin https://github.com/hashicorp/terraform.git (fetch)
origin https://github.com/hashicorp/terraform.git (push)
check out the tag you want ~ git tag | tail -1
v1.1.5
~ git checkout v1.1.5
Previous HEAD position was 516295951 Release v1.1.4
HEAD is now at fe2ddc22a Release v1.1.5
compile/install the binary in a local bin dirctory, ~ go build
go: downloading github.com/aws/aws-sdk-go v1.42.35
~ install terraform ~/bin/terraform-v1.1.5
~ ls ~/bin/terraform\*
/home/matt/bin/terraform /home/matt/bin/terraform-v0.13.7 /home/matt/bin/terraform-v1.1.4
/home/matt/bin/terraform-v0.13.4 /home/matt/bin/terraform-v0.14.9 /home/matt/bin/terraform-v1.1.5
then manage a series of brittle aliases to disptach the proper version? ~ which terraform
terraform () {
binary=terraform
if [[ $1 == "v"\* ]] && [[ $1 != "validate" ]]
then
version=$1
shift
binary="$binary-$version"
[ -f ~/bin/$binary ] || bail 1 "missing binary $binary" || return 1
else
binary=/usr/bin/$binary
fi
dispatch --name terraform --scope --slice compilers.slice -c 35 -mh 2048M -mm 2048M -s 1M --binary $binary
"$@"
}
(dispatch just runs things with memory and cpu limits) ~ which dispatch
dispatch () {
if [[ $USER == "root" ]]
then
command "$binary" "$@"
return $?
fi
declare args=(--user --same-dir -p IOAccounting=yes -p MemoryAccounting=yes -p TasksAccounting=yes)
while (($#))
do
case "$1" in
(-c) args+="-p"
args+="CPUWeight=$2"
shift 2 ;;
(-mm) args+="-p"
args+="MemoryMax=$2"
shift 2 ;;
(-mh) args+="-p"
args+="MemoryHigh=$2"
shift 2 ;;
(-s) args+="-p"
args+="MemorySwapMax=$2"
shift 2 ;;
(--scope) args+=--scope
shift ;;
(--slice) args+="--slice=$2"
shift 2 ;;
(--name) name=$1
shift 2 ;;
(-P) args+=-P
shift ;;
(--binary) [ -z "$name" ] || name=$2
binary="$2"
shift ;;
(*) break ;;
esac
done
systemd-run $args "$@" 2> >(>&2 grep -vE 'Running.*as unit:')
}
and of course, then you'd need a shitty little script to call your alias when other tools decide they want to call terraform ~ cat ~/bin/terraform
#!/usr/bin/env zsh
source ~/.zshrc >/dev/null 2>/dev/null || exit 1
terraform $@
Because that would be silly and dumb, and I totally don't do that for everything.Don't even get me started on virtualenvs.