136 private links
Nowify is an opinionated time management system based on the following principles:
"don't make me think": design your life and let a computer calculate your next moves
push over pull: active/annoying systems are better than passive ones
active feedback: use simple stats to see yourself more clearly
meta-routines: humans change -- use a system to update your system
bite-sized: modular without being fancy
Queen Mary University had an important role in the history of the Vim editor. It was here that, in 1973, the first UNIX system of the UK was installed, and it was also here that professor George Coulouris developed an editor called em. The creation of em ended up snowballing into the development of vi and many other vi clones after that.
Grab an entire CD and compress it to Ogg/Vorbis, MP3, FLAC, AAC, Ogg/Speex and/or MPP/MP+(Musepack) format.
In the first article of this series on using Ansible to configure a workstation, we set up a repository and configured a few basic things. In the second part, we automated Ansible to apply settings automatically when changes are made to our repository. In this third (and final) article, we'll use Ansible to configure GNOME desktop settings.
This configuration will work only on newer distributions (such as Ubuntu 18.04, which I'll use in my examples). Older versions of Ubuntu will not work, as they ship with a version of python-psutils that is too old for Ansible's dconf module to work properly. If you're using a newer version of your Linux distribution, you should have no issues.
TIL there are dozens of neat little command-line tools hidden away in the Python standard library, available to run on any machine that has a Python installation https://til.simonwillison.net/python/stdlib-cli-tools
TFW a file format is so old that it includes an "insert paper tape this way" arrow as part of the header: Looks like this traces back to the PDP-11.
Seamless integration with kubectl autocompletion
Fast completion
Label autocompletion
Automatic namespace switch
Happy birthday to the 19" equipment rack, which turns 100 next month. From the July, 1923, Bell Systems Technical Journal: "All panels are to be of a uniform length, designed to mount on vertical supports spaced 19>< inches between centers. The height of the different panels will vary, according to the amount of apparatus in each unit, but this vertical dimension is in all cases to be a whole multiple of 1-3/4 inches."
How could I miss out on #VisiData for so long? This might become my new favorite #CLI tool.
If you do anything with data and enjoy working in the terminal, check it out. It can
• provide a #TUI for viewing and editing data in #CSV, #Excel, #SQLite, #JSON, #YAML & #XML files and quite a few more
• sort, filter, join and edit that data, across files and across formats
• convert between the formats (interactively or not)
• record & play macros
• be scripted in #Python
Frogmouth is a Markdown viewer / browser for your terminal, built with Textual.
Frogmouth can open *.md files locally or via a URL.
There is a familiar browser-like navigation stack, history, bookmarks, and table of contents.
Immer mehr Projekte versuchen, althergebrachte Unix-Befehle durch Rust-Alternativen zu ersetzen. Jetzt nimmt sich erdtree 2.0.0 du, tree, find und ls vor.
Some authentication means are more secure than others: using a hardware device designed to store a private key without making it possible to ever extract it is more secure than storing the private key in a file. Unfortunately the most secure ones are also more painful to use. Users who have their keys on a device need to carry the device with them, need to type their PIN code every time they initiate a SSH session, etc. This makes it quite difficult to advocate ways more secure than passwords and files for use cases where the security of the access is not the priority.
So the question is: is it possible to store the authentication material more securely than in a file (which can be stolen by some malware), without changing the user experience?
And the answer is: yes, using a TPM!
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 beinhoitn
Write 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.