It is with zfs, but I not with regular mount
I think (at least not by default). It might depend on the filesystem though.
You can also do the following to prevent unwanted writes when something is not mounted at /mnt/thatdrive
:
# make sure it is not mounted, fails if not mounted which is fine
umount /mnt/thatdrive
# make sure the mountpoint exists
mkdir -p /mnt/thatdrive
# make the directory immutable, which disallows writing to it (i.e. creating files inside it)
chattr +i /mnt/thatdrive
# test write to unmounted dir (should fail)
touch /mnt/thatdrive/myfile
# remount the drive (assumes it’s already listed in fstab)
mount /mnt/thatdrive
# test write to mounted dir (should succeed)
touch /mnt/thatdrive/myfile
# cleanup
rm /mnt/thatdrive/myfile
From man 1 chattr
:
A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not be opened in write mode.
Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
I do this to prevent exactly the situation you’ve encountered. Hope this helps!
If you don’t want spellchecking, then no. You can just change the keyboard layout.
If you do want spellchecking then yes, you will need to install some kind of language pack.
I’m not sure how libreoffice does it, but Firefox has different language packs for translating the UI and for spellchecking.
Are the extra dialects taking up too much space for you?
You’re welcome!
I’m sorry that I don’t have any advice for a specific laptop, but it seems others are helping with that already.
More memory and cores will help you with compiling and running your code.
Have you even read my comment?
It’s probably best to limit yourself to a used laptop.
Reading and writing code is nothing more than reading and writing text, and for that you don’t need a fancy gpu or screen.
What I would recommend you look for in a laptop is
- an SSD instead of an HDD
- more cpu cores (at least 4 cores)
- more memory (RAM) (at least 8GB, preferably 16GB+)
More memory and cores will help you with compiling and running your code.
And make sure you take regular backups! You never know when your disk will fail.
Also make sure to check linux compatibility before you buy. Laptops used to be a pain (10+ years ago), and it’s gotten a lot better, but it’s not always perfect. Just search for “[brand] [model] linux” or try to find the model on the archlinux wiki.
Exactly, if we do a back of the napkin calculation:
Bitcoin
Users
There are 200 million bitcoin wallets, let’s be generous and say those are all owned by unique individuals.
Total energy consumption
Bitcoin used about 114 TWh in 2021[1]
Bitcoin currently uses about 150 TWh annually
Energy consumption per user
150 TWh / year
————————— = 0,75 TWh / user / year
200 million users
Banking system
Users
There are over 8 billion people on the planet today, let’s assume 4 billion of them have access to the global banking system.
Total energy consumption
The global banking system used an estimated 264 TWh in 2021[1]
If we assume the same consumption increase rate for banking, that’s about 348 TWh/year currently.
Energy consumption per user
348 TWh / year
————————— = 0,087 TWh / user / year
4.000 million users
With these numbers, bitcoin uses almost 10x the energy per user annually.
There are of course a myriad of things one can argue over whether it makes a fair comparison, none of which I feel like arguing, since this is just a really simple estimate with a lot of assumptions.
1: I used the numbers in this article uncritically, if you have better numbers you can run your own calculations.
because bash isn’t always in /usr/bin/bash
.
On macOS the version on /usr/bin/bash
is very old (bash 3 I think?), so many users install a newer version with homebrew which ends up in PATH, which /usr/bin/env
looks at.
Protip: I start every bash script with the following two lines:
#!/usr/bin/env bash
set -euo pipefail
set -e makes the script exit if any command (that’s not part of things like if-statements) exits with a non-zero exit code
set -u makes the script exit when it tries to use undefined variables
set -o pipefail will make the exit code of the pipeline have the rightmost non-zero exit status of the pipeline, instead of always the rightmost command.
Yep, it’s definitely better to have as a default