gamma 4w ago • 100%
Basically the Matrix Spec Change Proposal system, I like it. Opens the floor to more players, gives tool authors a list of protocols they could choose to build on, and hopefully compositors will choose to adopt or adapt one of these protocols before writing their own.
gamma 1mo ago • 100%
I know that "Vanity Addresses" are a common thing for onion sites, and there are tools which generate tons of keys looking for prefixes. I haven't seen such a tool for ssh host keys though.
gamma 2mo ago • 100%
I put newlines in my filenames to break both CLI tools and Windows filesystems
gamma 2mo ago • 100%
Taking courses which involve subjects that you will likely never encounter in the workforce is a thing in every discipline. Most engineers don't need to manually solve differential equations in their day jobs, they just need to know that they exist and will often require numerical solutions.
Getting your hands dirty with the content provides a better understanding when dealing with higher level concepts.
gamma 3mo ago • 100%
zsh-syntax-highlighting
There's also a fork called fast-syntax-highlighting, I use it.
gamma 3mo ago • 100%
manually call the others
Yeah, most distros will set up source
chains to make things nicer for users.
gamma 3mo ago • 66%
Yeah, I'd write this as a single update
script with options to update vimplugins
or update pkg
or update all
.
I see that you want it to be a function so you can get the chdir as a side effect, but mixing that with updating doesn't make sense to me.
gamma 3mo ago • 88%
When in doubt, ~/.zshrc
. It's the right choice 99% of the time. Otherwise, there's a chance you fuck up scripts you've installed which assume no shell options have been changed in non-interactive contexts.
gamma 3mo ago • 100%
What kind of functions do you write which you share between your scripts? Generally if I'm wanting to reuse a non-trivial function, I extend the functionality of the first script instead.
gamma 3mo ago • 100%
Select the color which matches the steps before filenames ((non-)login and (non-)interactive), then follow that arrow the rest of the way. There's more colors in Bash because Bash makes a distinction between remote and local shells.
Another way to look at the same data for Zsh (note: $ZDOTDIR
will be used instead of $HOME
if it's defined at any step along the way):
File | neither | interactive | login | both |
---|---|---|---|---|
/etc/zshenv |
x | x | x | x |
${ZDOTDIR:-$HOME}/.zshenv |
x | x | x | x |
${ZDOTDIR:-$HOME}/.zprofile |
x | x | ||
${ZDOTDIR:-$HOME}/.zshrc |
x | x | ||
${ZDOTDIR:-$HOME}/.zlogin |
x | x | ||
${ZDOTDIR:-$HOME}/.zlogout |
x | x |
One confusion on the Bash side of the diagram is that you see branching paths into ~/.profile
, ~/.bash_profile
and ~/.bash_login
. Bash will use for ~/.bash_profile
, ~/.bash_login
, and ~/.profile
, in that order, and execute only the first one that exists and is readable.
gamma 3mo ago • 100%
Optional crash reporting was merged. Most of the backlash in the PR is about the significant dependencies (Google's BreakPad) which were pulled in with it.
However, by default Audacity isn't built with it, you need to specify a CMake with the URL to send data to. No distros that I know of enable reporting.
gamma 4mo ago • 100%
Just make sure you read the news (restart sshd)
gamma 4mo ago • 100%
What about adding the flags last?
rm deletethisrepo -rf
gamma 4mo ago • 100%
You could still NAT between v6's though.
gamma 4mo ago • 100%
Like a normal horsey, but the square it leaves behind remains on fire, destroying the next piece to land on it.
Only the most recent square it was on remains on fire.
gamma 4mo ago • 100%
IMO the NUL-delimited options are by far the biggest win for shell scripting. $' '
will be the most commonly used addition, but "$(printf '...')"
was always an option before. You don't really have an alternative read -d ''
.
gamma 4mo ago • 100%
I care mostly about shell scripting, so I'm focusing on those bits. Via the HackerNews thread, mostly from a-french-anon:
The document itself is paywalled like all the POSIX specifications, so here are some highlights courtesy of [some comments at HackerNews](https://news.ycombinator.com/item?id=40679809), especially from [a-french-anon](https://news.ycombinator.com/item?id=40679809#40680535). * [`readlink` and `realpath`](https://austingroupbugs.net/view.php?id=1457) * [`find -print0`, `xargs -0` and `read -d`](https://austingroupbugs.net/view.php?id=243) * [`find -iname`](https://austingroupbugs.net/view.php?id=1031) * [`sed -E`](https://austingroupbugs.net/view.php?id=528) * [`set -o pipefail`](https://austingroupbugs.net/view.php?id=789) * [`$' '` strings](https://austingroupbugs.net/view.php?id=249)
gamma 4mo ago • 100%
Strange, I don't see this behavior on my device. Not sure what information would be relevant to debugging this though.
This release of fish includes a number of improvements over fish 3.6.4, detailed below. Although work continues on the porting of fish internals to the Rust programming language, that work is not included in this release. fish 3.7.0 and any future releases in the 3.7 series remain C++ programs. ## Notable improvements and fixes - Improvements to the history pager, including: - The history pager will now also attempt subsequence matches (#9476), so you can find a command line like `git log 3.6.1..Integration_3.7.0` by searching for gitInt. - Opening the history pager will now fill the search field with a search string if you’re already in a search (#10005). This makes it nicer to search something with `↑` and then later decide to switch to the full pager. - Closing the history pager with enter will now copy the search text to the commandline if there was no match, so you can continue editing the command you tried to find right away (#9934). - Performance improvements for command completions and globbing, where supported by the operating system, especially on slow filesystems such as NFS (#9891, #9931, #10032, #10052). - fish can now be configured to wait a specified amount of time for a multi-key sequence to be completed, instead of waiting indefinitely. For example, this makes binding `kj` to switching modes in vi mode possible. - The timeout can be set via the new `fish_sequence_key_delay_ms` variable (#7401), and may be set by default in future versions.
Check out the newest version of everyone's favorite^[citation needed] command line json processing tool! Highlights include *significant* speed improvements (>10x on some of my workloads), new flags, new builtins, and a litany of bugfixes.
x-post from !programming@programming.dev: https://programming.dev/post/2165136
I'm sure some of you have absolute monstrosities of sigils (I know I do, in my .zshrc alone). Post them without context, and try and guess what other users's lines are. If you want to provide context or guess, use the markdown editor to spoiler-tag your guesses and explanations!
This came out of playing around with `curl` and the Lemmy API. I wanted a repeatable way to declare a bunch of shell parameters from a json object, so I wrote a `jq` module! Take a look at the README for examples, or once you install, run ```shell source <( curl 'https://programming.dev/api/v3/community?id=267' | jq -r 'import "shell" as shell; .community_view | shell::param' ) ``` Currently this project only provides a `param` function, and only supports Bash and Zsh. If I think of other useful helper functions, I may add them to the project. This uses `_` as a default prefix for each parameter. This is so things like `{"PATH": "..."}` generate `typeset _PATH='...'` and don't mangle your $PATH, for example. The prefix can be customized by passing in a string: `param("mypfx")`. Before declaring a `1.0`, I'm planning on expanding shell support, and have the function determine how to output using the the `$SHELL` parameter: ```fish # This does not work (yet!) eval (curl $URL | jq -r ' import "shell" as shell; "fish" as $SHELL | .community_view | param ') ``` Always up for feedback!
YSH, or the shell formally known as oil, is touted as a possible upgrade path from Bash. This is the first in a three-part series of posts re-introducing the language. 1. [Reviewing YSH](https://programming.dev/post/21093) 2. Sketches of YSH Features *(you are here)* 3. YSH, Narrow Waists, and Perlis-Thompson Problems *(Not yet released)*
YSH, or the shell formally known as oil, is touted as a possible upgrade path from Bash. This is the first in a three-part series of posts re-introducing the language. 1. Reviewing YSH *(you are here)* 2. [Sketches of YSH Features](https://programming.dev/post/21130) 3. YSH, Narrow Waists, and Perlis-Thompson Problems *(Not yet released)*
A huge part of programming in general is learning how to troubleshoot something, not just having someone else fix it for you. One of the basic ways to do that is by [tracing](https://en.wikipedia.org/wiki/Tracing_(software)). Not only can this help you figure out what your script is doing and how it's doing it, but in the event that you need help from another person, posting the output can be beneficial to the person attempting to help. (If your shell isn't listed and you know how to enable tracing, comment below and I'll add it to the table!) Shell | How to enable tracing ---|--- Bash | `set -x` or `set -o xtrace` Fish | `set fish_trace on` sh | `set -x` Zsh | `set -x` or `setopt xtrace` Also, writing scripts in an IDE that supports your language. syntax highlighting can immediately tell you that you're doing something wrong. If an IDE isn't an option and you're using Bash or Sh, you can paste your script into https://www.shellcheck.net/ (Inspired by [this post on /r/bash](https://old.reddit.com/r/bash/comments/xcejrb/set_x_is_your_friend/))
Feedback is still welcome, either here or as Merge Requests to my [Gitlab Pages repo](https://gitlab.com/xPMo/xpmo.gitlab.io).