136 private links
The fundamental problem of shells is they are required to be two things.
A high-frequency REPL, which requires terseness, short command names, little to no syntax, implicit rather than explicit, so as to minimize the duration of REPL cycles.
A programming language, which requires readable and maintainable syntax, static types, modules, visibility, declarations, explicit configuration rather than implicit conventions.
And you can’t do both. You can’t be explicit and implicit, you can’t be terse and readable, you can’t be flexible and robust.
Shells optimize the former case, so that you can write cat beef.txt | grep "lasagna" | sort -n | uniq instead of:
with open(Path("beef.txt")) as stream:
lines = filter(
stream.readlines(),
lambda line: re.match(line, "lasagna") is not None
)
print(set(reverse(sorted(lines))))
Which does not spark joy.
So the programming language aspect suffers: shell scripts are an unreadable nightmare of stringly-typed code resembling cyphertext.
Inspiriert vo git auf deutsch hobn si auf da bsides vienna 0x7e6 a poa Spezialisten zaumdau, und a typisch österreichische Lösung gehirngsturmt.
warning Obocht! Kinad a bissl Spass beinhoitnWrite terminal GIFs as code for integration testing and demoing your CLI tools.
A tool for glamorous shell scripts. Leverage the power of Bubbles and Lip Gloss in your scripts and aliases without writing any Go code!
Ask for the commit type with gum choose:
gum choose "fix" "feat" "docs" "style" "refactor" "test" "chore" "revert"
Tip: this command itself will print to stdout which is not all that useful. To make use of the command later on you can save the stdout to a $VARIABLE or file.txt.
Prompt for an (optional) scope for the commit:
gum input --placeholder "scope"
Prompt for a commit message:
gum input --placeholder "Summary of this change"
Prompt for a detailed (multi-line) explanation of the changes:
gum write --placeholder "Details of this change (CTRL+D to finish)"
So it’s long overdue that major libraries and services like GitHub are reconsidering the use of terms like “master” and “slave”. (Django actually replaced them six years ago to use more accurately descriptive terms.) Whether or not they are intentionally rooted in the metaphors of Black enslavement, the plain fact is that living people have clearly stated that the words make them uncomfortable. Our intent matters much less than our impact.
Aus diesem Bild möchte ich die dominierenden Farben ermittelt. Dazu verwende ich ImageMagick und zeige das Bild mit der extrahierten Farbpalette anschliessen an:
A simple and extensible shell script for managing your todo.txt file.
There is this well hidden command line tool called "column" that allows you to align the data nicely in properly sized columns. Combine this with a pager like less and we have a nice prototype already
I figured out how to run a SQL query directly against a CSV file using the sqlite3 command-line utility:
sqlite3 :memory: -cmd '.mode csv' -cmd '.import taxi.csv taxi' \
'SELECT passenger_count, COUNT(*), AVG(total_amount) FROM taxi GROUP BY passenger_count'
YubiKeys are hardware security keys that provide One Time Pads (OTP), namely U2F (Universal 2nd Factor) cryptographic tokens through a USB and/or NFC interface. This means you have to explicitly authorize a new SSH session by tapping the YubiKey. The private SSH key, which is normally on your SSD or cloud instance, should be useless to a malicious user who does not have access to the physical YubiKey on which the second private key is stored.
Configuring 2FA (Two Factor Authentication) with YubiKeys on SSH sessions is ideal for bastion hosts, also known as stepping stone servers that connect to your VPC (Virtual Private Cloud).
Everything is a file under Linux and ls* and friends can help you to dig out more information from the system than you originally thought. These Linux tips may come in handy when you need to find out information quickly without going through /proc or sysfs.
A fully-modern text-based browser, rendering to TTY and browsers
gron is a self-contained Go executable you can download from here on GitHub. In the UNIX tradition, gron does one thing well: it flattens JSON into a structure that's easily processed by shell tools, line by line.
Make JSON greppable!
gron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it. It eases the exploration of APIs that return large blobs of JSON but have terrible documentation.
q -- a tiny command line DNS client with support for UDP, TCP, DoT, DoH, DoQ and ODoH.
Oh-heck is a CLI tool that takes natural language input and outputs a terminal command using GPT-3.
cheating is ok 😂 http://cheat.sh is one of my favorite utilities and easy to curl from the command line. Want to know about "ssh"? Just curl http://cheat.sh/ssh and get a little cheat sheet right to your terminal. Here's an example with "echo":
via John McBride
@johncodezzz
Port all important software (like Doom, Second Reality, X windows etc..) on AA-lib.
Port AA-lib on all available platforms (mainly ZX-Spectrum and Sharp).
Force IBM to start manufacturing MDA cards again.
AA-project was started by Jan Hubicka. In that times just a few people knew about it. Then a new demo named BB has been relased to show the power of AA-lib technology. Now the project is freely available and anyone can help.
The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands.
Is The Fuck too slow? Try the experimental instant mode!
Glow is a terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLI.
Use it to discover markdown files, read documentation directly on the command line and stash markdown files to your own private collection so you can read them anywhere. Glow will find local markdown files in subdirectories or a local Git repository.
By the way, all data stashed is encrypted end-to-end: only you can decrypt it. More on that below.