#+TITLE: Posix https://github.com/dylanaraps/pure-sh-bible https://github.com/gigamonkey/monorepoize [[https://ideatrash.net/2013/03/scripts-and-utilities-to-make.html][tui everything]] [[https://github.com/Genivia/ugrep][interactive grep with query ui and fuzzy search]] [[https://github.com/tomnomnom/gron][make JSON greppable]] [[https://github.com/sharkdp/hexyl][command line hex viewer]] [[https://github.com/sharkdp/hyperfine][command line benchmarking tool]] [[https://github.com/imager-io/imager][automated image compression for distributing images]] [[https://github.com/KorySchneider/wikit][wikipedia summaries from the command line]] [[https://github.com/learnbyexample/Command-line-text-processing][automate command line text processing]] [[https://github.com/casey/just][just: simple command runner]] [[https://github.com/gokcehan/lf][terminal file manager]] [[https://mikestone.me/watching-in-linux][watch cmd in linux]] https://ban.ai/multics/ http://shell.cs.pomona.edu/shtepper http://wiki.c2.com/?GreenspunsTenthRuleOfProgramming https://christine.website/blog/why-i-use-suckless-tools-2020-06-05 [[http://werc.cat-v.org/][posix 'anti-web' framework]] [[https://mkaz.blog/code/unix-is-my-ide/][Unix is my IDE]] [[https://github.com/acmesh-official/acme.sh][a full ACME protocol implemented in shell]] [[file:web.org][Web]] https://gist.github.com/katef/59450aa622315bd35fc27bd383c2dbe6#file-life-utf8-c [[file:cpp.org][C and C++]] [[https://github.com/zeroby0/pranks#7-change-editors][fun ideas for pranks at the shell]], and https://github.com/mathiasbynens/evil.sh https://news.ycombinator.com/item?id=24256883 portable executables! [[https://kkovacs.eu/cool-but-obscure-unix-tools/][terminal utils to look at]] * unix shell programming: the next 50 years [[https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf][src]] and [[https://www.reddit.com/r/ProgrammingLanguages/comments/nfcij6/unix_shell_programming_the_next_50_years_hotos/][discussion]] ** The good - Universal language for interoperability - Works with anything and is a medium between anything - Incredibly expressive (and often efficient) EDSL for stream processing - Interactive environment for interacting with the computer ** bad - insane specification that isn't implemented correctly in *any* shell, not even worth diving into - too arbitrary - it has infinite flexibility and that prevents it from doing anything - too dynamic - everything in a shell script is dependent on global state, which prevents any form of optimization or program change - performance cannot scale because it cannot be optimized ** Future - Smoosh :: fully formalize and implement the posix shell, showing differences between specifications across semantics - PaSH/POSH :: annotation languages as a high level specification interface for interactive programs, can be used as abstract models for command behaviors! This allows for better system specification that can actually be enforced (thinking of tools like Alloy here!) - static reasoning :: previous bullets name annotation languages that give us information about the shell - why not dynamically rewrite and inspect every shell command?