187 karma · joined May 4, 2011
Yep: Nix
CI being a framework, is easy to be locked into -- preventing local-first dev.
I find justfiles can help unify commands, making it easier to prevent accruement of logic in CI.
That said, Terragon here (which is akin to Codex and Jules) are often "too autonomous" for my taste. Human in the loop is made more difficult -- commenting may not be enough: I can't edit the code from those because the workspace is so ephemeral and/or remote.
AI won't magically know your codebase unless it is pretty vanilla - but then you teach it. If it makes a mistake, teach it by adding a rule.
You have to confine the output space or else you quickly get whatever.
I added a web server ontop, so I can use Claudia from my phone now: https://github.com/getAsterisk/claudia/pull/216
More nix less containers, btw.
E.g. docker run -ti nixery.dev/shell/cowsay bash for on-the-fly containers based on Nix.
I just symlink now to AGENTS.md
rgf is a function
rgf ()
{
( unset rg;
function rg_normalize ()
{
sed -E 's#-(\x1b\[[0-9;]*m)*([0-9]+)(\x1b\[[0-9;]*m)*-#\1:\2:\3#g'
};
rg --color=always "${@:-${RG_LAST_ARGS[@]}}" --with-filename --line-number | rg_normalize | fzf --ansi --multi > /dev/shm/.tmp.fzf );
cmd_fuzzy_editor $(cat /dev/shm/.tmp.fzf | awk -F':' '{file=$1; line=$2;} {print file, line}') > /dev/shm/.my_editor.source;
source /dev/shm/.my_editor.source
}
type cmd_fuzzy_editor
cmd_fuzzy_editor is a function
cmd_fuzzy_editor ()
{
( set -eu;
{
local file="$1";
local line="$2"
} 2> /dev/null;
export EDITOR="${EDITOR:-vim}";
export FUZZY_EDITOR="${FUZZY_EDITOR:-${EDITOR}}";
case "$FUZZY_EDITOR" in
"vi" | "vim" | "gvim" | "nvim" | "neovim" | "spacevim")
echo "$FUZZY_EDITOR" "${file}" "+${line}"
;;
"emacs")
echo "$FUZZY_EDITOR" --no-splash "+${line}" "${file}"
;;
"nano")
echo "$FUZZY_EDITOR" "+${line}" "${file}"
;;
"nedit")
echo "$FUZZY_EDITOR" "${file}" -line "${line}"
;;
"sublime_text")
echo "$FUZZY_EDITOR" --new-window "${file}:${line}"
;;
"code" | "vscode")
echo "$FUZZY_EDITOR" --goto "${file}:${line}"
;;
"notepadqq" | "nqq")
echo "$FUZZY_EDITOR" -line "${line}" "${file}"
;;
"kate" | "leafpad" | "mousepad" | "gedit")
echo "$FUZZY_EDITOR" "${file}"
;;
*)
echo 'No FUZZY_EDITOR found!' 1>&2
;;
esac )
}The problem with diffs is that they are not easily portable - because their intent is so (accidentally) low-level. Imbue diffX with semantics, and they can become more readable - by humans and AI alike.
I like linear Git histories, but image if we could "widen" a linear history maximally - so all non-conflicting commits "branch out" and only merge when needed.
btw, I have a project in my drawer, to place rootfs of my NixOS on IPFS.
ASHA works with older Bluetooth Low Energy spec versions.
But ASHA is bad: A too-simple protocol, leading implementations having to figure out timing themselves. I implemented ASHA in our Hearing Aids, btw.