That said, this is probably what any big enough company would do. So your point still stands, maybe car manufacturers are no different.
78 karma · joined October 17, 2017
That said, this is probably what any big enough company would do. So your point still stands, maybe car manufacturers are no different.
On a similar note, though, I have amassed a "dictionary" of 50+ bash aliases, 1-, 2-, or 3-characters long.
Some "theories" emerged as well - I have groups of aliases whose names follow a pattern and depend on what subcommand (e.g. in git or kubectl) or options are included in the alias. This is good for mnemonics.
For extremely common commands, I ditch mnemonics and just choose a 1- or 2-character name that has no connection to the name of the command. For example r='cd -'. I chose "r" simply because it's on the opposite side of Enter, and I get to alternate my hands. (I guess this is a "brief".)
What got me into the alias hoarding business was the discovery of complete-alias[1] and, later, the progcomp_alias bash option. Turned out, you don't have to choose between aliases and programmable completion, you can have both.
Instead of holding the modifier key(s) when activating a shortcut, you can press and release each modifier sequentially.
It does come with some of the fancy keyboards' firmware, but is also a built-in feature of all major OS-es. You can get it without spending a single dollar.
If you optimize a shell feature for general-purpose programming, interactivity will suffer (increased verboseness, usually), and vice versa.
If we try to bring shells closer to the real PLs, instead of just using those PLs when it matters, we'll lose some of things that made shells attractive in the first place.
No, it's a shell that lets you interact with the OS. All the "clasical" UNIX shells were created with interactive use in mind and optimized for it, but happen to be good enough at batch processing[1] to be conflated with programming languages (mostly these days, like, 40+ years later).
The focus on interactive use is the reason you don't have to
- surround command argument lists with parentheses
- put commas between command arguments
- put semicolons at EOL
- surround string literals with quotes (unless the content interferes with the syntax, like, sigils or IFS chars, and you want to escape it).
- surround variable names in braces (unless you want to use some advanced substitution)
- call commands to manipulate I/O; it's baked in.
And these are just the things that existed 40 years ago. Bash gives you so much more stuff that makes interactive use a bliss, but I'm not going to dump the man page here.
Something something boson something neutron, and the Earth goes kaboom.
Children can be very dangerous.
It's not missing. PP is making a point about "single-command variables."
Most likely a command in your script (or one source-d into it) makes an assumption about your $SHELL or login shell that is true for bash/zsh but not for fish.
Merely adding a shebang won't fix such a script.
If you use bash, or any readline-based command line (in emacs mode):
mv long.file.name |^W^Y^Y
results in mv long.file.name long.file.name |
(| is the cursor).
Then, you just edit the second copy of the filename.
BTW, M-C-b/M-C-f will move by one whole "argument" (even if it contains escaped spaces).edit: and if your filename has spaces, replace the ^W above with M-C-b C-k
It's only infinite if you scroll for infinitely long time.
I think the author's point was about how much code you have on the screen at any given instant. Without having to scroll or jump.
I use the multiple desktops feature a lot, though. Some programs are pinned to a dedicated desktop and run all day. Others I start in (or move to, later) a numbered desktop, and switch to them by changing the desktop. Often, most of the desktops contain only one window.
I once used i3 and sway the right way, of course. I guess I had one too many of those programs that were not designed to work at arbitrary window sizes, added the above rule and called it a day.
for_window [all] floating enable
It's stupid, but I've been using this for a couple of years now.yes, my only source for my previous comment was a passport control officer asking me "do you speak bahasa" at the airport :-)
:1,5 !tacEverything but the last argument:
% git add -p dir1
% !!- dir2
git add -p dir2
Everything but the command: % textadept a b c
% vim !*
vim a b c
Substitute a string (once): % echo helo world
% ^lo^llo
echo hello world
First and last arguments: % diff path/a/file path/b/file
% diff !$ !^
diff path/b/file path/a/file
A cool detail is that even a long quoted string containing spaces is considered a single argument, and it all works fine.Also, the bangs can be anywhere on the command line, even inside other kinds of expansion; history expansion has highest priority of all.
Edit: the above is csh-style history expansion, available in bash as well.
The one thing I wanted the most was to avoid any long presses. Everything that requires holding a modifier, even if I do it touch-typing style, with the opposite hand, is unpleasant (to me). So, besides moving most of the punctuation characters to lowercase positions, I also switched to sticky modifiers. (keyd might have some flaws wrt sticky modifiers, and they... get stuck. Not when I want them to be. I might try to go back to XKB.)
Regarding the home-row modifiers, I've only tried moving Control there. I always ended up triggering it by mistake when typing, because when you are typing fast, there is an almost unavoidable overlap in certain sequences, you press the next key before fully releasing the previous key. Some people advice practicing, other software provides various options with timeouts, it's a rabbit hole of work-arounds. So I settled with sticky modifiers.
- the : key to the right of the 0 on the number row, no Shift needed.
- the Enter key to the right of the P.
I've made both changes to my keyboard layout and, not surprisingly, it's quite convenient.
Downside is, you'll have to move the original keys somewhere else. But since I already intended to totally reshuffle all the non-alpha keys for RSI reasons, it wasn't an issue for me.
awk -F= '$2 ~ /[0-9]+/ { print $2 }'
With imaginative choice of FS and RS you can push it very far.Whether other people having to deal with such code will appreciate your imagination is another matter, though.
Edit: I missed the detail where you want to specifically match "foo" as lhs, and anywhere on the line. So the correct condition would be even lengthier : ^ ) You have a valid point. Captures would provide for shorter patterns.
It was called Voyager, and was about porting the company's software, that was currently running on SunOS/SPARC, to Linux/x86. (As SPARC was about to be EOL'd.)
Like Voyager, the space probe, it was about moving away from the Sun (OS) :-)
I guess the parent refers to Lua treating strings as simple byte arrays, whereas a text editor has to deal with characters in various encodings, some of which can be multi-byte.
This was not the kind of toilet paper you would see nowadays, though. It was not in a roll, but a deck of precut pieces, and they were not soft at all. One side was glossy, and the other - rough. The glossy side was perfect for writing. It was almost like a notebook, only cheaper.
Here's a link to a somewhat similar kind - https://www.ebay.com/itm/VERY-RARE-OLD-ORIGINAL-RUSSIAN-TOIL...
(I'm not the seller, I swear.)
I do miss these times. I could actually write a whole program without compiling it, and it would run fine on a computer later. Most of the times.
gcc has a family of command-line options starting with -M than can generate dependencies as a byproduct during compilation. The generated files are in Makefile format, and only need to be included in your main Makefile.
https://make.mad-scientist.net/papers/advanced-auto-dependen...
Some of them hate asking you too. Sometimes it's a policy forced on them by management, and they are to be fined if they skipped a customer. Overheard this in the bus, a cashier was complaining to her friend. There were cameras installed at every register specifically for that.
To be honest, the cashiers and waitresses I've talked to in the US delivered a pretty good act, totally believable. When the big chain stores in my country decided to copy the US, the lack of acting skills in our culture was very noticeable.
Your comment reminded me of a similar experience of mine, but in reverse.
I was washing my hands in the restrooms at work, and decided to drink some water. I bent over, cupped my hand and started drinking.
At this moment, a guy went out of another stall and walked up to the sink next to me. He was some sort of manager, I guess, because he'd always be in a suit when I've seen him around the office before. When I got up, I saw him drinking water the same way I did, only he was failing to get much of it into his mouth. :-) Obviously, this was his first time.
Bulgaria was under USSR's wing when I was a kid, and I have first-hand experience about that.
There was this thing called "kruzhoks", (a Russian word, diminutive of "circle", like in "circle of friends"), which were after-school interest-based clubs, mainly about technical stuff. Every other kid was a member of some kind of kruzhok. Back then I didn't realize that, but the state must have had some sort of "master plan" to prepare as many kids as possible for technical careers when they grow up.
I also distinctly remember the exceptional quality of the textbooks (math, mechanics, electronics). The content was presented in a pedagogical order, with increasing difficulty, and carefully selected exercises that helped the concepts sink in. I used Russian textbooks from the 60's and 70's up until I graduated the university in 2005. (I'm a mechanical engineer, physics hasn't changed much since then, heh.) The typography was also excellent. When I first saw LaTeX output, the first thing that came to mind was Russian textbooks. I don't know how they did it back then.
Encountering these in my very first programming job made me learn make(1).
The thing is, I'm not very bright and my work "style" involves a fair share of trial and error. Obviously, all this waiting prevented me from doing my thing, so I eventually rewrote the whole build system just so I can do more trial-and-error.
I've always considered my dependency on a fast BTD loop a weakness, though. I guess the majority of developers can just imagine what the code does in their head and only make the changes when they know what they're doing.