diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-07-07 20:28:56 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-07-07 20:28:56 +0200 |
commit | f5cfd0f93357a94719b8b805bd3145e6303d3a88 (patch) | |
tree | 1f4e2a1e06873d16d8da1eca480b966e00f9fe5b /content/computer | |
parent | 106008c5b7dd7315bc19ec3858b3c58b58b58990 (diff) |
Reorganize all computer stuff in subection "computers"
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'content/computer')
21 files changed, 431 insertions, 0 deletions
diff --git a/content/computer/_index.md b/content/computer/_index.md new file mode 100644 index 0000000..ce8305c --- /dev/null +++ b/content/computer/_index.md @@ -0,0 +1,7 @@ ++++ +title = "Computer" +sort_by = "weight" ++++ + +All stuff I know on the topic of "computers" goes into this section. + diff --git a/content/computer/computer_science/_index.md b/content/computer/computer_science/_index.md new file mode 100644 index 0000000..30d8427 --- /dev/null +++ b/content/computer/computer_science/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Computer Science' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/linux_unix/_index.md b/content/computer/linux_unix/_index.md new file mode 100644 index 0000000..453f369 --- /dev/null +++ b/content/computer/linux_unix/_index.md @@ -0,0 +1,15 @@ ++++ +title = 'Linux unix' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ + +In this section, I will write down tips and tricks, tutorials and general +interesting stuff on Linux and Unixoid operating systems that I learned. + +The subsections of this section will be target more specific fields of +interest. + + diff --git a/content/computer/linux_unix/gui.md b/content/computer/linux_unix/gui.md new file mode 100644 index 0000000..bc5388b --- /dev/null +++ b/content/computer/linux_unix/gui.md @@ -0,0 +1,14 @@ ++++ +title = 'GUI' +weight = 1 ++++ + +Notes on GUI stuff + + +# Tools + +General list of helper tools that are nice, helpful and worth to have a look at + +* [effitask](https://github.com/sanpii/effitask) + diff --git a/content/computer/open_source/_index.md b/content/computer/open_source/_index.md new file mode 100644 index 0000000..0d38e78 --- /dev/null +++ b/content/computer/open_source/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Open source' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/programming/_index.md b/content/computer/programming/_index.md new file mode 100644 index 0000000..77afce3 --- /dev/null +++ b/content/computer/programming/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Programming' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/programming/programming_languages/_index.md b/content/computer/programming/programming_languages/_index.md new file mode 100644 index 0000000..dc40289 --- /dev/null +++ b/content/computer/programming/programming_languages/_index.md @@ -0,0 +1,12 @@ ++++ +title = 'Programming Languages' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = 'weight' ++++ + +Here go some notes on different programming languages, whereas each language +gets its own section and this page only lists some more common/general things. + + diff --git a/content/computer/programming/programming_languages/bash.md b/content/computer/programming/programming_languages/bash.md new file mode 100644 index 0000000..0bc3eb5 --- /dev/null +++ b/content/computer/programming/programming_languages/bash.md @@ -0,0 +1,16 @@ ++++ +title = "Bash" +weight = 1 ++++ + + +# Argument parsing + +* [argbash.io](https://argbash.io/) + + +# Linting + +* [shellcheck website](https://www.shellcheck.net/) +* [shellcheck tool](https://github.com/koalaman/shellcheck) + diff --git a/content/computer/programming/programming_languages/go.md b/content/computer/programming/programming_languages/go.md new file mode 100644 index 0000000..831c544 --- /dev/null +++ b/content/computer/programming/programming_languages/go.md @@ -0,0 +1,23 @@ ++++ +title = "Go" +weight = 1 ++++ + + +# Why Go is bad + +<small>(Unsorted list of articles why `Go` is not a programming language one should +use)</small> + +* [Reigning in the Memory Manager](https://www.amitlevy.com/talks/go_meetup_jan_13/#slide-0) +* [You Don't Like Google's Go Because You Are Small](https://tmikov.blogspot.com/2015/02/you-dont-like-googles-go-because-you.html) +* [go-is-not-good](https://github.com/ksimka/go-is-not-good) +* [The "go" language is a mess](https://valuedrivenit.blogspot.com/2015/12/to-go-language-is-mess.html) +* [Go: the Good, the Bad and the Ugly](https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/) +* [Go (Golang) Sucks! Here’s Why!](https://subedi.co/blog/2015/11/10/golang-sucks-heres-why) +* [Why Everyone Hates Go](https://npf.io/2014/10/why-everyone-hates-go/) +* [Why Discord is switching from Go to Rust](https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f) +* [Go is not an easy language](https://www.arp242.net/go-easy.html) +* [Why Golang Is Bad for Smart Programmers](https://raevskymichail.medium.com/why-golang-bad-for-smart-programmers-4535fce4210c) +* [Go: the Good, the Bad and the Ugly](https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/#the-bad) + diff --git a/content/computer/programming/programming_languages/php.md b/content/computer/programming/programming_languages/php.md new file mode 100644 index 0000000..d09b515 --- /dev/null +++ b/content/computer/programming/programming_languages/php.md @@ -0,0 +1,10 @@ ++++ +title = "PHP" +weight = 1 ++++ + + +# Why PHP is bad + +* [PHP: a fractal of bad design](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/) + diff --git a/content/computer/programming/programming_languages/rust.md b/content/computer/programming/programming_languages/rust.md new file mode 100644 index 0000000..d7d5c01 --- /dev/null +++ b/content/computer/programming/programming_languages/rust.md @@ -0,0 +1,39 @@ ++++ +title = "Rust" +weight = 1 ++++ + + +[Official website](https://www.rust-lang.org/) + + +# Resources + +* [crates.io](https://crates.io) - Installable library and binary crates +* [docs.rs](https://docs.rs) - All documentation of crates from crates.io +* [lib.rs](https://lib.rs) - Alternative to crates.io +* [std.rs](https://std.rs) - Standard library documentation + + +## Learning Resources + +* [Cargo Book](https://doc.rust-lang.org/cargo/index.html) +* [Compiler Error Index](https://doc.rust-lang.org/error-index.html) +* [Edition Guide](https://doc.rust-lang.org/edition-guide/index.html) +* [The standard library](https://doc.rust-lang.org/std/index.html) +* [rustc Book](https://doc.rust-lang.org/rustc/index.html) +* [rustdoc Book](https://doc.rust-lang.org/rustdoc/index.html) + + +## Application building + +* [Command Line Book](https://rust-cli.github.io/book/index.html) - Command line application building +* [Embedded Book](https://doc.rust-lang.org/embedded-book) - Rust for Microcontrollers/embedded systems +* [WebAssembly Book](https://rustwasm.github.io/docs/book/) - Building browser-native libraries with WebAssembly + + +# Libraries + +* [clap](https://clap.rs) - State of the art commandline interface building and parsing + + diff --git a/content/computer/programming/programming_techniques/_index.md b/content/computer/programming/programming_techniques/_index.md new file mode 100644 index 0000000..e84b4a2 --- /dev/null +++ b/content/computer/programming/programming_techniques/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Programming Techniques' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/software/_index.md b/content/computer/software/_index.md new file mode 100644 index 0000000..be3174e --- /dev/null +++ b/content/computer/software/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Software' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/software/software_architecture/_index.md b/content/computer/software/software_architecture/_index.md new file mode 100644 index 0000000..fc48d23 --- /dev/null +++ b/content/computer/software/software_architecture/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Software Architecture' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/software/software_bestpractices/_index.md b/content/computer/software/software_bestpractices/_index.md new file mode 100644 index 0000000..5e3b1ad --- /dev/null +++ b/content/computer/software/software_bestpractices/_index.md @@ -0,0 +1,7 @@ ++++ +title = 'Software Bestpractices' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ diff --git a/content/computer/tools/_index.md b/content/computer/tools/_index.md new file mode 100644 index 0000000..82b3d10 --- /dev/null +++ b/content/computer/tools/_index.md @@ -0,0 +1,8 @@ ++++ +title = 'Tools' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ + diff --git a/content/computer/tools/cli/_index.md b/content/computer/tools/cli/_index.md new file mode 100644 index 0000000..0e740d0 --- /dev/null +++ b/content/computer/tools/cli/_index.md @@ -0,0 +1,8 @@ ++++ +title = 'CLI' +insert_anchor_links = "left" +in_search_index = true +generate_feed = false +sort_by = "weight" ++++ + diff --git a/content/computer/tools/cli/helpers.md b/content/computer/tools/cli/helpers.md new file mode 100644 index 0000000..7fea776 --- /dev/null +++ b/content/computer/tools/cli/helpers.md @@ -0,0 +1,79 @@ + ++++ +title = 'CLI Helper tools' +weight = 1 ++++ + +General list of helper tools that are nice, helpful and worth to have a look at + +* [alacritty](https://github.com/alacritty/alacritty) +* [atuin](https://github.com/ellie/atuin) +* [bandwhich](https://github.com/imsnif/bandwhich) +* [bat](https://github.com/sharkdp/bat) +* [bb](https://github.com/epilys/bb) +* [bfs](https://github.com/tavianator/bfs) +* [bmon](https://github.com/tgraf/bmon) +* [bottom](https://github.com/ClementTsang/bottom) +* [broot](https://github.com/Canop/broot) +* [choose](https://github.com/theryangeary/choose) +* [coreutils](https://github.com/uutils/coreutils) +* [delta](https://github.com/dandavison/delta) +* [dijo](https://github.com/NerdyPepper/dijo) +* [diskus](https://github.com/sharkdp/diskus) +* [dive](https://github.com/wagoodman/dive) +* [dua-cli](https://github.com/Byron/dua-cli) +* [dutree](https://github.com/nachoparker/dutree) +* [exa](https://github.com/ogham/exa) +* [fd](https://github.com/sharkdp/fd) +* [fzf](https://github.com/junegunn/fzf) +* [git-absorb](https://github.com/tummychow/git-absorb) +* [git-interactive-rebase-tool](https://github.com/MitMaro/git-interactive-rebase-tool) +* [git-journal](https://github.com/saschagrunert/git-journal) +* [gitui](https://github.com/extrawurst/gitui) +* [glances](https://github.com/nicolargo/glances) +* [glow](https://github.com/charmbracelet/glow) +* [gotop](https://github.com/xxxserxxx/gotop) +* [gping](https://github.com/orf/gping) +* [hex](https://github.com/sitkevij/hex) +* [hexyl](https://github.com/sharkdp/hexyl) +* [httpie](https://httpie.io/) +* [hugo](https://github.com/gohugoio/hugo) +* [hunter](https://github.com/rabite0/hunter) +* [joshuto](https://github.com/kamiyaa/joshuto) +* [jp](https://github.com/sgreben/jp) +* [jq](https://github.com/stedolan/jq) +* [jrnl](https://github.com/jrnl-org/jrnl) +* [lazygit](https://github.com/jesseduffield/lazygit) +* [lsd](https://github.com/Peltoche/lsd) +* [mdBook](https://github.com/rust-lang/mdBook) +* [navi](https://github.com/denisidoro/navi) +* [nemu](https://github.com/nemuTUI/nemu) +* [netdata](https://github.com/netdata/netdata) +* [ngxtop](https://github.com/lebinh/ngxtop) +* [nvtop](https://github.com/Syllo/nvtop) +* [pg_top](https://gitlab.com/pg_top/pg_top) +* [pgcli](https://github.com/dbcli/pgcli) +* [q](https://github.com/harelba/q) +* [ranger](https://github.com/ranger/ranger) +* [ripgrep](https://github.com/BurntSushi/ripgrep) +* [rofi](https://github.com/davatorium/rofi) +* [sad](https://github.com/ms-jpq/sad) +* [sc-im](https://github.com/andmarti1424/sc-im) +* [sd](https://github.com/chmln/sd) +* [skim](https://github.com/lotabout/skim) +* [slb](https://github.com/vlad17/slb) +* [smenu](https://github.com/p-gen/smenu) +* [so](https://github.com/samtay/so) +* [sshuttle](https://github.com/sshuttle/sshuttle) +* [starship](https://github.com/starship/starship) +* [svgbob](https://github.com/ivanceras/svgbob) +* [syncthing](https://github.com/syncthing/syncthing) +* [tig](https.//github.com/jonas/tig) +* [tmate](https://github.com/tmate-io/tmate) +* [up](https://github.com/akavel/up) +* [whatfiles](https://github.com/spieglt/whatfiles) +* [xsv](https://github.com/BurntSushi/xsv) +* [zellij](https://github.com/zellij-org/zellij) +* [zenith](https://github.com/bvaisvil/zenith) +* [zola](https://www.getzola.org/) + diff --git a/content/computer/tools/cli/scripts.md b/content/computer/tools/cli/scripts.md new file mode 100644 index 0000000..8c71b48 --- /dev/null +++ b/content/computer/tools/cli/scripts.md @@ -0,0 +1,130 @@ ++++ +title = "CLI Helper scripts" +weight = 1 ++++ + +# Commandline enhancements + +## [fzf](https://github.com/junegunn/fzf) + +`fzf` is a fuzzy selection tool written in Go. An alternative in Rust would be +[skim](https://github.com/lotabout/skim). + +fzf can be used to automate a lot of things, for example it can replace the +`CTRL-R` shortcut in bash: + +```bash +# Include in your .bashrc: +source PATH_TO_FZF_CLONE/shell/key-bindings.bash +``` + +And now, `CTRL-R` will fuzzy search the history. + +`fzf` is a huge productivity boost for commandline work and even other tools +where it integrates. + +Some more examples: + +```bash +# fco - fuzzy checkout git branch +fco() { + local tags branches target + local fzf_cmd="fzf" + tags=$(git tag | awk '{print "\x1b[31;1mtag\x1b[m\t" $1}') \ + || return + + branches=$(git branch --all | grep -v HEAD | \ + sed "s/.* //" | sed "s#remotes/[^/]*/##" | \ + sort -u | awk '{print "\x1b[34;1mbranch\x1b[m\t" $1}') \ + || return + + [[ $TMUX ]] && [[ $(which fzf-tmux 2>/dev/null) ]] && \ + fzf_cmd="fzf-tmux -l30 -- " + + target=$( (echo "$tags"; echo "$branches") | \ + $fzf_cmd --no-hscroll --ansi +m -d "\t" -n 2) \ + || return + + git checkout $(echo "$target" | awk '{print $2}') +} + +# Fuzzy foreground, if you use `CTRL-Z` a lot +fj() { + [ $(jobs | wc -l) -eq 0 ] && return + local j=$(jobs | awk '{ print $3, " - ", $2, " - ", $1; }' | fzf -1 -0) + echo $j + fg $(echo $j | sed -r 's/(.*)\[([0-9]*).*/\2/g') +} + +# Fuzzy select the right tmux session, even within a tmux session +fmux() { + local session + session=$(tmux list-sessions -F "#{session_name}" | \ + fzf --query="$1" --select-1 --exit-0) + + if [[ -z "${TMUX}" ]]; then + tmux -2 attach -t "$session" + else + tmux -2 switch-client -t "$session" + fi +} +``` + +## fzf in vim + +It can also be integrated in `vim` for fuzzy selecting. Things like +fuzzy-jump-to-line, for example: + +```viml +" Using the fzf-preview plugin, this can even be enhanced with a preview window: +nmap <Leader>zf :FZF<CR> +nmap <Leader>zr :FZFRg<CR> +nmap <Leader>zh :FZFHistory<CR> +nmap <Leader>zl :FZFBLines<CR> +nmap <Leader>zt :FZFTags<CR> +nmap <Leader>zT :FZFBTags<CR> +nmap <Leader>zm :FZFMarks<CR> +nmap <Leader>zw :FZFWindows<CR> +``` + + +# Ranger + +Ranger is a nice CLI filemanager (TUI). + + +## (Not) Nesting ranger + +With the following script, one can +ensure that only one ranger instance is running in the terminal (no nested +sessions): + +```bash +r() { + if [ $(jobs | grep ranger | wc -l) -gt 0 ]; then + fg $(jobs | grep ranger | sed 's,^\[,,; s,\].*,,') + else + if [ -z "$RANGER_LEVEL" ]; then + ranger + else + exit + fi + fi +} +``` + + +## tmux integration + +Using tmux from ranger is as simple as + +``` +map ef eval if 'TMUX' in os.environ.keys(): fm.run("tmux splitw -h 'rifle \"" + fm.thisfile.basename + "\"'") +map ev eval if 'TMUX' in os.environ.keys(): fm.run("tmux splitw -v 'rifle \"" + fm.thisfile.basename + "\"'") +map ew eval if 'TMUX' in os.environ.keys(): fm.run("tmux new-window 'rifle \"" + fm.thisfile.basename + "\"'") + +map sf eval if 'TMUX' in os.environ.keys(): fm.run("tmux splitw -h") +map sv eval if 'TMUX' in os.environ.keys(): fm.run("tmux splitw -v") +map sw eval if 'TMUX' in os.environ.keys(): fm.run("tmux new-window") +``` + diff --git a/content/computer/tools/planning.md b/content/computer/tools/planning.md new file mode 100644 index 0000000..f95f0a8 --- /dev/null +++ b/content/computer/tools/planning.md @@ -0,0 +1,14 @@ ++++ +title = "Planning" +weight = 1 ++++ + +## Shared Text Boards + +* [riseup pad](https://pad.riseup.net) + + +## Appointment planning + +* [Dudle](https://dudle.inf.tu-dresden.de/) - free "doodle" alternative + diff --git a/content/computer/tools/vim.md b/content/computer/tools/vim.md new file mode 100644 index 0000000..9fd8a7b --- /dev/null +++ b/content/computer/tools/vim.md @@ -0,0 +1,7 @@ ++++ +title = 'Vim' +weight = 1 ++++ + +Notes/resources on the best available editor for Linux/Unix CLI. + |