If it's a book that's only available DRM, I buy it on the Kindle. I'm not fond of buying DRMed books, but most are only available that way, and Amazon is the most likely to still be around in the future.
For non-DRM:
Tor Books are no longer DRMed.
Baen Books -- https://www.baen.com/ -- don't have DRM, and you can buy directly from the publisher, and manage your library on their site, and download as many times as you like. You can also often purchase eArc versions, and they have a monthly subscription bundle were you can read parts of the book as it comes out, and then you get the complete book when it's done.
If you're interested in translated Japanese light novels, there's J Novel Club -- https://j-novel.club/ -- for a monthly subscription, you can read book parts for free as they're being translated. Once they're fully translated, you can then purchase the final epub directly from their site.
Books are interesting in that they both are and aren't fungible. If, say, I want to read the next Martha Wells Murderbot book, or the next Julie McGalliard Rougarou book, I have to buy that particular book.
But if I'm just looking for another book to read, I always check Tor, Baen, and J Novel Club first.
Perhaps replace the time worked with time spent looking for another job. Despite having faced suicidal depression a time or two myself, I have no great advice to offer; but one of the things I've turned to many times is a bit in the ASR FAQ.
5.8) But seriously, should I kill myself?
Seriously, no.
As posted to ASR by Ed Evans:
Ultimate recovery stalks us all, no need to succour it. Quit or
take a leave with or without pay (or permission), stop seeing him
or her, recognise that the cat or dog does rule you, call in sick
and spend the day in the big blue room, it's only money and can
be earned again, all the pictures will be posted again, call the
local professionals if you really feel that way...
And if all else fails? Lawn mowing.
If you're willing to take the severe step of killing yourself, you should
be willing to take less severe steps such as quitting your job or taking a
leave without permission. And really, there _is_ help out there.
Maybe in here, too.
And more of us have been there than you may realize. We're grateful
now that we didn't do it. (Most days.) In chess they have a saying,
"You can't win by resigning." Keep playing; you never know.
Speed. I moved mostly to Ruby years ago, but when doing lots of text processing, a trivial script in Perl runs a lot faster than a similar trivial script in Ruby.
The part where your friend stopped playing you -- that's something that I just don't understand, on a fundamental level.
My brother-in-law talked about chess for years, I finally agreed to play him, and won both games. He's never brought it up again. It makes no sense to me.
Growing up, I was the youngest, so I generally lost at whatever games we played, and it never made me want to stop playing. When my significantly older brother came back home and stayed with us for awhile, we played chess regularly, and I lost a _lot_. But I kept playing, and when I finally got to the point where I won one out of three, it felt really good.
How much fun would I have missed out on if I hadn't kept playing?
This guy is the most stubborn person when learning something that you can find. I lent him a book on flamenco guitar (that I lost hope to recover :) and he actually run through it and learned to play it like a pro. He's short but won a position as firefighter. Now he improved his English, took a sabbatical and is touring south-east Asia with a backpack.
Probably he was just diving in his next obsesion at the time.
It is a neat academic exercise to find these but I think that's sort of the point - why?
If you're building something that multiple folks will be reading and using just call out to external processes and make it easier to follow what's going on. It's neat to know how to do these things, but they're honestly a bit of a security hole because a large portion of folks using them will never comprehend the why and how and just assume it's doing the proper what.
Why? No external dependencies, your code can run anywhere you have a Bash shell. This also means a smaller attack surface.
Also readability: While some of the examples may be somewhat confusing to someone who doesn't have a lot of Bash experience, to someone who does it can be a lot more readable then feeding a string in yet another language to an external program and processing the output..
Sed exists everywhere for a reasonably complete definition of everywhere - if it doesn't exist then you probably don't have access to Bash (and definitely not a fully featured one)
I have managed networks with 1000+ (microwave link) network devices that had Bash but no sed.. Sure was nice to be able to script maintenance on those..
Your definition of "reasonably complete" might not work for everyone else's use case.
Other people mention constrained environments, but tight loops are also a thing. If you know bash's parameter expansion well, it can make it really easy to write a one-liners that speedily process large amounts of output. Setting up and tearing down a whole process (e.g. sed) can cause an order of magnitude slow down, which is significant if you just want something quick and dirty.
I feel like... maybe? But quick or dirty should be enough - you could also build a python interpreter once to map over the data and then maybe write up some tests to confirm the functionality.
Every explanation of why to use bash here seems like it's got a whole lot of constraints on when it's a good to use - I've finished some tasks just in bash scripts but when I'm writing something for anything other than one time passes it seems like more of a maintenance liability than anything else.
Meh. Choose your poison. As the trope goes, "No language is good at everything." Python is verbose compared to bash for many tasks, and the reverse is true as well.
IMHO, spending the time to actually learn some bash can really improve one's CLI life. Bashing on bash seems mostly like a tired ol' trope, "If it's in bash, it's bad."
The author of the original article really has written some pretty shell code!
Useful in small embedded. Add twelve lines to a boot script, or bring in several new executables into /bin?
There are resource constraints even in large-ish embedded. Your main file system may live in a decent amount of flash space, but when the kernel is booting, it uses a tiny file system in RAM, which is pulled out of an initramfs image. There is a shell there with scripts.
The partition for storing the kernel image (with initramfs, device tree blobs and whatever else) might be pretty tight.
However, because a lot of these snippets depend on Bash extensions, they preclude the use of a smaller, lighter shell.
"They won't admit to this on their website"? I think it's more that they won't shut up about it. Their entire business model and their marketing is all based on the idea that most people are around wifi most of the time.
The cell data you pay for is your cell data usage, you (of course) don't pay them for your wifi data usage.
It doesn't appear to be set up to work without logging in to Steam first. That really reduces the portability.