From 7e375b697d3a6cad9ef952cef3b87540f862494f Mon Sep 17 00:00:00 2001 From: Daniel Hoherd Date: Mon, 8 Apr 2024 16:41:13 -0400 Subject: [PATCH] Add example: Include pre-release versions in all versions --- 3d-printing/index.html | 20 + 404.html | 20 + airflow/index.html | 20 + airport/index.html | 20 + amazon/index.html | 20 + ansible/index.html | 20 + apfs/index.html | 20 + aptly/index.html | 20 + aria2/index.html | 20 + arpwatch/index.html | 20 + atomicparsley/index.html | 20 + automotive/index.html | 20 + autonomous-vehicles/index.html | 20 + avahi/index.html | 20 + awk/index.html | 20 + awless/index.html | 20 + aws-cloudformation/index.html | 20 + awscli/index.html | 20 + backups/index.html | 20 + badblocks/index.html | 20 + bash/index.html | 20 + bbcp/index.html | 20 + bc/index.html | 20 + bind/index.html | 20 + blkid/index.html | 20 + bluetooth/index.html | 20 + bpf/index.html | 20 + c/index.html | 20 + calico/index.html | 20 + calver/index.html | 20 + centos/index.html | 20 + ceph/index.html | 20 + chkconfig/index.html | 20 + chocolatey/index.html | 20 + chronos/index.html | 20 + circleci/index.html | 20 + circuitpython/index.html | 20 + cncf/index.html | 20 + cobbler/index.html | 20 + colorblindness/index.html | 20 + computing/index.html | 20 + consul/index.html | 20 + cookiecutter/index.html | 20 + cowsay/index.html | 20 + cpp/index.html | 20 + cradlepoint/index.html | 20 + cron/index.html | 20 + cryptsetup/index.html | 20 + csplit/index.html | 20 + curl/index.html | 20 + cut/index.html | 20 + dasel/index.html | 20 + data/index.html | 20 + datasette/index.html | 20 + date/index.html | 20 + dcfldd/index.html | 20 + dcgc/index.html | 20 + dcraw/index.html | 20 + dd-wrt/index.html | 20 + dd/index.html | 20 + ddrescue/index.html | 20 + deb/index.html | 20 + debian/index.html | 20 + defaults/index.html | 20 + devops/index.html | 20 + dhcp/index.html | 20 + dhcpd.conf/index.html | 20 + diagrams/index.html | 20 + dig/index.html | 20 + dmidecode/index.html | 20 + dns/index.html | 20 + docker/index.html | 20 + document-query/index.html | 20 + drone/index.html | 20 + dsrc/index.html | 20 + dtrace/index.html | 20 + du/index.html | 20 + duplicity/index.html | 20 + education/index.html | 20 + elasticsearch/index.html | 20 + eleduino/index.html | 20 + etcd/index.html | 20 + ethtool/index.html | 20 + exiftool/index.html | 20 + fediverse/index.html | 20 + fedramp/index.html | 20 + ffmpeg/index.html | 20 + figlet/index.html | 20 + find/index.html | 20 + findmnt/index.html | 20 + fio/index.html | 20 + flask/index.html | 22 +- flipper-zero/index.html | 6934 +++++++++++++++++++++++ fluent-bit/index.html | 22 +- fluentd/index.html | 20 + fortune/index.html | 20 + fuser/index.html | 20 + gaming/index.html | 20 + genicam/index.html | 20 + geodata/index.html | 20 + gige-vision/index.html | 20 + git/index.html | 20 + github/index.html | 20 + gitlab/index.html | 20 + gitolite/index.html | 20 + gnu-screen/index.html | 20 + golang/index.html | 20 + google-cloud/index.html | 20 + google-earth/index.html | 20 + google-sheets/index.html | 20 + google/index.html | 20 + graphicsmagick/index.html | 20 + graphql/index.html | 20 + grep/index.html | 20 + grub/index.html | 20 + hadoop/index.html | 20 + handbrake/index.html | 20 + hashids/index.html | 20 + helm/index.html | 20 + home-assistant/index.html | 20 + hp/index.html | 20 + htmx/index.html | 20 + htop/index.html | 20 + httpstat/index.html | 20 + iTunes/index.html | 20 + image-formats/index.html | 20 + imagemagick/index.html | 20 + img2xterm/index.html | 20 + index.html | 20 + inotify/index.html | 20 + internet/index.html | 20 + interview/index.html | 20 + iotop/index.html | 20 + ip/index.html | 20 + iperf/index.html | 20 + ipmi/index.html | 20 + iptables/index.html | 20 + irc/index.html | 20 + irssi/index.html | 20 + jargon/index.html | 20 + javascript/index.html | 20 + jdupes/index.html | 20 + jmespath/index.html | 20 + join/index.html | 20 + jot/index.html | 20 + jpeginfo/index.html | 20 + jq/index.html | 20 + json/index.html | 20 + jsonnet/index.html | 20 + jsonpath/index.html | 20 + juniper/index.html | 20 + jupyter/index.html | 20 + jwt/index.html | 20 + kaniko/index.html | 20 + keel/index.html | 20 + keybase/index.html | 20 + kubernetes/index.html | 20 + launchd/index.html | 20 + ldap/index.html | 20 + lego/index.html | 20 + lektor/index.html | 20 + linksys/index.html | 20 + linux-performance-monitoring/index.html | 20 + linux/index.html | 20 + logstash/index.html | 20 + lsblk/index.html | 20 + lshw/index.html | 20 + lsof/index.html | 20 + lvm/index.html | 20 + lxc/index.html | 20 + machine-learning/index.html | 20 + macos/index.html | 20 + make/index.html | 20 + marlin/index.html | 20 + math/index.html | 20 + mdraid/index.html | 20 + mechanical-keyboards/index.html | 20 + metallb/index.html | 20 + microbit/index.html | 20 + microcontrollers/index.html | 20 + micropython/index.html | 20 + minikube/index.html | 20 + misc/index.html | 20 + mkdocs/index.html | 20 + molecule/index.html | 20 + mongodb/index.html | 20 + mqtt/index.html | 20 + mutt/index.html | 20 + myrepos/index.html | 20 + mysql/index.html | 20 + namei/index.html | 20 + ncftp/index.html | 20 + neopixel/index.html | 20 + netgear/index.html | 20 + nethogs/index.html | 20 + networking/index.html | 20 + networksetup/index.html | 20 + neverware/index.html | 20 + nfs/index.html | 20 + ngrok/index.html | 20 + nintendo-3ds/index.html | 20 + nintendo-amiibo/index.html | 20 + nintendo-nes/index.html | 20 + nintendo-switch/index.html | 20 + nintendo-wii/index.html | 20 + nintendo-wiiu/index.html | 20 + ntop/index.html | 20 + ntp/index.html | 20 + nvidia/index.html | 20 + openvpn/index.html | 20 + orbstack/index.html | 20 + osquery/index.html | 20 + outline/index.html | 20 + pac/index.html | 20 + pandoc/index.html | 20 + panopticlick/index.html | 20 + passwords/index.html | 20 + perl/index.html | 20 + pgp/index.html | 20 + philips-hue/index.html | 20 + photography/index.html | 20 + php/index.html | 20 + plex/index.html | 20 + postgres/index.html | 20 + powershell/index.html | 20 + powertop/index.html | 20 + procurve/index.html | 20 + prometheus/index.html | 20 + protobuf/index.html | 20 + ps/index.html | 20 + ps_mem/index.html | 20 + psp/index.html | 20 + pssh/index.html | 20 + ptp/index.html | 20 + puppet/index.html | 20 + pv/index.html | 20 + pytest/index.html | 20 + python/index.html | 20 + q/index.html | 20 + raspberry-pi/index.html | 20 + redis/index.html | 20 + retropie/index.html | 20 + rhel/index.html | 20 + robotics/index.html | 20 + roku/index.html | 20 + rook/index.html | 20 + ros/index.html | 20 + rpm/index.html | 20 + rrd/index.html | 20 + rst/index.html | 20 + rsync/index.html | 20 + rust/index.html | 20 + saltstack/index.html | 20 + samba/index.html | 20 + samsung/index.html | 20 + screenshot/index.html | 20 + sdr/index.html | 20 + search/search_index.json | 2 +- security/index.html | 20 + sed/index.html | 20 + selinux/index.html | 20 + semver/index.html | 20 + sensu/index.html | 20 + serverless/index.html | 20 + sgdisk/index.html | 20 + shairport-sync/index.html | 20 + shred/index.html | 20 + shutdown/index.html | 20 + sips/index.html | 20 + sitemap.xml | 5 + sitemap.xml.gz | Bin 2002 -> 2010 bytes slides/index.html | 20 + smartctl/index.html | 20 + smartstack/index.html | 20 + snap/index.html | 20 + snmp/index.html | 20 + solo/index.html | 20 + sort/index.html | 20 + sound-and-music/index.html | 20 + sphinx/index.html | 20 + split/index.html | 20 + splunk/index.html | 20 + spotlight/index.html | 20 + sqlite/index.html | 20 + ss/index.html | 20 + ssh/index.html | 20 + sshuttle/index.html | 20 + stat/index.html | 20 + strace/index.html | 20 + sudo/index.html | 20 + swagger/index.html | 20 + swift/index.html | 20 + sysctl/index.html | 20 + sysdig/index.html | 20 + systemd-resolved/index.html | 20 + systemd/index.html | 20 + tar/index.html | 20 + tcl/index.html | 20 + tcpdump/index.html | 20 + tcpflow/index.html | 20 + terraform/index.html | 20 + time/index.html | 20 + tls/index.html | 20 + tmux/index.html | 20 + top-variant-list/index.html | 20 + top/index.html | 20 + touch/index.html | 20 + tr/index.html | 20 + ubuntu/index.html | 20 + udev/index.html | 20 + upstart/index.html | 20 + utm/index.html | 20 + vagrant/index.html | 20 + vector/index.html | 20 + velero/index.html | 20 + vim/index.html | 20 + virtual-reality/index.html | 20 + virtualbox/index.html | 20 + vpn/index.html | 20 + wasm/index.html | 20 + wget/index.html | 20 + winbind/index.html | 20 + wireshark/index.html | 20 + wonder-workshop/index.html | 20 + wuzz/index.html | 20 + xargs/index.html | 20 + yaml/index.html | 20 + youtube-dl/index.html | 20 + yum/index.html | 20 + zerotier/index.html | 20 + zfs/index.html | 20 + zookeeper/index.html | 20 + zsh/index.html | 20 + 333 files changed, 13522 insertions(+), 3 deletions(-) create mode 100644 flipper-zero/index.html diff --git a/3d-printing/index.html b/3d-printing/index.html index 4e6fc267fa..0f08a65bd7 100644 --- a/3d-printing/index.html +++ b/3d-printing/index.html @@ -2094,6 +2094,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/404.html b/404.html index 15bb7303db..07cdae579e 100644 --- a/404.html +++ b/404.html @@ -2025,6 +2025,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/airflow/index.html b/airflow/index.html index 261d68a5ad..935a4a7049 100644 --- a/airflow/index.html +++ b/airflow/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/airport/index.html b/airport/index.html index 270245986d..0405cf2425 100644 --- a/airport/index.html +++ b/airport/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/amazon/index.html b/amazon/index.html index c2f01b285a..5834aa965e 100644 --- a/amazon/index.html +++ b/amazon/index.html @@ -2187,6 +2187,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ansible/index.html b/ansible/index.html index 26f7ae2644..0f256fd710 100644 --- a/ansible/index.html +++ b/ansible/index.html @@ -2226,6 +2226,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/apfs/index.html b/apfs/index.html index b75c90fc5a..144c7cc924 100644 --- a/apfs/index.html +++ b/apfs/index.html @@ -2181,6 +2181,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/aptly/index.html b/aptly/index.html index b4983a99a9..ee04761e14 100644 --- a/aptly/index.html +++ b/aptly/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/aria2/index.html b/aria2/index.html index 5a600d822e..f714955637 100644 --- a/aria2/index.html +++ b/aria2/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/arpwatch/index.html b/arpwatch/index.html index c3ec7629c5..ab52ee8fcc 100644 --- a/arpwatch/index.html +++ b/arpwatch/index.html @@ -2100,6 +2100,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/atomicparsley/index.html b/atomicparsley/index.html index 5cd8f8069b..82e976ae5c 100644 --- a/atomicparsley/index.html +++ b/atomicparsley/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/automotive/index.html b/automotive/index.html index bc9dfd3dcb..1d55713290 100644 --- a/automotive/index.html +++ b/automotive/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/autonomous-vehicles/index.html b/autonomous-vehicles/index.html index e0df05eddb..aa081ef3ab 100644 --- a/autonomous-vehicles/index.html +++ b/autonomous-vehicles/index.html @@ -2103,6 +2103,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/avahi/index.html b/avahi/index.html index d3b66457a0..48239c62d1 100644 --- a/avahi/index.html +++ b/avahi/index.html @@ -2094,6 +2094,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/awk/index.html b/awk/index.html index 525ded51c3..4b210283fd 100644 --- a/awk/index.html +++ b/awk/index.html @@ -2343,6 +2343,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/awless/index.html b/awless/index.html index ecdb3bfe53..d0d757177a 100644 --- a/awless/index.html +++ b/awless/index.html @@ -2181,6 +2181,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/aws-cloudformation/index.html b/aws-cloudformation/index.html index 6be4846e5c..9c8d89cbd8 100644 --- a/aws-cloudformation/index.html +++ b/aws-cloudformation/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/awscli/index.html b/awscli/index.html index 94bb3e2779..2003bc8ced 100644 --- a/awscli/index.html +++ b/awscli/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/backups/index.html b/backups/index.html index 29033f1fc2..f4c77665ed 100644 --- a/backups/index.html +++ b/backups/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/badblocks/index.html b/badblocks/index.html index 65b8048b86..7e425be8fe 100644 --- a/badblocks/index.html +++ b/badblocks/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bash/index.html b/bash/index.html index cb55a6c522..21544a06a7 100644 --- a/bash/index.html +++ b/bash/index.html @@ -2526,6 +2526,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bbcp/index.html b/bbcp/index.html index b4978131da..903b035120 100644 --- a/bbcp/index.html +++ b/bbcp/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bc/index.html b/bc/index.html index e2aba5d89e..c3b09c88b9 100644 --- a/bc/index.html +++ b/bc/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bind/index.html b/bind/index.html index dc4e34aff5..c561cdd062 100644 --- a/bind/index.html +++ b/bind/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/blkid/index.html b/blkid/index.html index 7922dd01f2..70bfd18b5f 100644 --- a/blkid/index.html +++ b/blkid/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bluetooth/index.html b/bluetooth/index.html index 4f2bea9df7..ae332ee870 100644 --- a/bluetooth/index.html +++ b/bluetooth/index.html @@ -2100,6 +2100,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/bpf/index.html b/bpf/index.html index 8c7b8a6189..25f7b884bb 100644 --- a/bpf/index.html +++ b/bpf/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/c/index.html b/c/index.html index 25fea378fe..7595ac2057 100644 --- a/c/index.html +++ b/c/index.html @@ -2081,6 +2081,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/calico/index.html b/calico/index.html index f513c0fb49..e8c52b15c2 100644 --- a/calico/index.html +++ b/calico/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/calver/index.html b/calver/index.html index bd819905e4..a5cb6558c3 100644 --- a/calver/index.html +++ b/calver/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/centos/index.html b/centos/index.html index e6579ace01..6e873a655b 100644 --- a/centos/index.html +++ b/centos/index.html @@ -2211,6 +2211,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ceph/index.html b/ceph/index.html index a607aeac65..081277bd38 100644 --- a/ceph/index.html +++ b/ceph/index.html @@ -2217,6 +2217,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/chkconfig/index.html b/chkconfig/index.html index b3d938bbb1..f62bd53710 100644 --- a/chkconfig/index.html +++ b/chkconfig/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/chocolatey/index.html b/chocolatey/index.html index c83229e2e8..6a2c109443 100644 --- a/chocolatey/index.html +++ b/chocolatey/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/chronos/index.html b/chronos/index.html index 1d203e7a58..91aacd0f9c 100644 --- a/chronos/index.html +++ b/chronos/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/circleci/index.html b/circleci/index.html index e742518c18..b2bb3dfab5 100644 --- a/circleci/index.html +++ b/circleci/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/circuitpython/index.html b/circuitpython/index.html index b7200d69d4..5bf78ce8e8 100644 --- a/circuitpython/index.html +++ b/circuitpython/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cncf/index.html b/cncf/index.html index 60a86331d9..97e830992a 100644 --- a/cncf/index.html +++ b/cncf/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cobbler/index.html b/cobbler/index.html index d85a7c75d0..fd69e904ca 100644 --- a/cobbler/index.html +++ b/cobbler/index.html @@ -2094,6 +2094,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/colorblindness/index.html b/colorblindness/index.html index 5f5fda36e6..8477536a48 100644 --- a/colorblindness/index.html +++ b/colorblindness/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/computing/index.html b/computing/index.html index 8ab359ab93..09c1f8828b 100644 --- a/computing/index.html +++ b/computing/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/consul/index.html b/consul/index.html index 101d617ef6..72c21a9781 100644 --- a/consul/index.html +++ b/consul/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cookiecutter/index.html b/cookiecutter/index.html index 94ac8226b8..c71224825d 100644 --- a/cookiecutter/index.html +++ b/cookiecutter/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cowsay/index.html b/cowsay/index.html index 0552106f4e..a3e11ea5f7 100644 --- a/cowsay/index.html +++ b/cowsay/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cpp/index.html b/cpp/index.html index d29b87e2f4..a37f08b30a 100644 --- a/cpp/index.html +++ b/cpp/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cradlepoint/index.html b/cradlepoint/index.html index 639d97d690..3b2ef79ce3 100644 --- a/cradlepoint/index.html +++ b/cradlepoint/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cron/index.html b/cron/index.html index 464a865f87..a687d54ee6 100644 --- a/cron/index.html +++ b/cron/index.html @@ -2199,6 +2199,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cryptsetup/index.html b/cryptsetup/index.html index f6110e7840..5fe6db702b 100644 --- a/cryptsetup/index.html +++ b/cryptsetup/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/csplit/index.html b/csplit/index.html index ad7d9dc0e8..56453aecff 100644 --- a/csplit/index.html +++ b/csplit/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/curl/index.html b/curl/index.html index ee264e6245..442412bc51 100644 --- a/curl/index.html +++ b/curl/index.html @@ -2181,6 +2181,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/cut/index.html b/cut/index.html index ecf3964f5e..5274573b0b 100644 --- a/cut/index.html +++ b/cut/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dasel/index.html b/dasel/index.html index 416ab5b9b6..eda18e5999 100644 --- a/dasel/index.html +++ b/dasel/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/data/index.html b/data/index.html index 79b4ddcea7..447d6c0ac4 100644 --- a/data/index.html +++ b/data/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/datasette/index.html b/datasette/index.html index fd2412bf95..42a4062d7a 100644 --- a/datasette/index.html +++ b/datasette/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/date/index.html b/date/index.html index 73059d8383..86337acb69 100644 --- a/date/index.html +++ b/date/index.html @@ -2223,6 +2223,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dcfldd/index.html b/dcfldd/index.html index e44ec2f531..8e9c649432 100644 --- a/dcfldd/index.html +++ b/dcfldd/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dcgc/index.html b/dcgc/index.html index d62ec20ba2..1730acfbc7 100644 --- a/dcgc/index.html +++ b/dcgc/index.html @@ -2100,6 +2100,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dcraw/index.html b/dcraw/index.html index 1ee0cf67ff..408eefa90a 100644 --- a/dcraw/index.html +++ b/dcraw/index.html @@ -2100,6 +2100,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dd-wrt/index.html b/dd-wrt/index.html index 0ac0df2317..a08c2299c1 100644 --- a/dd-wrt/index.html +++ b/dd-wrt/index.html @@ -2295,6 +2295,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dd/index.html b/dd/index.html index 79a4a2b03b..e5f64b3220 100644 --- a/dd/index.html +++ b/dd/index.html @@ -2136,6 +2136,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ddrescue/index.html b/ddrescue/index.html index 6a87d6026f..8599cc7a6c 100644 --- a/ddrescue/index.html +++ b/ddrescue/index.html @@ -2136,6 +2136,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/deb/index.html b/deb/index.html index fd83dceaa0..2053bf273b 100644 --- a/deb/index.html +++ b/deb/index.html @@ -2217,6 +2217,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/debian/index.html b/debian/index.html index d46808d1ae..4f3c650e2b 100644 --- a/debian/index.html +++ b/debian/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/defaults/index.html b/defaults/index.html index f5c543a42d..0d054dcf4d 100644 --- a/defaults/index.html +++ b/defaults/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/devops/index.html b/devops/index.html index 3a73e2959e..c1b46036ed 100644 --- a/devops/index.html +++ b/devops/index.html @@ -2094,6 +2094,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dhcp/index.html b/dhcp/index.html index 4ee2a3a6e1..59c0f023ad 100644 --- a/dhcp/index.html +++ b/dhcp/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dhcpd.conf/index.html b/dhcpd.conf/index.html index d8a99d632f..cf7bc2140b 100644 --- a/dhcpd.conf/index.html +++ b/dhcpd.conf/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/diagrams/index.html b/diagrams/index.html index 9b2aa6c76a..263677d5ef 100644 --- a/diagrams/index.html +++ b/diagrams/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dig/index.html b/dig/index.html index 881af38591..c601f4d696 100644 --- a/dig/index.html +++ b/dig/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dmidecode/index.html b/dmidecode/index.html index 8f9432f940..397a144997 100644 --- a/dmidecode/index.html +++ b/dmidecode/index.html @@ -2151,6 +2151,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dns/index.html b/dns/index.html index 41339cfbde..a4d77f927f 100644 --- a/dns/index.html +++ b/dns/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/docker/index.html b/docker/index.html index 73cdee2d91..f7c553dfd1 100644 --- a/docker/index.html +++ b/docker/index.html @@ -2325,6 +2325,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/document-query/index.html b/document-query/index.html index d2d19310b9..011e40a96f 100644 --- a/document-query/index.html +++ b/document-query/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/drone/index.html b/drone/index.html index 7bd59e6ef0..474f94e240 100644 --- a/drone/index.html +++ b/drone/index.html @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dsrc/index.html b/dsrc/index.html index f2ae121536..d5d3317068 100644 --- a/dsrc/index.html +++ b/dsrc/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/dtrace/index.html b/dtrace/index.html index 6cc2054226..532af538c0 100644 --- a/dtrace/index.html +++ b/dtrace/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/du/index.html b/du/index.html index 8cdec80ae0..5cafdd2bcf 100644 --- a/du/index.html +++ b/du/index.html @@ -2100,6 +2100,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/duplicity/index.html b/duplicity/index.html index 7352b8f2e2..ead4dc3d49 100644 --- a/duplicity/index.html +++ b/duplicity/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/education/index.html b/education/index.html index f7d549e501..8fab8e7fd8 100644 --- a/education/index.html +++ b/education/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/elasticsearch/index.html b/elasticsearch/index.html index 6a257ffb49..32bd124760 100644 --- a/elasticsearch/index.html +++ b/elasticsearch/index.html @@ -2169,6 +2169,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/eleduino/index.html b/eleduino/index.html index 3da39680e1..de173378f1 100644 --- a/eleduino/index.html +++ b/eleduino/index.html @@ -2136,6 +2136,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/etcd/index.html b/etcd/index.html index e75baf7838..fcc1c9b9f6 100644 --- a/etcd/index.html +++ b/etcd/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ethtool/index.html b/ethtool/index.html index 28bccf6ca8..4d1134e2fe 100644 --- a/ethtool/index.html +++ b/ethtool/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/exiftool/index.html b/exiftool/index.html index f7e83dd0a9..9c6154cec7 100644 --- a/exiftool/index.html +++ b/exiftool/index.html @@ -2334,6 +2334,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/fediverse/index.html b/fediverse/index.html index cc83781aaf..9651a91cf0 100644 --- a/fediverse/index.html +++ b/fediverse/index.html @@ -2085,6 +2085,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/fedramp/index.html b/fedramp/index.html index 89451adb29..2a47d67660 100644 --- a/fedramp/index.html +++ b/fedramp/index.html @@ -2046,6 +2046,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ffmpeg/index.html b/ffmpeg/index.html index 7fbdb85609..ddbbba9c88 100644 --- a/ffmpeg/index.html +++ b/ffmpeg/index.html @@ -2250,6 +2250,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/figlet/index.html b/figlet/index.html index 7abb0aa33f..83e0c96910 100644 --- a/figlet/index.html +++ b/figlet/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/find/index.html b/find/index.html index 2549a51b39..b80c424397 100644 --- a/find/index.html +++ b/find/index.html @@ -2172,6 +2172,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/findmnt/index.html b/findmnt/index.html index 2c400149c8..070db781a0 100644 --- a/findmnt/index.html +++ b/findmnt/index.html @@ -2127,6 +2127,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/fio/index.html b/fio/index.html index adfb82f36c..c25143e8c7 100644 --- a/fio/index.html +++ b/fio/index.html @@ -2109,6 +2109,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/flask/index.html b/flask/index.html index 7db448ce02..2886865977 100644 --- a/flask/index.html +++ b/flask/index.html @@ -16,7 +16,7 @@ - + @@ -2118,6 +2118,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/flipper-zero/index.html b/flipper-zero/index.html new file mode 100644 index 0000000000..6391551e15 --- /dev/null +++ b/flipper-zero/index.html @@ -0,0 +1,6934 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Flipper Zero - Daniel Hoherd's tech notes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    + +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/fluent-bit/index.html b/fluent-bit/index.html index e7416022e1..824138a83c 100644 --- a/fluent-bit/index.html +++ b/fluent-bit/index.html @@ -13,7 +13,7 @@ - + @@ -2034,6 +2034,26 @@ + + +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + diff --git a/fluentd/index.html b/fluentd/index.html index 9437307c37..a3dbb32d4b 100644 --- a/fluentd/index.html +++ b/fluentd/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/fortune/index.html b/fortune/index.html index 336568b777..9386cd8e6d 100644 --- a/fortune/index.html +++ b/fortune/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/fuser/index.html b/fuser/index.html index 461ba5963f..4abdae64b0 100644 --- a/fuser/index.html +++ b/fuser/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/gaming/index.html b/gaming/index.html index 3bbc220564..cfb2bc3d36 100644 --- a/gaming/index.html +++ b/gaming/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/genicam/index.html b/genicam/index.html index 5234fb5984..1092badaf7 100644 --- a/genicam/index.html +++ b/genicam/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/geodata/index.html b/geodata/index.html index 9fe8ecd4db..9c4e760569 100644 --- a/geodata/index.html +++ b/geodata/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/gige-vision/index.html b/gige-vision/index.html index 8a14073d07..6dd788f6cc 100644 --- a/gige-vision/index.html +++ b/gige-vision/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/git/index.html b/git/index.html index c4146db7ef..527e667ce3 100644 --- a/git/index.html +++ b/git/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/github/index.html b/github/index.html index 8508c86a62..4d606267a8 100644 --- a/github/index.html +++ b/github/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/gitlab/index.html b/gitlab/index.html index d682aaa5a5..4b7442bb4a 100644 --- a/gitlab/index.html +++ b/gitlab/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/gitolite/index.html b/gitolite/index.html index 99eaecff7f..a8c3fa3ff8 100644 --- a/gitolite/index.html +++ b/gitolite/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/gnu-screen/index.html b/gnu-screen/index.html index 7b7aae5173..908c25172e 100644 --- a/gnu-screen/index.html +++ b/gnu-screen/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/golang/index.html b/golang/index.html index 24e2be84d4..14baa7c6e6 100644 --- a/golang/index.html +++ b/golang/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/google-cloud/index.html b/google-cloud/index.html index f84992bfbe..661f540c37 100644 --- a/google-cloud/index.html +++ b/google-cloud/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/google-earth/index.html b/google-earth/index.html index 57423ee817..ba766ca991 100644 --- a/google-earth/index.html +++ b/google-earth/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/google-sheets/index.html b/google-sheets/index.html index b003b81ccd..449b5766da 100644 --- a/google-sheets/index.html +++ b/google-sheets/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/google/index.html b/google/index.html index 682f7c8ff6..0f76e8bf1e 100644 --- a/google/index.html +++ b/google/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/graphicsmagick/index.html b/graphicsmagick/index.html index db109d9c7e..a13fae64eb 100644 --- a/graphicsmagick/index.html +++ b/graphicsmagick/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/graphql/index.html b/graphql/index.html index 345255d099..7820cc04fd 100644 --- a/graphql/index.html +++ b/graphql/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/grep/index.html b/grep/index.html index 0e1cf72fdb..01ce456035 100644 --- a/grep/index.html +++ b/grep/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/grub/index.html b/grub/index.html index c6b4dea012..be98fadbe5 100644 --- a/grub/index.html +++ b/grub/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/hadoop/index.html b/hadoop/index.html index e1f2e64b41..608966c019 100644 --- a/hadoop/index.html +++ b/hadoop/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/handbrake/index.html b/handbrake/index.html index 5e6493a99a..d5d7454d9d 100644 --- a/handbrake/index.html +++ b/handbrake/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/hashids/index.html b/hashids/index.html index a326a34779..472cf68d48 100644 --- a/hashids/index.html +++ b/hashids/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/helm/index.html b/helm/index.html index 35c4e2d58c..8ddbd9bec4 100644 --- a/helm/index.html +++ b/helm/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/home-assistant/index.html b/home-assistant/index.html index 44e186c27c..9d3970e8b9 100644 --- a/home-assistant/index.html +++ b/home-assistant/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/hp/index.html b/hp/index.html index 8883421bb9..5ed914df0a 100644 --- a/hp/index.html +++ b/hp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/htmx/index.html b/htmx/index.html index d016abe6b7..13408d0134 100644 --- a/htmx/index.html +++ b/htmx/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/htop/index.html b/htop/index.html index 6312496f9b..d59f13cff0 100644 --- a/htop/index.html +++ b/htop/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/httpstat/index.html b/httpstat/index.html index 7c77357212..5e35df190a 100644 --- a/httpstat/index.html +++ b/httpstat/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/iTunes/index.html b/iTunes/index.html index 3461d03690..804cb69683 100644 --- a/iTunes/index.html +++ b/iTunes/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/image-formats/index.html b/image-formats/index.html index bbedea4b3f..2b1c9c2c3d 100644 --- a/image-formats/index.html +++ b/image-formats/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/imagemagick/index.html b/imagemagick/index.html index 6aecf7750c..e24e90da73 100644 --- a/imagemagick/index.html +++ b/imagemagick/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/img2xterm/index.html b/img2xterm/index.html index d62f3cd21a..73debb1341 100644 --- a/img2xterm/index.html +++ b/img2xterm/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/index.html b/index.html index 96acec88b4..18514cf2a6 100644 --- a/index.html +++ b/index.html @@ -2044,6 +2044,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/inotify/index.html b/inotify/index.html index 15b80b9970..00a58a8bf6 100644 --- a/inotify/index.html +++ b/inotify/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/internet/index.html b/internet/index.html index cb8676e6b4..6cccb5809e 100644 --- a/internet/index.html +++ b/internet/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/interview/index.html b/interview/index.html index 15dcb5cfe0..df9f3e99de 100644 --- a/interview/index.html +++ b/interview/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/iotop/index.html b/iotop/index.html index 6641f68e39..01feabbf46 100644 --- a/iotop/index.html +++ b/iotop/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ip/index.html b/ip/index.html index 92f9940719..9f49c56017 100644 --- a/ip/index.html +++ b/ip/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/iperf/index.html b/iperf/index.html index 078831abd0..3bbe68a57b 100644 --- a/iperf/index.html +++ b/iperf/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ipmi/index.html b/ipmi/index.html index 649447d95f..c7db4c3c76 100644 --- a/ipmi/index.html +++ b/ipmi/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/iptables/index.html b/iptables/index.html index 47c2ea66fc..c121bde5ae 100644 --- a/iptables/index.html +++ b/iptables/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/irc/index.html b/irc/index.html index a43f358128..aa8e3299fa 100644 --- a/irc/index.html +++ b/irc/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/irssi/index.html b/irssi/index.html index d689bb5258..2f6a83c6e0 100644 --- a/irssi/index.html +++ b/irssi/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jargon/index.html b/jargon/index.html index 331de1afeb..19c6c71276 100644 --- a/jargon/index.html +++ b/jargon/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/javascript/index.html b/javascript/index.html index f69b68e77c..e4b9cb02f5 100644 --- a/javascript/index.html +++ b/javascript/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jdupes/index.html b/jdupes/index.html index 040153e6a9..9ae7a2fc66 100644 --- a/jdupes/index.html +++ b/jdupes/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jmespath/index.html b/jmespath/index.html index dab372e30a..f57cebcd2a 100644 --- a/jmespath/index.html +++ b/jmespath/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/join/index.html b/join/index.html index d978a579de..807d26cc2c 100644 --- a/join/index.html +++ b/join/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jot/index.html b/jot/index.html index 8fd27a5377..3699fa92d5 100644 --- a/jot/index.html +++ b/jot/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jpeginfo/index.html b/jpeginfo/index.html index 275bc38217..a2745d227c 100644 --- a/jpeginfo/index.html +++ b/jpeginfo/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jq/index.html b/jq/index.html index 6ef908d8ea..fa60682cd0 100644 --- a/jq/index.html +++ b/jq/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/json/index.html b/json/index.html index 22be143195..190907a8f3 100644 --- a/json/index.html +++ b/json/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jsonnet/index.html b/jsonnet/index.html index b06c0c56c6..281750bbda 100644 --- a/jsonnet/index.html +++ b/jsonnet/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jsonpath/index.html b/jsonpath/index.html index d3af55b3a9..bcd31be62a 100644 --- a/jsonpath/index.html +++ b/jsonpath/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/juniper/index.html b/juniper/index.html index 99875a1477..044c8df860 100644 --- a/juniper/index.html +++ b/juniper/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jupyter/index.html b/jupyter/index.html index 6c7cfd2d33..d539a8295e 100644 --- a/jupyter/index.html +++ b/jupyter/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/jwt/index.html b/jwt/index.html index a30c8e9a67..0ebe1f2ea5 100644 --- a/jwt/index.html +++ b/jwt/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/kaniko/index.html b/kaniko/index.html index 36471c9d99..50168d1234 100644 --- a/kaniko/index.html +++ b/kaniko/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/keel/index.html b/keel/index.html index 885c491b6b..9472f70612 100644 --- a/keel/index.html +++ b/keel/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/keybase/index.html b/keybase/index.html index b33c7bad32..970f9cfdc4 100644 --- a/keybase/index.html +++ b/keybase/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/kubernetes/index.html b/kubernetes/index.html index 185988b14f..abb456b002 100644 --- a/kubernetes/index.html +++ b/kubernetes/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/launchd/index.html b/launchd/index.html index b35ad57760..1d98054d94 100644 --- a/launchd/index.html +++ b/launchd/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ldap/index.html b/ldap/index.html index 0abe3d7fed..0e91da5eab 100644 --- a/ldap/index.html +++ b/ldap/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lego/index.html b/lego/index.html index bc30028944..08360d4f80 100644 --- a/lego/index.html +++ b/lego/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lektor/index.html b/lektor/index.html index 23ee548b2f..bbc7d030e8 100644 --- a/lektor/index.html +++ b/lektor/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/linksys/index.html b/linksys/index.html index 54d5e6b16c..0176c756ba 100644 --- a/linksys/index.html +++ b/linksys/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/linux-performance-monitoring/index.html b/linux-performance-monitoring/index.html index c15c1ba7c1..21b8b83a7d 100644 --- a/linux-performance-monitoring/index.html +++ b/linux-performance-monitoring/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/linux/index.html b/linux/index.html index 1de5f5b915..ac10647c7c 100644 --- a/linux/index.html +++ b/linux/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/logstash/index.html b/logstash/index.html index 974af00a02..e2346e5be3 100644 --- a/logstash/index.html +++ b/logstash/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lsblk/index.html b/lsblk/index.html index dbd21f4fed..2a0efc89e2 100644 --- a/lsblk/index.html +++ b/lsblk/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lshw/index.html b/lshw/index.html index 05778780ec..e627a0d215 100644 --- a/lshw/index.html +++ b/lshw/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lsof/index.html b/lsof/index.html index cb00ceea4c..14491b6507 100644 --- a/lsof/index.html +++ b/lsof/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lvm/index.html b/lvm/index.html index d913a75993..ca9a08f59b 100644 --- a/lvm/index.html +++ b/lvm/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/lxc/index.html b/lxc/index.html index 1fd0e97aba..2a23c98dda 100644 --- a/lxc/index.html +++ b/lxc/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/machine-learning/index.html b/machine-learning/index.html index 54233a8c5d..b3ce8c6dc5 100644 --- a/machine-learning/index.html +++ b/machine-learning/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/macos/index.html b/macos/index.html index 74df46702b..1357eae953 100644 --- a/macos/index.html +++ b/macos/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/make/index.html b/make/index.html index 2a685b2fc7..f20ac48492 100644 --- a/make/index.html +++ b/make/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/marlin/index.html b/marlin/index.html index 814726f827..1723b7515b 100644 --- a/marlin/index.html +++ b/marlin/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/math/index.html b/math/index.html index 74f20c90bc..740d1d7c0c 100644 --- a/math/index.html +++ b/math/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mdraid/index.html b/mdraid/index.html index 709d6c6479..c55d0f48f3 100644 --- a/mdraid/index.html +++ b/mdraid/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mechanical-keyboards/index.html b/mechanical-keyboards/index.html index b3065b3d31..2ddeb9d4b0 100644 --- a/mechanical-keyboards/index.html +++ b/mechanical-keyboards/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/metallb/index.html b/metallb/index.html index 0933e178be..9d1a7ef5a9 100644 --- a/metallb/index.html +++ b/metallb/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/microbit/index.html b/microbit/index.html index b6035d43de..9c8e14c015 100644 --- a/microbit/index.html +++ b/microbit/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/microcontrollers/index.html b/microcontrollers/index.html index df18e1bc6d..50d355aba8 100644 --- a/microcontrollers/index.html +++ b/microcontrollers/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/micropython/index.html b/micropython/index.html index 06a5baf3d9..e642487008 100644 --- a/micropython/index.html +++ b/micropython/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/minikube/index.html b/minikube/index.html index 12dd906cc7..8bb6caf964 100644 --- a/minikube/index.html +++ b/minikube/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/misc/index.html b/misc/index.html index ea84393452..2fd4a30947 100644 --- a/misc/index.html +++ b/misc/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mkdocs/index.html b/mkdocs/index.html index 214bfc3298..adedc86af1 100644 --- a/mkdocs/index.html +++ b/mkdocs/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/molecule/index.html b/molecule/index.html index 2d5be01728..313ed51385 100644 --- a/molecule/index.html +++ b/molecule/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mongodb/index.html b/mongodb/index.html index b2e2f5a836..ee556c0547 100644 --- a/mongodb/index.html +++ b/mongodb/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mqtt/index.html b/mqtt/index.html index 2eed538f78..fc766c551e 100644 --- a/mqtt/index.html +++ b/mqtt/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mutt/index.html b/mutt/index.html index ff9b5186d4..fb9411d758 100644 --- a/mutt/index.html +++ b/mutt/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/myrepos/index.html b/myrepos/index.html index 37136a34de..b290d66f75 100644 --- a/myrepos/index.html +++ b/myrepos/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/mysql/index.html b/mysql/index.html index 1df38991ae..4981f96b67 100644 --- a/mysql/index.html +++ b/mysql/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/namei/index.html b/namei/index.html index b3de38f374..9330cb3d20 100644 --- a/namei/index.html +++ b/namei/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ncftp/index.html b/ncftp/index.html index 5044db9ebf..8610c2e859 100644 --- a/ncftp/index.html +++ b/ncftp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/neopixel/index.html b/neopixel/index.html index a4c8c7a04e..977f223840 100644 --- a/neopixel/index.html +++ b/neopixel/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/netgear/index.html b/netgear/index.html index c71b67334c..c965229531 100644 --- a/netgear/index.html +++ b/netgear/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nethogs/index.html b/nethogs/index.html index ce62bcb613..93b2307f95 100644 --- a/nethogs/index.html +++ b/nethogs/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/networking/index.html b/networking/index.html index 3426708cc7..30cd5c39d1 100644 --- a/networking/index.html +++ b/networking/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/networksetup/index.html b/networksetup/index.html index 59651cd03d..7fdf0f22ed 100644 --- a/networksetup/index.html +++ b/networksetup/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/neverware/index.html b/neverware/index.html index 89a9cda89b..332141b5b8 100644 --- a/neverware/index.html +++ b/neverware/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nfs/index.html b/nfs/index.html index 534f244bdf..26e7b917b7 100644 --- a/nfs/index.html +++ b/nfs/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ngrok/index.html b/ngrok/index.html index 72cf3d7e10..45d2c127d4 100644 --- a/ngrok/index.html +++ b/ngrok/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-3ds/index.html b/nintendo-3ds/index.html index 7b491b9707..77ee1d5db6 100644 --- a/nintendo-3ds/index.html +++ b/nintendo-3ds/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-amiibo/index.html b/nintendo-amiibo/index.html index 7c9c4a511a..3c90e4670e 100644 --- a/nintendo-amiibo/index.html +++ b/nintendo-amiibo/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-nes/index.html b/nintendo-nes/index.html index c4c7a957e5..3b7781943a 100644 --- a/nintendo-nes/index.html +++ b/nintendo-nes/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-switch/index.html b/nintendo-switch/index.html index a61b1648c6..74ba61c738 100644 --- a/nintendo-switch/index.html +++ b/nintendo-switch/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-wii/index.html b/nintendo-wii/index.html index 3043e238a4..393b5fa009 100644 --- a/nintendo-wii/index.html +++ b/nintendo-wii/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-wiiu/index.html b/nintendo-wiiu/index.html index f29891ec4c..915c2ac979 100644 --- a/nintendo-wiiu/index.html +++ b/nintendo-wiiu/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ntop/index.html b/ntop/index.html index 7d0311fbe7..ad66ed586b 100644 --- a/ntop/index.html +++ b/ntop/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ntp/index.html b/ntp/index.html index 3ab40f2ade..51f95a5482 100644 --- a/ntp/index.html +++ b/ntp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/nvidia/index.html b/nvidia/index.html index 8286e74b34..5434bcdc0c 100644 --- a/nvidia/index.html +++ b/nvidia/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/openvpn/index.html b/openvpn/index.html index bafbf34be5..6a930b9554 100644 --- a/openvpn/index.html +++ b/openvpn/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/orbstack/index.html b/orbstack/index.html index 44f697b661..1030fe955f 100644 --- a/orbstack/index.html +++ b/orbstack/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/osquery/index.html b/osquery/index.html index 15dce30a5a..2cfdd1ed12 100644 --- a/osquery/index.html +++ b/osquery/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/outline/index.html b/outline/index.html index e61d4aad24..4f30180c7b 100644 --- a/outline/index.html +++ b/outline/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pac/index.html b/pac/index.html index abf1e783a3..1b0a8c4d2c 100644 --- a/pac/index.html +++ b/pac/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pandoc/index.html b/pandoc/index.html index 4354a65704..66710b9da2 100644 --- a/pandoc/index.html +++ b/pandoc/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/panopticlick/index.html b/panopticlick/index.html index 1652c513db..eceac75ccc 100644 --- a/panopticlick/index.html +++ b/panopticlick/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/passwords/index.html b/passwords/index.html index 3300a403ec..388cc42a54 100644 --- a/passwords/index.html +++ b/passwords/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/perl/index.html b/perl/index.html index c5ca0c8b4a..46a3ab04a9 100644 --- a/perl/index.html +++ b/perl/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pgp/index.html b/pgp/index.html index 988b398e80..663235c178 100644 --- a/pgp/index.html +++ b/pgp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/philips-hue/index.html b/philips-hue/index.html index 75e1d95391..9f8f1267ca 100644 --- a/philips-hue/index.html +++ b/philips-hue/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/photography/index.html b/photography/index.html index ef7bb6a231..49c054925d 100644 --- a/photography/index.html +++ b/photography/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/php/index.html b/php/index.html index d3ff13f942..4356281083 100644 --- a/php/index.html +++ b/php/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/plex/index.html b/plex/index.html index d3dd5e7a15..56ac0d7921 100644 --- a/plex/index.html +++ b/plex/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/postgres/index.html b/postgres/index.html index c674e87fff..6ce47c5b58 100644 --- a/postgres/index.html +++ b/postgres/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/powershell/index.html b/powershell/index.html index 15bc71c637..3ac3739f06 100644 --- a/powershell/index.html +++ b/powershell/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/powertop/index.html b/powertop/index.html index 33d44d24bb..0d26196583 100644 --- a/powertop/index.html +++ b/powertop/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/procurve/index.html b/procurve/index.html index b47b81e209..fd4f22d3cd 100644 --- a/procurve/index.html +++ b/procurve/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/prometheus/index.html b/prometheus/index.html index 6c233c7727..9199fcfb8b 100644 --- a/prometheus/index.html +++ b/prometheus/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/protobuf/index.html b/protobuf/index.html index 9d688f0488..208afaed28 100644 --- a/protobuf/index.html +++ b/protobuf/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ps/index.html b/ps/index.html index 7ddf4a355b..1179eb3da5 100644 --- a/ps/index.html +++ b/ps/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ps_mem/index.html b/ps_mem/index.html index 3f6c779c88..12d61fc28c 100644 --- a/ps_mem/index.html +++ b/ps_mem/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/psp/index.html b/psp/index.html index bdf969a91b..80d39d7f6d 100644 --- a/psp/index.html +++ b/psp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pssh/index.html b/pssh/index.html index 4c9d03e0a9..6a26b4119f 100644 --- a/pssh/index.html +++ b/pssh/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ptp/index.html b/ptp/index.html index 5adda4578e..e9e0245eac 100644 --- a/ptp/index.html +++ b/ptp/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/puppet/index.html b/puppet/index.html index 071c291884..402cbdb2b7 100644 --- a/puppet/index.html +++ b/puppet/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pv/index.html b/pv/index.html index 692b380c6e..89333ff7a3 100644 --- a/pv/index.html +++ b/pv/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/pytest/index.html b/pytest/index.html index 99db6789bb..b30d2dd989 100644 --- a/pytest/index.html +++ b/pytest/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/python/index.html b/python/index.html index f0e073bbe9..d3f404619c 100644 --- a/python/index.html +++ b/python/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/q/index.html b/q/index.html index 76a182679e..0f0b5fc3fe 100644 --- a/q/index.html +++ b/q/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/raspberry-pi/index.html b/raspberry-pi/index.html index e0e2512d97..d0ed156f2a 100644 --- a/raspberry-pi/index.html +++ b/raspberry-pi/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/redis/index.html b/redis/index.html index f11a2588bb..15133a57f8 100644 --- a/redis/index.html +++ b/redis/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/retropie/index.html b/retropie/index.html index 27d19d5944..9f75181fff 100644 --- a/retropie/index.html +++ b/retropie/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rhel/index.html b/rhel/index.html index 302904855a..d1aa153bc7 100644 --- a/rhel/index.html +++ b/rhel/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/robotics/index.html b/robotics/index.html index 8197bf3972..a6204f973d 100644 --- a/robotics/index.html +++ b/robotics/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/roku/index.html b/roku/index.html index d5dea5556a..5866ade147 100644 --- a/roku/index.html +++ b/roku/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rook/index.html b/rook/index.html index 7cd634c9c3..91ad17f70a 100644 --- a/rook/index.html +++ b/rook/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/ros/index.html b/ros/index.html index 9132c35ba0..e1f76478d8 100644 --- a/ros/index.html +++ b/ros/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rpm/index.html b/rpm/index.html index c628a420ac..fd0f315ad2 100644 --- a/rpm/index.html +++ b/rpm/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rrd/index.html b/rrd/index.html index 8fe6e88df7..31044a95ba 100644 --- a/rrd/index.html +++ b/rrd/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rst/index.html b/rst/index.html index 723e808736..4e87fc56f9 100644 --- a/rst/index.html +++ b/rst/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rsync/index.html b/rsync/index.html index ce572bd038..6321b6a8d5 100644 --- a/rsync/index.html +++ b/rsync/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/rust/index.html b/rust/index.html index b0988528f3..820b8902c6 100644 --- a/rust/index.html +++ b/rust/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/saltstack/index.html b/saltstack/index.html index fab2b10723..39671aba97 100644 --- a/saltstack/index.html +++ b/saltstack/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/samba/index.html b/samba/index.html index 465369ec66..7f2ca4b4a5 100644 --- a/samba/index.html +++ b/samba/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/samsung/index.html b/samsung/index.html index 3d641869a8..2c2e36cde0 100644 --- a/samsung/index.html +++ b/samsung/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/screenshot/index.html b/screenshot/index.html index eeefe0038e..ee202fe53a 100644 --- a/screenshot/index.html +++ b/screenshot/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/sdr/index.html b/sdr/index.html index 78f052ec6a..476edb4080 100644 --- a/sdr/index.html +++ b/sdr/index.html @@ -2036,6 +2036,26 @@ +
  • + + + + + Flipper Zero + + + + +
  • + + + + + + + + +
  • diff --git a/search/search_index.json b/search/search_index.json index f2a7185eec..1469b98f1a 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"About these notes","text":"

    These are notes I've taken on technologies that I have used or would like to use.

    These notes started out some time before 2005 in VoodooPad 2. In December 2005 I discovered that you could self-host MediaWiki, so I moved my content into a private MediaWiki installation. Both VoodooPad and self-hosted MediaWiki worked fine for me, but as my notes became more useful and I wanted to show different sections to people in a way that let them discover useful content, the private nature of my self-hosted MediaWiki installation became problematic. MediaWiki also had the problem of being hosted by a web service, which meant it was not possible to access or edit content when my laptop was offline. I solved this for a while by running MediaWiki in a VM on my laptop, but that meant I couldn't access notes from other computers if my laptop was offline, and it meant I had a VM running at all time just to serve notes, which wasted a lot of resources. In 2015 I decided to move out of MediaWiki into markdown files in git, and in 2016 I began using mkdocs to publish these notes publicly to github pages.

    Since 2016, these notes are rendered from markdown files and published to github-pages using mkdocs gh-deploy. If you have suggestions, please open a github issue. Please do not submit PRs.

    • https://danielhoherd.github.io/tech-notes/
    • https://github.com/danielhoherd/tech-notes
    "},{"location":"3d-printing/","title":"3D Printing","text":""},{"location":"3d-printing/#links","title":"Links","text":"
    • https://www.makerbot.com
    • http://www.meshlab.net: \"the open source system for processing and editing 3D triangular meshes.\"
    • https://www.thingiverse.com
    • https://all3dp.com/1/petg-filament-3d-printing/
    • https://www.monoprice.com/product?p_id=33820: Monoprice MP Voxel 3D Printer
    • https://www.shapeways.com/materials
    • https://cadquery.readthedocs.io: \"CadQuery is an intuitive, easy-to-use Python library for building parametric 3D CAD models.\"
    • https://www.prusa3d.com/category/original-prusa-i3-mk3s
    • https://youtu.be/ibsOYzXduYc: Ender 3 Pro build
    • https://youtu.be/_EfWVUJjBdA: Ender 3 Pro bed leveling
    • https://youtu.be/kG_YKeJDaX8: Ender 3 Pro mods
    • https://www.3dbenchy.com/features
    • https://ultimaker.com/software/ultimaker-cura
    • https://teachingtechyt.github.io: \"Teaching Tech 3D Printer Site\"
    "},{"location":"3d-printing/#see-also","title":"See Also","text":"
    • Marlin
    "},{"location":"airflow/","title":"Airflow","text":"

    \"Airflow is a platform created by the community to programmatically author, schedule and monitor workflows.\" - https://airflow.apache.org/

    "},{"location":"airflow/#links","title":"Links","text":"
    • https://airflow.apache.org/docs/stable/concepts.html
    • https://airflow.readthedocs.io/en/latest/executor/kubernetes.html
    • https://www.astronomer.io/blog/dag-writing-best-practices-in-apache-airflow / https://youtu.be/HvjnLCQygO4
    "},{"location":"airport/","title":"Apple Airport","text":"

    Apple Airport hardware was discontinued in November 2016.

    "},{"location":"airport/#using-old-airport-utility-apps-with-new-versions-of-os-x","title":"Using old Airport Utility apps with new versions of OS X","text":"
    • https://zcs.zyniker.org/airport-utility-v5-6-1
    • https://support.apple.com/kb/DL1536

    Or use the 5.6.1 Utility in Windows? Not sure if this works.

    • https://support.apple.com/kb/dl1547
    "},{"location":"amazon/","title":"Amazon","text":"

    Mostly related to the technological offerings of Amazon, not the shopping experience.

    "},{"location":"amazon/#kindle","title":"Kindle","text":"
    • https://blog.lidskialf.net/2021/02/08/turning-an-old-kindle-into-a-eink-development-platform/
    • https://wiki.mobileread.com/wiki/Kindle_Hacks_Information
    • https://goodereader.com/blog/kindle/interesting-ways-to-infuse-new-life-to-old-kindle-ereader-devices
    "},{"location":"amazon/#aws","title":"AWS","text":"

    \"Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.\" - https://aws.amazon.com/ec2/

    "},{"location":"amazon/#cloudformation","title":"Cloudformation","text":"

    cloudformation has its own notes page.

    "},{"location":"amazon/#links","title":"Links","text":"
    • Amazon EC2 Instance Types
    • Amazon service availability by region
    • awless - awless is a powerful, innovative and small surface command line interface (CLI) to manage Amazon Web Services.
    • AWS Console
    • AWS in plain english
    • EC2Instances.info - Easy Amazon EC2 Instance Comparison
    • Github - Troposphere
    • localstack - A fully functional local AWS cloud stack for use in development.
    • s3toosl - Command Line S3 Client and Backup
    • https://aws.amazon.com/answers/account-management/aws-tagging-strategies/
    "},{"location":"amazon/#tips","title":"Tips","text":""},{"location":"amazon/#determine-if-you-are-on-an-ec2-instance","title":"Determine if you are on an EC2 instance","text":"
    grep -i '^ec2' /sys/hypervisor/uuid\n
    "},{"location":"amazon/#reformat-accesskeyscsv-into-awscredentials-format","title":"Reformat accessKeys.csv into .aws/credentials format","text":"
    awk -F, 'BEGIN { print \"[temp_name]\" ; } !/Access/ {print \"aws_access_key_id = \"$1\"\\naws_secret_access_key = \"$2}' ~/Downloads/accessKeys.csv\n
    "},{"location":"amazon/#force-reset-mfa-credentials","title":"Force reset mfa credentials","text":"

    https://github.com/broamski/aws-mfa

    aws-mfa --device arn:aws:iam::$UID:mfa/$USER --force\n
    "},{"location":"amazon/#create-eks-cluster-from-cli","title":"Create eks cluster from cli","text":"

    https://github.com/weaveworks/eksctl

    eksctl create cluster\n
    "},{"location":"amazon/#get-eks-cluster-config","title":"Get eks cluster config","text":"
    # find your cluster name\naws eks list-clusters | jq -r '.clusters[]'\n\n# configure the current KUBECONFIG for the given cluster\naws eks update-kubeconfig --name the_cluster_name\n
    "},{"location":"amazon/#see-also","title":"See Also","text":"
    • aws cli
    • CloudFormation
    • AWS Glossary
    "},{"location":"ansible/","title":"Ansible","text":"
    • https://docs.ansible.com/intro_inventory.html
    • https://docs.ansible.com/playbooks_best_practices.html
    • https://galaxy.ansible.com
    • https://www.azavea.com/blogs/labs/2014/10/creating-ansible-roles-from-scratch-part-1
    • https://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/
    • https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html: Targeting hosts
    • https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
    • https://zwischenzugs.com/2021/08/27/five-ansible-techniques-i-wish-id-known-earlier
    "},{"location":"ansible/#modules","title":"Modules","text":"
    • https://docs.ansible.com/ansible/latest/collections/ansible/builtin/#modules
    • https://docs.ansible.com/ansible/latest/modules/apt_module.html
    • https://docs.ansible.com/ansible/latest/modules/apt_repository_module.html
    • https://docs.ansible.com/ansible/latest/modules/sysctl_module.html
    • https://docs.ansible.com/ansible/latest/modules/user_module.html
    "},{"location":"ansible/#see-also","title":"See also","text":"
    • Molecule: testing of Ansible roles
    "},{"location":"ansible/#examples","title":"Examples","text":""},{"location":"ansible/#generate-a-copy-block-for-a-given-file","title":"Generate a copy block for a given file","text":"

    Not perfect because the output is json, but json is yaml and easy enough to fix up quickly.

    ## stat -c '{\"copy\": {\"src\": \"SOURCE_FILE_NAME\", \"dest\": \"%n\", \"mode\": \"0%a\", \"owner\": \"%U\", \"group\": \"%G\"}}' /etc/logrotate.d/backup | jq .\n{\n  \"copy\": {\n    \"src\": \"SOURCE_FILE_NAME\",\n    \"dest\": \"/etc/logrotate.d/backup\",\n    \"mode\": \"0644\",\n    \"owner\": \"root\",\n    \"group\": \"root\"\n  }\n}\n
    "},{"location":"ansible/#show-a-list-of-installed-modules","title":"Show a list of installed modules","text":"
    ansible-doc --list\n
    "},{"location":"ansible/#run-a-playbook-and-prompt-for-sudo-password","title":"Run a playbook and prompt for sudo password","text":"
    ansible-playbook --ask-become-pass -i inventory/hosts.yaml create_users.yaml\n
    "},{"location":"ansible/#run-an-ad-hoc-command","title":"Run an ad-hoc command","text":"

    You can run one-off ad-hoc commands by passing a module and args to the module.

    ansible localhost \\\n  -m get_url \\\n  -a \"mode=755\n    url=https://github.com/bcicen/ctop/releases/download/v0.7.1/ctop-0.7.1-linux-amd64\n    dest=/usr/local/bin/ctop\n    checksum=sha256:38cfd92618ba2d92e0e1262c0c43d7690074b4b8dc77844b654f8e565166b577\n    owner=root\n    group=root\"\n
    "},{"location":"ansible/#validate-and-inspect-your-inventory-file","title":"Validate and inspect your inventory file","text":"

    This command parses your inventory and group_vars and outputs a json data structure if no syntax faults are found.

    ansible-inventory -i inventory/hosts.yml --list\n
    "},{"location":"ansible/#use-arbitrary-groups-in-static-inventory-file","title":"Use arbitrary groups in static inventory file","text":"
    $ nl -w 2 -s ' ' -ba inventory/example.yml\n 1 all:\n 2   hosts:\n 3     client:\n 4       ansible_host: 192.168.1.2\n 5     server:\n 6       ansible_host: 192.168.2.3\n 7\n 8 linux:\n 9   hosts:\n10     server:\n11\n12 windows:\n13   hosts:\n14     client:\n15\n16 california:\n17   hosts:\n18     client:\n19     server:\n$ ansible-inventory -i inventory/example.yml --graph\n@all:\n  |--@california:\n  |  |--client\n  |  |--server\n  |--@linux:\n  |  |--server\n  |--@windows:\n  |  |--client\n
    "},{"location":"ansible/#merge-multiple-inventory-files","title":"Merge multiple inventory files","text":"

    The below example gives higher precedence to the later files.

    ## cat foo.yml\nall:\n  hosts:\n    client:\n      ansible_host: 192.168.1.2\n      service_hostname: hostname-from-file-1\n    server:\n      ansible_host: 192.168.2.3\n      file_number: one\n\n## cat bar.yml\nall:\n  hosts:\n    client:\n      ansible_host: 10.1.2.3\n    server:\n      ansible_host: 10.2.3.4\n      file_number: two\n\n## ansible-inventory -i foo.yml -i bar.yml --list | json-to-yaml.py\n_meta:\n  hostvars:\n    client:\n      ansible_host: 10.1.2.3\n      service_hostname: hostname-from-file-1\n    server:\n      ansible_host: 10.2.3.4\n      file_number: two\nall:\n  children:\n  - ungrouped\nungrouped:\n  hosts:\n  - client\n  - server\n
    "},{"location":"ansible/#show-all-resolved-variables-for-a-given-inventory-host","title":"Show all resolved variables for a given inventory host","text":"

    This wisll show all host vars, including variables resolved from all the different variable locations.

    ansible -i inventory target_hostname -m debug -a \"var=hostvars[inventory_hostname]\"\n
    "},{"location":"ansible/#gather-all-facts-and-save-them-to-files","title":"Gather all facts and save them to files","text":"

    This will create a directory called facts and save results as one json file per host.

    ansible -i inventory target_group_or_hostname -m gather_facts --tree host_facts\n
    "},{"location":"ansible/#generate-an-deterministic-random-number","title":"Generate an deterministic random number","text":"

    This is similar to the Puppet fqdn_rand() function, which is really useful to splay cron jobs. Splaying cron jobs avoids the thundering herd problem by spreading the jobs out over time with deterministic randomness.

    ---\n## defaults/main.yml\n\ndemo_cron_minute: \"{{ 59 | random(seed=inventory_hostname) }}\"\ndemo_cron_hour: \"{{ 23 | random(seed=inventory_hostname) }}\"\n

    See also: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#randomizing-data

    "},{"location":"ansible/#simple-ansible-playbook","title":"Simple ansible playbook","text":"

    This may be useful for testing syntax and experimenting with ansible modules.

    ---\n## playbook.yml\n\n- name: A local play\n  hosts: localhost\n  connection: local\n  gather_facts: no\n  tasks:\n    - name: Run cmd\n      shell: /bin/date\n      register: cmd_out\n\n    - debug:\n        var: cmd_out.stdout\n

    ansible-playbook -i localhost playbook.yml

    Slightly more complicated example:

    ## playbook.yml\n## run with: ansible-playbook -i localhost playbook.yml\n\n- name: A local play\n  hosts: localhost\n  connection: local\n  gather_facts: no\n  vars:\n    region: test_region\n    subnets:\n      - subnet_name: Public_2a\n        subnet_cidr: 192.168.100.0/26\n        subnet_az: \"{{ region }}_a\"\n      - subnet_name: Public_2b\n        subnet_cidr: 192.168.100.64/26\n        subnet_az: \"{{ region }}_b\"\n      - subnet_name: Private_2a\n        subnet_cidr: 192.168.100.128/26\n        subnet_az: \"{{ region }}_a\"\n      - subnet_name: Private_2b\n        subnet_cidr: 192.168.100.192/26\n        subnet_az: \"{{ region }}_b\"\n\n  tasks:\n    - name: Run cmd\n      shell: echo \"{{ item.subnet_name }} {{ item.subnet_cidr }} {{ item.subnet_az }}\"\n      register: cmd_out\n      loop: \"{{ subnets }}\"\n\n    - debug:\n        var: cmd_out\n
    "},{"location":"ansible/#get-a-list-of-failed-hosts","title":"Get a list of failed hosts","text":"
    {{ ansible_play_hosts_all | difference(ansible_play_hosts) }}\n
    "},{"location":"ansible/#links","title":"Links","text":"
    • https://github.com/danielhoherd/ansible-playground: Examples I've made of Ansible techniques
    • Ansible Tests with Molecule - https://molecule.readthedocs.io/en/latest/ / https://www.digitalocean.com/community/tutorials/how-to-test-ansible-roles-with-molecule
    • Molecule sequence of scenario events - https://molecule.readthedocs.io/en/latest/configuration.html#scenario
    • Test-driven infrastructure development with Ansible & Molecule - https://blog.codecentric.de/en/2018/12/test-driven-infrastructure-ansible-molecule/ / https://github.com/jonashackt/molecule-ansible-docker-vagrant
    • Testkitchen modules (for Molecule tests): https://testinfra.readthedocs.io/en/latest/modules.html
    • https://www.hashicorp.com/resources/ansible-terraform-better-together
    "},{"location":"apfs/","title":"Apple APFS","text":"

    A lot of notes here are as of macOS 10.13, and don't apply specifically to any other devices that run APFS.

    APFS got some big bumps in macOS 12, including big snapshot improvements.

    "},{"location":"apfs/#usage","title":"Usage","text":"
    $ diskutil apfs\n2017-11-04 18:23:55-0700\nUsage:  diskutil [quiet] ap[fs] <verb> <options>\n        where <verb> is as follows:\n\n     list                (Show status of all current APFS Containers)\n     convert             (Nondestructively convert from HFS to APFS)\n     create              (Create a new APFS Container with one APFS Volume)\n     createContainer     (Create a new empty APFS Container)\n     deleteContainer     (Delete an APFS Container and reformat disks to HFS)\n     resizeContainer     (Resize an APFS Container and its disk space usage)\n     addVolume           (Export a new APFS Volume from an APFS Container)\n     deleteVolume        (Remove an APFS Volume from its APFS Container)\n     eraseVolume         (Erase contents of, but keep, an APFS Volume)\n     changeVolumeRole    (Change the Role metadata bits of an APFS Volume)\n     unlockVolume        (Unlock an encrypted APFS Volume which is locked)\n     lockVolume          (Lock an encrypted APFS Volume (diskutil unmount))\n     listCryptoUsers     (List cryptographic users of encrypted APFS Volume)\n     changePassphrase    (Change the passphrase of a cryptographic user)\n     setPassphraseHint   (Set or clear passphrase hint of a cryptographic user)\n     encryptVolume       (Start async encryption of an unencrypted APFS Volume)\n     decryptVolume       (Start async decryption of an encrypted APFS Volume)\n     updatePreboot       (Update the APFS Volume's related APFS Preboot Volume)\n\ndiskutil apfs <verb> with no options will provide help on that verb\n
    "},{"location":"apfs/#file-clones","title":"File clones","text":"

    APFS supports deduplicated file copies, which it calls clonefiles. Copying a file by option-dragging it in Finder creates a clonefile. To create a clonefile on the CLI use cp -c src dst. Creating clonefiless of any size file is instantaneous because no file data is actually being copied. This differs from hard links because if you modify the clone, only the new blocks will be written to disk, and the source of the cloned file will not be modified.

    "},{"location":"apfs/#snapshots","title":"Snapshots","text":"

    Snapshots appear to be tied pretty directly to Time Machine, and do not appear to be general purpose. There appear to be many limitations in how they can be used, and what information you can get about them.

    There was previously a tool called apfs_snapshot but it was removed before macOS 10.13 was released.

    "},{"location":"apfs/#create-a-snapshot","title":"Create a snapshot","text":"

    You cannot choose a name for your snapshot, it is tied to the date the snapshot was taken in the form of YYYY-MM-DD-HHMMSS, or date \"+%Y-%m-%d-%H%M%S\"

    $ sudo tmutil localsnapshot\nNOTE: local snapshots are considered purgeable and may be removed at any time by deleted(8).\nCreated local snapshot with date: 2021-08-23-101843\n
    "},{"location":"apfs/#show-snapshots","title":"Show snapshots","text":"
    $ sudo tmutil listlocalsnapshots /\ncom.apple.TimeMachine.2017-11-01-161748\ncom.apple.TimeMachine.2017-11-02-100755\ncom.apple.TimeMachine.2017-11-03-084837\ncom.apple.TimeMachine.2017-11-04-182813\n
    "},{"location":"apfs/#mount-a-snapshot","title":"Mount a snapshot","text":"

    The easiest way to mount snapshots is to open Time Machine.app and browse backwards in time. This will mount your snapshots at /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/$HOSTNAME/$SNAPSHOT_DATE/Data or a similar path.

    If you just want to mount a single snapshot, fill in $snapshot_name using one of the lines from tmutil listlocalsnapshots /, then:

    mkdir apfs_snap\nmount_apfs -o nobrowse,ro -s \"$snapshot_name\" /System/Volumes/data \"$PWD/apfs_snap\"\n

    Older version of macOS have a slightly different syntax

    mkdir apfs_snap\nsudo mount_apfs -s \"$snapshot_name\" / \"${PWD}/apfs_snap\"\n
    "},{"location":"apfs/#delete-a-snapshot","title":"Delete a snapshot","text":"

    You can only delete snapshots based off of their date.

    $ sudo tmutil deletelocalsnapshots 2017-11-04-183813\nDeleted local snapshot '2017-11-04-183813'\n
    "},{"location":"apfs/#delete-all-snapshots","title":"Delete all snapshots","text":"
    /usr/bin/tmutil listlocalsnapshots / |\ngrep -oE '2[0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{6}'\nwhile read -r snap ; do\n  tmutil deletelocalsnapshots \"${snap##*.}\"\ndone\n
    "},{"location":"apfs/#thin-out-snapshots","title":"Thin out snapshots","text":"

    On the given drive, reclaim the given space by thinning out snapshots. As of tmutil 4.0.0, you cannot use any data unit other than bytes. (EG: 1G or 1GB will not work)

    $ sudo tmutil thinlocalsnapshots / 250000000\nThinned local snapshots:\n2017-11-04-184425\n2017-11-04-184433\n2017-11-04-184440\n
    "},{"location":"apfs/#see-also","title":"See also","text":"
    /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_invert\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_preflight_converter\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_stats\n
    "},{"location":"apfs/#links","title":"Links","text":"
    • Apple File System
    • Rich Trouton - Storing our digital lives - Mac filesystems from MFS to APFS
    • Apple File System Guide
    • Russ Bishop - Apple File System
    • A ZFS developer\u2019s analysis of the good and bad in Apple\u2019s new APFS file system
    • https://www.jinx.de/zfs/hfsfailure.html - Demo of how awful HFS+ is at detecting failures
    • https://eclecticlight.co/2021/11/09/disk-utility-now-has-full-features-for-managing-snapshots/
    "},{"location":"aptly/","title":"Aptly","text":"
    • \"Aptly is a swiss army knife for Debian repository management.\"
    • https://github.com/sepulworld/aptly-vagrant
    "},{"location":"aria2/","title":"Aria2","text":"

    \"aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.\" - https://aria2.github.io/

    Of particular interest is the ability to download a single file from multiple sources, even using multiple protocols, to have increased download speed.

    "},{"location":"aria2/#examples","title":"Examples","text":""},{"location":"aria2/#download-a-file-in-place","title":"Download a file in place","text":"

    This command can be canceled and given again to resume the file download.

    ## -x5 Connect once to each server\n## -c Continue a partially downloaded file (HTTP/FTP)\n## --file-allocation=none Do not pre-allocate disk space for the file (begin downloading immediately. see man page for more options.)\n## --max-overall-download-limit=3 (K = 1024, M = 1024K)\n## --max-download-limit=1M per connection speed limits\naria2c -x5 -c --file-allocation=none --max-overall-download-limit=3 --max-download-limit=1M http://example.com/foo.iso\n
    "},{"location":"aria2/#see-also","title":"See Also","text":"
    • curl
    • httpstat - download and show a some useful connection information
    • wget
    "},{"location":"arpwatch/","title":"arpwatch","text":"

    \"arpwatch - keep track of ethernet/ip address pairings\" - man arpwatch

    "},{"location":"arpwatch/#examples","title":"Examples","text":""},{"location":"arpwatch/#fork-and-log-to-file-not-to-e-mail","title":"Fork and log to file, not to e-mail","text":"
    arpwatch -Q\ntail -F /var/lib/arpwatch/arp.dat\n
    "},{"location":"atomicparsley/","title":"AtomicParsley","text":"

    AtomicParsley is a lightweight command line program for reading, parsing and setting metadata into MPEG-4 files. This is a functional mp4 equivalent of what i3dv2 is for mp3 files.

    "},{"location":"atomicparsley/#examples","title":"Examples","text":""},{"location":"atomicparsley/#set-metadata-on-multiple-files","title":"Set metadata on multiple files","text":"

    Unfortunately the syntax of this tool requires you to edit one file at a time, so you have to iterate each item of an album using shell loops or xargs or whatever you prefer.

    for file in *.m4a ; do\n  AtomicParsley \"${file}\" --artist \"Various Artists\" ;\ndone ;\n
    "},{"location":"atomicparsley/#remove-personally-identifiable-information-pii-from-files","title":"Remove Personally Identifiable Information (pii) from files","text":"

    Useful if you want to remove your personal info from iTunes Match files.

    for file in *.m4a ; do\n  AtomicParsley \\\n    \"$file\" \\\n    --DeepScan \\\n    --manualAtomRemove \"moov.trak.mdia.minf.stbl.mp4a.pinf\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.----.name:[iTunMOVI]\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.apID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.atID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.cnID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.cprt\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.flvr\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.geID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.plID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.purd\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.rtng\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.sfID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.soal\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.stik\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.xid\" \\\ndone\n
    "},{"location":"automotive/","title":"Automotive","text":""},{"location":"automotive/#links","title":"Links","text":"
    • Autonomous Vehicles
    • https://ciechanow.ski/internal-combustion-engine
    • http://animatedengines.com
    • Animagraffs - How a Car Engine Works
    "},{"location":"autonomous-vehicles/","title":"Autonomous Vehicle Links","text":""},{"location":"autonomous-vehicles/#terms","title":"Terms","text":"
    • ACES: Automated, Connected, Electric, Shared
    • Levels: Refers to the 6 levels of autonomous vehicles
    • SAE: Society of Automotive Engineers
    "},{"location":"autonomous-vehicles/#autonomy-levels","title":"Autonomy Levels","text":"
    • L0: No automation. Human performs all operations. Base cost.
    • L1: Driver assistance. Human performs most driving operations, system can perform steering OR speed controls. Increased cost.
    • L2: Partial automation. Human performs most driving operations, system can perform steering AND speed controls. Increased cost.
    • L3: Conditional automation. System can perform all driving operations, human must be available to intervene in complex situations. Increased cost.
    • L4: High automation. System can perform all driving operations. Complex situations do not require a human to intervene but intervention is still an option. Decreased cost.
    • L5: Full automation. System performs all driving operations. Humans are all passengers with no requirement to intervene. Decreased cost.
    "},{"location":"autonomous-vehicles/#links","title":"Links","text":"
    • https://apollo.auto
    • https://automotivelinux.org
    • https://autonomoustuff.com
    • https://www.autosar.org
    • https://avs.auto/demo/index.html
    • https://en.wikipedia.org/wiki/ISO_26262
    • https://en.wikipedia.org/wiki/Units_of_transportation_measurement
    • https://github.com/visgl/deck.gl
    • https://renovo.auto dead link, acquired by https://woven.toyota
    • https://ros.org
    • https://some-ip.com
    • https://kevinchen.co/blog/autonomous-trucking-harder-than-rideshare (2024)
    "},{"location":"avahi/","title":"Avahi","text":"

    The Avahi mDNS/DNS-SD daemon implements Multicast DNS like Apple's Zeroconf architecture (also known as \"Rendezvous\" or \"Bonjour\").

    "},{"location":"avahi/#tips","title":"Tips","text":"

    After installing avahi-daemon it may not start. To fix this you may need to run service messagebus start

    Service types are defined in /usr/share/avahi/service-types

    "},{"location":"avahi/#service-configs","title":"Service configs","text":"

    Correctly formatted and named files in /etc/avahi/services/whatever.service are loaded on the fly, no need to restart avahi-daemon. If your service doesn't immediately show up, check syslog for errors.

    <?xml version=\"1.0\" standalone='no'?><!--*-nxml-*-->\n<!DOCTYPE service-group SYSTEM \"avahi-service.dtd\">\n<service-group>\n  <name replace-wildcards=\"yes\">%h</name>\n  <service>\n    <type>_ssh._tcp</type>\n    <port>22</port>\n  </service>\n  <service>\n    <type>_http._tcp</type>\n    <port>80</port>\n  </service>\n</service-group>\n
    "},{"location":"awk/","title":"awk","text":"

    \"pattern-directed scanning and processing language\" - man awk

    "},{"location":"awk/#examples","title":"Examples","text":"

    Some of these require GNU awk.

    "},{"location":"awk/#print-the-first-column-of-a-file","title":"Print the first column of a file","text":"
    awk '${print $1}' filename.txt\n
    "},{"location":"awk/#print-column-2-if-column-1-matches-a-string","title":"Print column 2 if column 1 matches a string","text":"
    ps aux | awk '$1 == \"root\" {print $2}'\n
    "},{"location":"awk/#pass-in-a-variable-and-value","title":"Pass in a variable and value","text":"
    ps | awk -v host=\"$HOSTNAME\" '{print host,$0}'\n
    "},{"location":"awk/#sort-a-file-by-line-lengths","title":"Sort a file by line lengths","text":"
    awk '{print length, $0}' testfile.txt | sort -n\n
    "},{"location":"awk/#tdl-to-csv","title":"TDL to CSV","text":"
    awk '{gsub(\"\\t\",\"\\\",\\\"\",$0); print;}' | sed 's#^#\"#;s#$#\"#;'\n
    "},{"location":"awk/#print-the-first-column-of-every-other-line","title":"Print the first column of every other line","text":"

    % is the modulus operator, which finds the remainder after an integer divide.

    awk 'NR % 2 == 0 { print $1 }'\n
    "},{"location":"awk/#print-only-even-numbered-lines","title":"Print only even numbered lines","text":"
    ls | awk 'NR % 2 == 0 { print $0 }'\n
    "},{"location":"awk/#print-only-odd-numbered-lines","title":"Print only odd numbered lines","text":"
    ls | awk 'NR % 2 != 0 { print $0 }'\n
    "},{"location":"awk/#print-even-numbered-lines-on-the-same-line-before-odd-numbered-lines","title":"Print even numbered lines on the same line before odd numbered lines","text":"
    awk '{if (NR%2==0) { print $0 \" \" prev } else { prev=$0 }}'\n
    "},{"location":"awk/#print-sum-all-the-first-columns-of-each-line-in-a-file","title":"Print sum all the first columns of each line in a file","text":"
    awk '{sum += $1} END {print sum}' filename\n
    "},{"location":"awk/#print-count-sum-and-average-of-the-first-column-of-stdin","title":"Print count, sum, and average of the first column of stdin","text":"
    for _ in {1..100} ; do echo $((RANDOM % 100)) ; done |\nawk '{sum += $1} END {avg = sum/NR ; printf \"Count:   %s\\nSum:     %s\\nAverage: %s\\n\", NR, sum, avg}'\n
    "},{"location":"awk/#split-file-by-recurring-string","title":"Split file by recurring string","text":"

    This will create a new file every time the string \"SERVER\" is found, essentially splitting the file by that string. Concatenating all of the output files would create the original file (potentially adding an extra newline).

    awk '/SERVER/{n++}{print >\"out\" sprintf(\"%02d\", n) \".txt\" }' example.txt\n
    "},{"location":"awk/#show-count-of-syslog-messages-per-minute","title":"Show count of syslog messages per minute","text":"
    awk -F: {'print $1 `\u201c`:`\u201d` $2'} /var/log/messages |uniq -c\n
    "},{"location":"awk/#show-count-of-root-logins-per-minute","title":"Show count of root logins per minute","text":"
    awk -F: '/root/{print $1 \":\" $2}' /var/log/auth.log |uniq -c\n
    "},{"location":"awk/#print-lines-in-ls-where-uid-is-numeric","title":"Print lines in ls where UID is numeric","text":"
    ls -la | awk '$3 ~/[0-9]/{print}'\n
    "},{"location":"awk/#show-only-zfs-snapshots-whose-size-is-zero","title":"Show only zfs snapshots whose size is zero","text":"
    zfs list -t snapshot | awk '$2 == 0'\n
    "},{"location":"awk/#print-a-line-if-the-third-field-does-not-match-a-regex","title":"Print a line if the third field does not match a regex","text":"
    tcpdump -r ops1prod-syn.cap | sort -k2 | awk '$3 !~ /ztmis.prod/ { print }'\n
    "},{"location":"awk/#show-500-errors-in-a-standard-apache-access-log","title":"Show 500 errors in a standard apache access log","text":"
    awk '$9 ~ /5[0-9][0-9]/' www_zoosk_access.log\n
    "},{"location":"awk/#show-total-rss-and-vsz-count-for-all-cronolog-processes","title":"Show total rss and vsz count for all cronolog processes","text":"
    ps aux |\n  grep -i cronolo[g] |\n  awk '{vsz += $5; rss += $6} END {print \"vsz total = \"vsz ; print \"rss total = \"rss}'\n
    "},{"location":"awk/#get-ipv4-address-on-bsdosx","title":"Get IPv4 address on BSD/OSX","text":"
    ifconfig | awk '$1 == \"inet\" && $2 != \"127.0.0.1\" {print $2}'\n
    "},{"location":"awk/#get-ipv6-address-on-bsdosx","title":"Get IPv6 address on BSD/OSX","text":"
    ifconfig | awk '$1 == \"inet6\" && $2 !~ \"::1|.*lo\" {print $2}'\n
    "},{"location":"awk/#print-the-last-element","title":"Print the last element","text":"
    ls -la | awk -F\" \" '{print $NF}'\n
    "},{"location":"awk/#print-2nd-to-last-element","title":"Print 2nd to last element","text":"
    ls -la | awk -F\" \" '{print $(NF - 1)}'\n
    "},{"location":"awk/#print-the-previous-line-on-string-match","title":"Print the previous line on string match","text":"

    This works by storing the previous line. If the current line matches the regex, the previous line is printed from the stored value.

    $ awk '/32 host/ { print previous_line } {previous_line=$0}' /proc/net/fib_trie | column -t | sort -u\n|--  10.134.243.137\n|--  127.0.0.1\n|--  169.50.9.172\n
    "},{"location":"awk/#add-content-to-line-1-if-there-is-no-match","title":"Add content to line 1 if there is no match","text":"

    This adds a yaml document separator to the beginning of all yaml files in the current directory only if it does not already have one.

    tempfile=$(mktemp)\nfor file in ./*.yaml ; do\n  awk 'NR == 1 && $0 != \"---\" {print \"---\"} {print}' \"${file}\" > \"${tempfile}\" \\\n  && mv \"${tempfile}\" \"${file}\"\ndone\n
    "},{"location":"awk/#show-all-docker-images-in-a-helm-chart-and-their-https-links","title":"Show all docker images in a helm chart and their https links","text":"
    helm template . --set global.baseDomain=foo.com -f /Users/danielh/a/google-environments/prod/cloud/app/config.yaml 2>/dev/null |\nawk '/image: / {match($2, /(([^\"]*):[^\"]*)/, a) ; printf \"https://%s %s\\n\", a[2], a[1] ;}' |\nsort -u |\ncolumn -t\n

    A less complicated awk form of this that uses other shell commands would be

    helm template . --set global.baseDomain=foo.com -f /Users/danielh/a/google-environments/prod/cloud/app/config.yaml 2>/dev/null |\ngrep 'image: ' |\nawk '{print $2}' |\nsed 's/\"//g' |\nsed 's/\\(\\(.*\\):.*\\)/https:\\/\\/\\2 \\1/' |\nsort -u |\ncolumn -t\n

    So it really depends on where you want to put your complications, how performant you want to be, and how readable you want it to be. These both produce identical output, but some people find it easier to read shorter commands with simpler syntaxes, which is great for maintainability when performance is not an issue.

    https://quay.io/astronomer/ap-alertmanager  quay.io/astronomer/ap-alertmanager:0.23.0\nhttps://quay.io/astronomer/ap-astro-ui      quay.io/astronomer/ap-astro-ui:0.25.4\nhttps://quay.io/astronomer/ap-base          quay.io/astronomer/ap-base:3.14.2\nhttps://quay.io/astronomer/ap-cli-install   quay.io/astronomer/ap-cli-install:0.25.2\n...snip...\n
    "},{"location":"awk/#show-a-list-of-dns-hostname-queries-with-domain-stripped-sorted-by-hostname-length","title":"Show a list of dns hostname queries with domain stripped, sorted by hostname length","text":"

    This samples 100k dns queries, strips off all the domain names in the queried hostname, and prints the length of that first component of the FQDN (the bare hostname) along with the bare hostname itself, and shows the longest 25 entries.

    tcpdump -c 100000 -l -n -e dst port 53 |\nawk '$14 == \"A?\" {gsub(/\\..*/, \"\", $15) ; print(length($15), $15) ; fflush(\"/dev/stdout\") ;}' |\nsort -u |\nsort -n |\ntail -n 25\n

    Run this on your kube-dns nodes to see how close you're getting to the 63 character limit. You will never see errors though, because any name with components that are longer than 63 characters are not sent over the wire, so you'll need to check your logs for those. A good string to search for is \"63 characters\".

    "},{"location":"awk/#see-also","title":"See Also","text":"
    • https://www.grymoire.com/Unix/Awk.html
    • https://github.com/TheMozg/awk-raycaster: An FPS written in awk
    "},{"location":"awless/","title":"awless","text":"

    \"A Mighty CLI for AWS\" - https://github.com/wallix/awless

    "},{"location":"awless/#examples","title":"Examples","text":"
    • Example templates - https://github.com/wallix/awless-templates

    A lot of these syntax examples can be found by issuing the command, verb and entity but no parameters. Such as awless create stack, which will drop you into a prompt series to complete the necessary and optional parameters.

    "},{"location":"awless/#list-ec2-instances-sorted-by-uptime","title":"List ec2 instances sorted by uptime","text":"
    $ awless list instances --sort=uptime\n|         ID          |    ZONE    |           NAME          |  STATE  |    TYPE    | PUBLIC IP |   PRIVATE IP  | UPTIME \u25b2 | KEYPAIR |\n|---------------------|------------|-------------------------|---------|------------|-----------|---------------|----------|---------|\n| i-050ad501b33c6ad07 | us-west-1a | faruko-nal              | running | m4.xlarge  |           | 172.19.15.172 | 85 mins  | foo-ops |\n| i-5b381e9b          | us-west-1b | planted-collector11.foo | running | m4.xlarge  |           | 172.27.26.159 | 6 days   | foo-ops |\n| i-04ced9880586c009b | us-west-1a | hadoop07.foo            | running | m4.4xlarge |           | 172.27.37.100 | 8 days   | foo-ops |\n| i-0e583dcd3bc2444d8 | us-west-1a | db-na-historical06.foo  | running | m2.4xlarge |           | 172.19.48.79  | 12 days  | foo-ops |\n
    "},{"location":"awless/#sum-the-amount-of-unattached-disks-in-your-environment","title":"Sum the amount of unattached disks in your environment","text":"
    awless list volumes \\\n    --filter state=available \\\n    --format json |\n  jq .[].Size |\n  awk '{sum += $1 ; count += 1 ;} END {print sum \"G in \" count \" volumes\"}'\n
    "},{"location":"awless/#switch-to-a-different-aws-profile","title":"Switch to a different AWS profile","text":"

    This uses the ~/.aws/credentials file for its profiles

    Short way:

    awless switch prod\n

    Long way:

    awless config set aws.profile prod\n
    "},{"location":"awless/#customize-output-columns","title":"Customize output columns","text":"
    awless list instances --columns name,type,launched\n
    "},{"location":"awless/#add-a-user-to-a-group","title":"Add a user to a group","text":"
    awless \\\n  --aws-profile govcloud \\\n  --aws-region us-gov-west-1 \\\n  attach user \\\n  group=SystemAdministrators \\\n  name=SpaceGhost\n
    "},{"location":"awless/#create-an-access-key-for-a-user","title":"Create an access key for a user","text":"

    This creates an access key and saves it in ~/.aws/credentials

    awless \\\n  --aws-profile govcloud \\\n  --aws-region us-gov-west-1 \\\n  create accesskey \\\n  user=SpaceGhost \\\n  save=true\n
    "},{"location":"awless/#create-a-tag","title":"Create a tag","text":"
    awless create tag key=test_tag resource=i-9ba90158 value=true\n
    "},{"location":"awless/#delete-a-tag","title":"Delete a tag","text":"
    awless delete tag key=test_tag_dhoherd resource=i-9ba90158\n
    "},{"location":"awless/#create-an-instance","title":"Create an instance","text":"
    awless create instance \\\n  count=1 \\\n  image=ami-5ab82fa8 \\\n  keypair=ops \\\n  name=new-hostname \\\n  securitygroup=[sg-c4321fd1,sg-c4321cb0] \\\n  subnet=subnet-c4321c33 \\\n  type=t2.medium\n
    "},{"location":"awless/#see-also","title":"See also","text":"
    • amazon
    • aws-cloudformation
    • awscli
    "},{"location":"aws-cloudformation/","title":"Amazon AWS Cloudformation","text":"

    \"AWS CloudFormation is a service that helps you model and set up your Amazon Web Services resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS.\" - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html

    "},{"location":"aws-cloudformation/#links","title":"Links","text":"
    • http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html
    • CloudFormer - CloudFormer is a template creation beta tool that creates an AWS CloudFormation template from existing AWS resources in your account. You select any supported AWS resources that are running in your account, and CloudFormer creates a template in an Amazon S3 bucket.
    • Sceptre - Sceptre is a tool to drive Cloudformation. Sceptre manages the creating, updating and deletion of stacks, and provides meta commands to allow users to get information about their stacks.
    • rain - A development workflow tool for working with AWS CloudFormation. (See also its other tools section)
    • https://www.singlestoneconsulting.com/blog/cloudformation-mapping-and-conditionals-making-your-templates-more-universal
    • https://sbstjn.com/blog/cloudformation - CloudFormation Best-Practices
    "},{"location":"aws-cloudformation/#examples","title":"Examples","text":""},{"location":"aws-cloudformation/#import-cloudformation-stack-entities-into-datasette","title":"Import cloudformation stack entities into Datasette","text":"
    aws cloudformation list-stack-resources --stack-name \"$STACK_NAME\" --region \"$REGION\"  |\njq -c '.[]' |\nsqlite-utils insert datasette.db stack -\n
    "},{"location":"awscli/","title":"Amazon awscli","text":"

    Official Amazon AWS command-line interface - https://aws.amazon.com/cli

    "},{"location":"awscli/#example-usage","title":"Example usage","text":""},{"location":"awscli/#show-subnets-for-a-particular-region-and-account","title":"Show subnets for a particular region and account","text":"
    aws --profile=dev --region=us-west-2 ec2 describe-subnets\n
    "},{"location":"awscli/#see-also","title":"See Also","text":"
    • Amazon
    • awless
    "},{"location":"backups/","title":"Backups","text":"

    Notes about backing up data.

    "},{"location":"backups/#links","title":"Links","text":"
    • http://duplicity.nongnu.org
    • https://www.nixtutor.com/linux/off-site-encrypted-backups-using-rsync-and-aes
    • http://www.nongnu.org/rdiff-backup
    "},{"location":"badblocks/","title":"badblocks","text":"

    badblocks is a program to test storage devices for bad blocks. - https://wiki.archlinux.org/index.php/badblocks

    "},{"location":"badblocks/#examples","title":"Examples","text":""},{"location":"badblocks/#destroy-all-data-on-a-disk-while-logging-bad-blocks","title":"Destroy all data on a disk while logging bad blocks","text":"
    ## -v verbose output writes error info to stderr\n## -s show scan progress, including percent complete, time elapsed, and error count\n## -w destructive write test, vs -n (nondestructive read/write test)\n## -b 4096 byte blocks\n## -t random test pattern\n## -o output file containing list of bad blocks, which can be passed back to badblocks, fsck or mke2fs\nbadblocks -v -s -w -b 4096 -t random -o ~/sdc.txt /dev/sdc\n
    "},{"location":"badblocks/#see-also","title":"See also","text":"
    • dcfldd
    • dd
    • ddrescue
    • pv
    "},{"location":"bash/","title":"GNU bash","text":"

    Bash is one of the most common mainstream unix shells.

    "},{"location":"bash/#tricks-and-usage","title":"Tricks and Usage","text":""},{"location":"bash/#navigating-on-the-command-line","title":"Navigating on the command line","text":"

    The following can be seen by running: stty -a

    • ctrl-a - move cursor to the beginning of the line
    • ctrl-e - move cursor to the end of the line
    • ctrl-l - do a \"clear\" on the terminal window
    • ctrl-r - reverse history command search
    • ctrl-t - get status of foreground process
    • ctrl-w - delete previous word
    "},{"location":"bash/#view-a-list-of-all-commands-etc","title":"View a list of all commands, etc..","text":"
    • compgen -b will list all the built-ins you could run.
    • compgen -a will list all the aliases you could run.
    • compgen -c will list all the commands you could run.
    • compgen -k will list all the keywords you could run.
    • compgen -A function will list all the functions you could run.
    • compgen -back will list all the above in one go.
    "},{"location":"bash/#remove-leading-zeroes","title":"Remove leading zeroes","text":"

    This method converts the numbers from base-10 to base-10, which has the side effect of removing leading zeroes. You can also use this to convert from other base systems

    for X in 00{1..20..2} ; do\n  echo \"$X = $(( 10#${X} ))\"\ndone\n

    Or use bc, a CLI calculator...

    for X in {1..50..5} ; do\n  Y=00${X}\n  echo \"${X} with zeroes is ${Y} and removed with bc is $(echo ${Y} | bc)\"\ndone ;\n
    "},{"location":"bash/#print-several-files-side-by-side","title":"Print several files side by side","text":"
    printf \"%s\\n\" {a..z} > alpha.txt\nprintf \"%s\\n\" {1..26} > num.txt\npr -w 10 -t -m alpha.txt num.txt\n

    The following output will be printed:

    a    1\nb    2\nc    3\nd    4\ne    5\nf    6\ng    7\nh    8\ni    9\nj    10\nk    11\nl    12\nm    13\nn    14\no    15\np    16\nq    17\nr    18\ns    19\nt    20\nu    21\nv    22\nw    23\nx    24\ny    25\nz    26\n
    "},{"location":"bash/#convert-base-36-to-decimal","title":"Convert base 36 to decimal","text":"

    This converts the base 36 number z to a decimal value

    echo $((36#z))\n
    "},{"location":"bash/#run-a-command-for-5-seconds-then-kill-it","title":"Run a command for 5 seconds, then kill it","text":"
    ping -f & sleep 5 ; kill %1\n

    Alternatively, use the timeout command if it's available. In macOS this can be installed through brew install coreutils and accessed with gtimeout.

    timeout 300 cmd\n
    "},{"location":"bash/#test-if-a-variable-is-empty","title":"Test if a variable is empty","text":"
    if [[ -z \"$var\" ]]\n
    "},{"location":"bash/#date","title":"Date","text":"

    For date stuff, see date, because it differs by platform.

    "},{"location":"bash/#show-random-statistics","title":"Show RANDOM statistics","text":"
    for X in {0..9999} ; do\n  echo $(($RANDOM % 5)) ;\ndone |\nsort |\nuniq -c\n
    "},{"location":"bash/#named-pipes","title":"named pipes","text":"
    mkfifo baz ; ps aux > baz\n

    then, in another terminal

    cat baz\n
    "},{"location":"bash/#alternate-redirection-outputs","title":"alternate redirection outputs","text":"
    exec 3> /tmp/baz ; ps aux >&3 # sends the output of ps aux to /tmp/baz\n
    "},{"location":"bash/#redirect-all-output-of-a-script-into-a-file","title":"Redirect all output of a script into a file","text":"

    This is not bash specific, but works in bash.

    ##!/usr/bin/env bash\n\nexec >> /tmp/$0.log\nexec 2>&1\n\ndate \"+%F %T%z $0 This is stdout, and will be written to the log\"\ndate \"+%F %T%z $0 This is stderr, and will also be written to the log\"\n
    "},{"location":"bash/#show-size-of-each-users-home-folder","title":"Show size of each user's home folder","text":"
    getent passwd |\nwhile IFS=: read -r user _ uid _ _ home _ ; do\n  if [[ $uid -ge 500 ]] ; then\n    printf \"$user \" ;\n    sudo du -sh $home ;\n  fi ;\ndone\n
    "},{"location":"bash/#previous-commands-args","title":"Previous command's args","text":"
    mkdir temp ; cd !!:*\n

    Be aware of the location of the tokens. For example:

    mkdir -p {foo,bar}/{a,b,c}\nstat !!:*\n

    This creates a problem because you can't stat -p so you must stat -p !!:2*

    "},{"location":"bash/#debug-a-script","title":"Debug a script","text":"

    This will show everything bash is executing

    bash -x scriptname.sh\n

    Or debug with a function:

    function debug {\n  if [ \"${debug:-0}\" -gt 0 ] ; then\n    echo \"$@\" 2>&1\n  fi\n}\n
    "},{"location":"bash/#debug-nested-scripts","title":"Debug nested scripts","text":"
    PS4=\"+(\\${BASH_SOURCE}:\\${LINENO}): \\${FUNCNAME[0]:+\\${FUNCNAME[0]}(): }\" bash -x some-command\n
    "},{"location":"bash/#find-where-all-the-inodes-are","title":"Find where all the inodes are","text":"
    find ~/ -type d -print0 |\nxargs -I %% -0 bash -c \"echo -n %% ; ls -a '%%' | wc -l\" >> ~/inodes.txt\n
    "},{"location":"bash/#build-and-print-an-array","title":"Build and print an array","text":"
    array=(\"one is the first element\");\narray+=(\"two is the second element\" \"three is the third\");\necho \"${array[@]}\"\n

    This is useful for building command line strings. For example, gpsbabel requires each input file to be prepended with -f. The following script takes a list of files and uses a bash array to create a command line in the form of gpsbabel -i gpx -f input_file_1.gpx -f input_file_2.gpx -o gpx -F output.gpx

    ##!/usr/bin/env bash\n\n## Check for at least one argument, print usage if fail\nif [ $# -lt 2 ] ; then\n    echo \"This script merges gpx files and requires at least two gpx files passed as arguments. Output is output.gpx\";\n    echo \"Usage:    $0 <gpx file> <gpx file> [...<gpx file>]\";\n    exit 1;\nfi\n\n## Create an array of arguments to pass to gpsbabel\nargs=();\nfor item in \"$@\" ; do\n    if [ -f \"$item\" ] || [ -h \"$item\" ] ; then\n        args+=( \"-f\" \"$item\" );\n    else\n        echo \"Skipping $item, it's not a file or symlink.\"\n    fi\ndone;\n\n## Verify we have at least two files to work with\nif [ \"${#args[@]}\" -lt 4 ] ; then\n    echo \"We don't have enough actual files to work with. Exiting.\"\n    exit 1\nfi\n\ngpsbabel -i gpx \"${args[@]}\" -o gpx -F output.gpx\n
    "},{"location":"bash/#build-and-print-an-associative-array-dict-hash","title":"Build and print an associative array (dict, hash)","text":"
    declare -A animals=(\n  [\"cow\"]=\"moo\"\n  [\"dog\"]=\"woof woof\"\n  [\"cat\"]=\"meow\"\n) ;\nfor animal in \"${!animals[@]}\" ; do\n  echo \"The $animal says '${animals[$animal]}'\" ;\ndone ;\n
    "},{"location":"bash/#show-permissions-in-rwx-and-octal-format","title":"Show permissions in rwx and octal format","text":"

    Linux:

    stat -c '%A %a %n' filename\n

    OSX:

    stat -f '%A %N' filename\n

    See stat for more stat usage.

    "},{"location":"bash/#find-the-length-of-a-variable","title":"Find the length of a variable","text":"
    echo ${#SHELL}\n
    "},{"location":"bash/#print-all-variables-that-start-with-the-substring-sh","title":"Print all variables that start with the substring SH","text":"
    echo \"${!SH@}\"\n
    "},{"location":"bash/#tertiary-type-variables","title":"Tertiary type variables","text":"
    ${V:-empty} # means \"return the value of the variable V or the string 'empty' if $V isn't set.\n
    "},{"location":"bash/#do-a-command-and-if-it-returns-false-so-some-more-stuff","title":"Do a command, and if it returns false, so some more stuff","text":"
    until command_that_will_fail ; do something_else ; done ;\n
    "},{"location":"bash/#print-two-digit-months","title":"Print two digit months","text":"

    echo {1..12} may not work. If not, use echo $(seq -w 1 12)

    "},{"location":"bash/#get-filename-extension-or-path","title":"Get filename, extension or path","text":"

    Taken from http://mywiki.wooledge.org/BashFAQ/073

    "},{"location":"bash/#rename-files-to-a-sequence-and-change-their-extension-at-the-same-time","title":"Rename files to a sequence and change their extension at the same time","text":"
    ls | while read -r line ; do\n  stub=${line%.*} ;\n  (( i += 1 )) ;\n  mv \"${line}\" \"${i}-${stub}.txt3\" ;\ndone ;\n
    FullPath=/path/to/name4afile-00809.ext   # result:   #   /path/to/name4afile-00809.ext\nFilename=${FullPath##*/}                             #   name4afile-00809.ext\nPathPref=${FullPath%\"$Filename\"}                     #   /path/to/\nFileStub=${Filename%.*}                              #   name4afile-00809\nFileExt=${Filename#\"$FileStub\"}                      #   .ext\n
    "},{"location":"bash/#sort-a-line-by-spaces","title":"Sort a line by spaces","text":"
    s=( whiskey tango foxtrot );\nsorted=$(printf \"%s\\n\"` `${s[@]}|sort);\necho $sorted\n
    "},{"location":"bash/#calculate-the-difference-between-two-dates","title":"Calculate the difference between two dates","text":"
    echo $(( $(gdate +%s -d 20120203) - $(gdate +%s -d 20120115) ))\n
    "},{"location":"bash/#substring-replace-a-variable","title":"substring replace a variable","text":"

    This is not regex, just a simple string replacement.

    ## ${VAR/search/replace} does only the first\n## ${VAR//search/replace} does all replacements\necho \"Paths in your path: ${PATH//:/ }\"\n
    "},{"location":"bash/#subtract-two-from-a-mac-address","title":"Subtract two from a MAC address","text":"
    ## printf -v defines a variable instead of printing to stdout\nprintf -v dec \"%d\" 0x$(echo 00:25:9c:52:1c:2a | sed 's/://g') ;\nlet dec=${dec}-2 ;\nprintf \"%012X\" ${dec} \\\n| sed -E 's/(..)(..)(..)(..)(..)(..)/\\1:\\2:\\3:\\4:\\5:\\6/g'\n
    "},{"location":"bash/#print-the-last-for-chars-of-a-variable","title":"Print the last for chars of a variable","text":"
    • echo ${foo:$((${#foo}-4))}
    • echo ${foo: -4} The space is necessary to prevent it from
    • doing a completely different thing. See the next example...
    "},{"location":"bash/#dereference-a-variable","title":"Dereference a variable","text":"
    $ for var in ${!BASH_V*} ; do echo \"${var}: ${!var}\" ; done ;\nBASH_VERSINFO: 5\nBASH_VERSION: 5.0.7(1)-release\n
    "},{"location":"bash/#print-something-else-if-a-variable-doesnt-exist","title":"Print something else if a variable doesn't exist","text":"
    • echo ${foo:-foo isn't assigned}
    • echo ${foo:-${bar}}

    This can even be recursively done...

    • echo ${foo:-${bar:-foo and bar are not assigned}}
    "},{"location":"bash/#print-every-third-number-starting-with-1-and-ending-with-30","title":"Print every third number starting with 1 and ending with 30","text":"

    echo {1..30..3}

    "},{"location":"bash/#print-every-5th-letter-of-the-alphabet","title":"Print every 5th letter of the alphabet","text":"

    echo {a..z..5}

    "},{"location":"bash/#process-all-lines-but-print-out-status-about-what-line-we-are-on-every-nth-line","title":"Process all lines, but print out status about what line we are on every Nth line","text":"

    Sometimes during a series of long-running jobs you want to see the status of where you are at, or at least some indicator that things have not paused. when ctrl-t is not available (and even when it is) this pattern can help you monitor that things are still moving a long.

    N=0\nfind \"/usr/bin\" -type f |\nwhile read -r X ; do\n  N=$((N + 1))\n  [[ \"$((N % 50))\" -eq 0 ]] && date \"+%F %T file number $N $X\" >&2\n  shasum -a 512 \"${X}\" >> ~/usr_bin_shasums.txt\ndone\n

    Example terminal output from the above command, while all shasum output goes into ~/usr_bin_shasums.txt:

    $ find \"/usr/bin\" -type f |\n> while read -r X ; do\n>   N=$((N + 1))\n>   [[ \"$((N % 50))\" -eq 0 ]] && date \"+%F %T file number $N $X\" >&2\n>   shasum -a 512 \"${X}\" >> ~/usr_bin_shasums.txt\n> done\n2018-02-24 15:30:29 file number 50 /usr/bin/toe\n2018-02-24 15:30:30 file number 100 /usr/bin/db_hotbackup\n2018-02-24 15:30:32 file number 150 /usr/bin/host\n2018-02-24 15:30:33 file number 200 /usr/bin/groffer\n2018-02-24 15:30:35 file number 250 /usr/bin/mail\n2018-02-24 15:30:36 file number 300 /usr/bin/dbicadmin\n2018-02-24 15:30:38 file number 350 /usr/bin/fwkpfv\n2018-02-24 15:30:39 file number 400 /usr/bin/tab2space\n
    "},{"location":"bash/#make-a-directory-structure-of-every-combination-of-adjectivenoun","title":"Make a directory structure of every combination of /adjective/noun","text":"

    mkdir -p {red,green,blue}/{fish,bird,flower}

    "},{"location":"bash/#generate-a-zero-padded-random-2-byte-hex-number","title":"Generate a zero padded random 2 byte hex number","text":"

    printf \"%02X\\n\" $((RANDOM % 256))

    "},{"location":"bash/#grep-many-log-files-and-sort-output-by-date","title":"grep many log files and sort output by date","text":"
    sudo grep cron /var/log/* |\nsed 's/:/ /' |\nwhile read file month day hour line ; do\n  date -d \"$month $day $hour\" \"+%F %T%z ${file} ${line}\" ;\ndone |\nsort\n
    "},{"location":"bash/#get-command-line-switches","title":"Get command line switches","text":"

    From the docs

    • If a character is followed by a colon, the option is expected to have an argument.
    • If the first character of optstring is a colon, silent error reporting is used.
    while getopts p:l:t: opt; do\n  case $opt in\n    p) pages=$OPTARG ;;\n    l) length=$OPTARG ;;\n    t) time=$OPTARG ;;\n  esac\ndone\n\nshift $((OPTIND - 1))\necho \"pages is ${pages}\"\necho \"length is ${length}\"\necho \"time is ${time}\"\necho \"\\$1 is $1\"\necho \"\\$2 is $2\"\n

    Call this script as ./foo.sh -p \"this is p\" -l llll -t this\\ is\\ t foo bar

    "},{"location":"bash/#files","title":"Files","text":"

    These files can change the behavior of bash.

    "},{"location":"bash/#bash_profile","title":".bash_profile","text":"

    ~/.bash_profile is executed every time you log into the system or initiate a login shell. Inclusion of things that write to stdout is allowed here.

    If you want to write scripts that change your interactive shell environment, such as changing your CWD, define functions here instead of using stand-alone scripts.

    "},{"location":"bash/#example-bash_profile","title":"Example .bash_profile","text":"

    The ~/.bash_profile file can be quite long and complicated. The following example is an incomplete sample:

    export EDITOR=/usr/bin/vim\nexport GZIP='-9'\nexport HISTSIZE=5000\nexport HISTTIMEFORMAT='%F %T%z '\nexport PS1=\"\\u@\\h:\\w$ \"\nexport TERM=xterm-256color\nexport TMOUT=\"1800\"  # log out after this many seconds of shell inactivity\n\nalias ll='ls -la'\nalias temp='date_F=$(date +%F) ; mkdir -p ~/temp/$date_F 2>/dev/null ; cd ~/temp/$date_F'\n\nsprunge() { curl -F 'sprunge=<-' http://sprunge.us < \"${1:-/dev/stdin}\"; } # usage: sprunge FILE # or some_command | sprunge\n\n## Don't record some commands\nexport HISTIGNORE=\"&:[ ]*:exit:ls:bg:fg:history:clear\"\n\n## Avoid duplicate entries\nHISTCONTROL=\"erasedups:ignoreboth\"\n\n## Perform file completion in a case insensitive fashion\nbind \"set completion-ignore-case on\"\n
    "},{"location":"bash/#bashrc","title":".bashrc","text":"

    ~/.bashrc is executed every time you open a sub-shell. It should not output any text, otherwise certain things (eg: scp) will fail.

    "},{"location":"bash/#inputrc","title":"~/.inputrc","text":"

    This file defines some bash behaviors. It also affects some other tools.

    ## Ignore case while completing\nset completion-ignore-case on\n
    "},{"location":"bash/#links","title":"Links","text":"
    • Command Line Quicksheet: http://www.pixelbeat.org/cmdline.html
    • Tons of BASH examples: http://mywiki.wooledge.org/BashFAQ
    • Bash Manual: Bash Variables
    • Bash pitfalls: http://mywiki.wooledge.org/BashPitfalls
    • Bash prompt howto, including colors: http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
    • Bash Automated Test System
    • http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/
    • https://google.github.io/styleguide/shellguide.html
    • https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
    • https://www.shellcheck.net/: Use this cli tool to help you write awesome shell scripts.
    • https://www.pcwdld.com/bash-cheat-sheet: Cheatsheet with some interesting examples not covered in many other resources.
    • https://kapeli.com/cheat_sheets/Bash_Test_Operators.docset/Contents/Resources/Documents/index
    • https://utcc.utoronto.ca/~cks/space/blog/unix/DropShellCommandHashing
    "},{"location":"bbcp/","title":"bbcp","text":"

    \"Securely and quickly copy data from source to target.\" - https://www.slac.stanford.edu/~abh/bbcp/

    This is a useful tool for copying files. Notably it gets around some bandwidth limitations of nc that I ran into when trying to copy one large file across an 80gbps network.

    "},{"location":"bc/","title":"GNU bc","text":"

    bc is a tool that does math on the CLI.

    "},{"location":"bc/#examples","title":"Examples","text":""},{"location":"bc/#divide-one-number-into-another-and-show-two-decimal-places","title":"Divide one number into another and show two decimal places","text":"

    The scale variable sets the number of significant digits.

    echo \"scale=2 ; 7 / 3\" | bc

    "},{"location":"bc/#convert-decimal-to-hexadecimal","title":"Convert decimal to hexadecimal","text":"

    echo \"obase=16 ; 10\" | bc

    "},{"location":"bc/#convert-hexadecimal-to-binary","title":"Convert hexadecimal to binary","text":"

    echo \"ibase=16 ; obase=2 ; AF\" | bc

    "},{"location":"bc/#subtract-two-from-the-last-octet-of-a-mac-address","title":"Subtract two from the last octet of a MAC address","text":"
    echo 24:b6:fd:ff:ba:31 |\nwhile read -r X ; do\n  echo ${X%??}$(\n    echo \"obase=16 ; $(( 0x${X#*:??:??:??:??:} )) - 2\" |\n      bc |\n      sed 's/^\\(.\\)$/0\\1/' |\n      tr A-Z a-z\n  ) ;\ndone ;\n
    "},{"location":"bind/","title":"BIND","text":"

    BIND, or named, is the most widely used Domain Name System (DNS) software on the Internet.

    • https://www.isc.org/downloads/bind/doc/
    • https://en.wikipedia.org/wiki/BIND
    "},{"location":"bind/#flush-records","title":"Flush records","text":""},{"location":"bind/#flush-a-single-record","title":"Flush a single record","text":"
    rndc flushname github.com\n
    "},{"location":"bind/#flush-all-records","title":"Flush all records","text":"
    rndc flush\n
    "},{"location":"blkid/","title":"blkid","text":"

    \"The blkid program is the command-line interface to working with the libblkid(3) library. It can determine the type of content (e.g. filesystem or swap) that a block device holds, and also attributes (tokens, NAME=value pairs) from the content metadata (e.g. LABEL or UUID fields). blkid has two main forms of operation: either searching for a device with a specific NAME=value pair, or displaying NAME=value pairs for one or more specified devices.\" - man blkid

    "},{"location":"blkid/#examples","title":"Examples","text":""},{"location":"blkid/#simple-usage","title":"Simple usage","text":"

    Here is the output of blkid on an Ubuntu 16.04 Vagrant box:

    $ blkid\n/dev/sda1: LABEL=\"cloudimg-rootfs\" UUID=\"743b1402-d445-494c-af0b-749040bb33e4\" TYPE=\"ext4\" PARTUUID=\"95a4c157-01\"\n/dev/sdb: UUID=\"2017-12-12-14-38-00-00\" LABEL=\"cidata\" TYPE=\"iso9660\"\n
    "},{"location":"blkid/#see-also","title":"See Also","text":"
    • findmnt
    • lsblk
    "},{"location":"bluetooth/","title":"bluetooth","text":""},{"location":"bluetooth/#examples","title":"Examples","text":""},{"location":"bluetooth/#linux-software","title":"Linux software","text":"
    • bluetoothctl: pair, connect, get info on bluetooth devices
    • gatttool
    "},{"location":"bpf/","title":"bpf","text":"

    \"Linux Socket Filtering (LSF) is derived from the Berkeley Packet Filter. Though there are some distinct differences between the BSD and Linux Kernel filtering, but when we speak of BPF or LSF in Linux context, we mean the very same mechanism of filtering in the Linux kernel.\"

    • https://www.kernel.org/doc/Documentation/networking/filter.txt
    • https://lwn.net/Articles/599755/
    • https://www.facebook.com/atscaleevents/videos/1693888610884236/
    • http://iovisor.github.io/bcc/
    • http://www.brendangregg.com/blog/2015-05-15/ebpf-one-small-step.html
    • https://github.com/sharklinux/shark
    "},{"location":"c/","title":"C","text":"

    \"C (pronounced like the letter c) is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential.\" - https://en.wikipedia.org/wiki/C_(programming_language)

    The linux kernel is > 98% C code.

    "},{"location":"c/#links","title":"Links","text":"
    • https://en.wikipedia.org/wiki/C_(programming_language)
    • https://tmewett.com/c-tips
    "},{"location":"calico/","title":"calico","text":"

    \"Calico provides secure network connectivity for containers and virtual machine workloads.\" - https://docs.projectcalico.org/v3.1/introduction/

    "},{"location":"calico/#kubernetes-examples","title":"Kubernetes Examples","text":"

    Calico works in several environments, but these examples all apply to Kubernetes.

    "},{"location":"calico/#installation","title":"Installation","text":"

    https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/

    "},{"location":"calico/#show-a-bunch-of-info-about-your-calico-config","title":"Show a bunch of info about your calico config","text":"

    See also https://docs.projectcalico.org/v2.0/reference/calicoctl/resources/

    for X in bgpPeer hostEndpoint ipPool node policy profile workloadEndpoint ; do\n  echo \"=========== $X\"\n  calicoctl get $X 2>/dev/null\ndone\n
    "},{"location":"calico/#links","title":"Links","text":"
    • https://docs.projectcalico.org/latest/
    • https://docs.projectcalico.org/v2.0/reference/calicoctl/resources/
    • https://kubernetes.io/docs/concepts/services-networking/network-policies/
    "},{"location":"calver/","title":"CalVer","text":"

    \"CalVer is a software versioning convention that is based on your project's release calendar, instead of arbitrary numbers.\" - https://calver.org/

    "},{"location":"calver/#links","title":"Links","text":"
    • https://calver.org/
    • Cockroach Labs: Why we're switching to calendar versioning / https://news.ycombinator.com/item?id=19658969
    • https://news.ycombinator.com/item?id=21967879
    "},{"location":"centos/","title":"CentOS Linux","text":"

    \"The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem.\" - https://www.centos.org/

    "},{"location":"centos/#centos-7","title":"CentOS 7","text":"
    • Released 2014-07-07
    "},{"location":"centos/#new-things-in-centos-7","title":"New things in CentOS 7","text":"
    • firewalld manages the firewall
    • hostnamectl changes the hostname and applies the setting immediately
    • journalctl shows log files of services launched by systemd
    • systemctl manages systemd services
    "},{"location":"centos/#initial-setup","title":"Initial setup","text":"

    Set up some base parameters on a fresh instance

    yum install -y bash-completion bc curl git lsof mlocate mutt net-snmp ntpd smartmontools strace sysstat vim wget\nln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime\nntpdate {0..3}.pool.ntp.org\nsystemctl start ntpd\n
    "},{"location":"centos/#centos-6","title":"CentOS 6","text":"
    • Released 2011-07-10
    "},{"location":"centos/#centos-6-initial-setup","title":"CentOS 6 Initial Setup","text":"
    yum install -y ntp\nchkconfig --levels 345 ntpd on && ntpdate time.apple.com && service ntpd start\nyum upgrade -y\nyum install -y arping avahi avahi-tools bc bind-utils curl elinks fping lsof net-snmp man mlocate mutt openssh openssh-clients openssh-server perl-Crypt-SSLeay perl-libwww-perl rsync strace vim wget yum-cron\nln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime\nchkconfig --levels 345 yum-cron on && service yum-cron start\nyum install -y dcfldd nfs-utils smartmontools dmidecode lshw dstat htop iotop\nchkconfig --levels 345 smartd on && service smartd start\n
    "},{"location":"centos/#tweaks-and-tricks","title":"Tweaks and Tricks","text":""},{"location":"centos/#get-past-protected-lib-problems","title":"Get past protected lib problems","text":"

    yum update --setopt=protected_multilib=false --skip-broken

    "},{"location":"centos/#enable-dhcp-hostname-for-dns-resolution","title":"Enable DHCP Hostname for DNS resolution","text":"

    add \"DHCP_HOSTNAME=whatever\" to /etc/sysconfig/network-scripts/ifcfg-eth0

    "},{"location":"centos/#install-os-from-usb","title":"Install OS from USB","text":"
    • From Windows: http://iso2usb.sourceforge.net/
    • From Linux: https://fedoraproject.org/wiki/Livecd-iso-to-disk
    "},{"location":"centos/#show-installed-repository-keys","title":"Show installed repository keys","text":"

    rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\\n'

    "},{"location":"centos/#dhcp-with-ddns-hostname","title":"DHCP with DDNS hostname","text":"

    Model your /etc/sysconfig/network-scripts/ifcfg-eth0 like this:

    TYPE=Ethernet\nDEVICE=eth0\nONBOOT=yes\nBOOTPROTO=dhcp\n## Without the following line, dhclient will not update /etc/resolv.conf and may not get an IP address at all\nDHCP_HOSTNAME=some_hostname\n