Autosave: 2025-04-05 10:32:40

This commit is contained in:
thomasabishop 2025-04-05 10:32:40 +01:00
parent ba5cfdf239
commit c837869712
851 changed files with 142 additions and 5 deletions

View file

@ -0,0 +1,25 @@
---
tags: [server-management, procedural]
created: Wednesday, April 02, 2025
---
# Certbot
## Generate certificates for new subdomain
```sh
sudo certbot certonly --standalone -d rootdomain.net -d subdomainA.rootdomain.net -d subdomainB.rootdomain.net
```
## List certificates
```sh
sudo certbot certificates
```
## Delete a certifcate
```sh
sudo cerbot delete --certname rootdomain.net
```

View file

@ -46,6 +46,8 @@ initialization; a nearby declaration makes it obvious.
This can be achieved with good naming alone if you are clever about it. It This can be achieved with good naming alone if you are clever about it. It
doesn't necessarily require automated tools or excessive commentary. doesn't necessarily require automated tools or excessive commentary.
> Don't document bad code - rewrite it. (Kernighan et al.)
### Scope ### Scope
- With smaller, more specific scope we can name things in a more intuitive and - With smaller, more specific scope we can name things in a more intuitive and
@ -72,3 +74,37 @@ doesn't necessarily require automated tools or excessive commentary.
description of how the code works. You should instead focus on describing why description of how the code works. You should instead focus on describing why
something is written the way it is or what the next block of statements something is written the way it is or what the next block of statements
ultimately achieves. ultimately achieves.
## Error handling
- Handling errors well is challenging! It is not easy to write good error
handling that doesnt twist and warp the underlying program logic.
- Try to throw errors close enough to the source to prevent obscure and
out-of-context error handling _while_ being far enough away not to cloud
normal code with roundabout paths.
- _This is something I struggle with. The error is caught later than when it
occurs and then all I have is a generic catch-all error that is hard to make
sense of._
### Close to source - benefits
- Managing each error near its source means that control passes through less
code in an invalid state. By handling an error near to its cause, you retain
important contextual information, making the error-handling code clearer.
### As late as possible - benefits
- This recognizes that code detecting an error rarely knows what to do about it.
It often depends on the context in which it is used. You can pass an exception
through each level until you know how to deal with the error.
### Errors to check for
- Function/method parameters
- Ensure you have been given correct and consistent input. Consider using
assertions for this.
- Check that invariants are satisfied at interesting points in execution
- Check all values from external sources for validity before you use them
- Check the return status of all system and other subordinate function calls.

View file

@ -5,6 +5,12 @@ created: Thursday, March 27, 2025
# Docker cleanup # Docker cleanup
## Generic clean-up: free as many bytes as possible
```sh
sudo docker system prune -a
```
## Check Docker storage usage ## Check Docker storage usage
```sh ```sh

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -13,17 +13,18 @@ computer science.
<a href="https://thomasabishop.github.io/eolas/tags">View tags</a> <a href="https://thomasabishop.github.io/eolas/tags">View tags</a>
**Build ID:** 6d4cfb04-1e87-477a-91e9-34c360bfb8ad **Build ID:** 9445c5fd-135c-4b0b-a70c-7a6fd45d9d58
**Published:** Thu 27 Mar 2025 19:06:00 **Published:** Sat 05 Apr 2025 10:32:35
### Recent edits ### Recent edits
- [[Code_Craft_The_Practice_Of_Writing_Excellent_Code]]
- [[Docker_cleanup]] - [[Docker_cleanup]]
- [[Certbot]]
- [[d212acdb_from_free-software_to_open_source]] - [[d212acdb_from_free-software_to_open_source]]
- [[c8820974_Tor_prioritising_uptake]] - [[c8820974_Tor_prioritising_uptake]]
- [[What_can_the_ISP_see]] - [[What_can_the_ISP_see]]
- [[Code_Craft_The_Practice_Of_Writing_Excellent_Code]]
- [[Constructing paths in Python]] - [[Constructing paths in Python]]
- [[File_operations_in_Python]] - [[File_operations_in_Python]]
- [[Using a context manager in Python]] - [[Using a context manager in Python]]
@ -38,10 +39,9 @@ computer science.
- [[How_tunneling_works_with_VPNs]] - [[How_tunneling_works_with_VPNs]]
- [[Network_tunnels]] - [[Network_tunnels]]
- [[Capturing_program_error_in_Bash]] - [[Capturing_program_error_in_Bash]]
- [[Check_if_value_null_in_Bash]]
### All notes (547) ### All notes (548)
- [[0716531c_rewilding_the_internet]] - [[0716531c_rewilding_the_internet]]
- [[241fe1a3_the_Web_versus_modem_BBSs]] - [[241fe1a3_the_Web_versus_modem_BBSs]]
@ -123,6 +123,7 @@ computer science.
- [[Capturing_user_input_in_Bash]] - [[Capturing_user_input_in_Bash]]
- [[Case_statements_in_Bash]] - [[Case_statements_in_Bash]]
- [[Cells_and_batteries]] - [[Cells_and_batteries]]
- [[Certbot]]
- [[Certificate_authorities]] - [[Certificate_authorities]]
- [[Check_if_value_null_in_Bash]] - [[Check_if_value_null_in_Bash]]
- [[Cherry_picking]] - [[Cherry_picking]]

View file

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View file

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View file

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 289 KiB

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

Before

Width:  |  Height:  |  Size: 6.9 MiB

After

Width:  |  Height:  |  Size: 6.9 MiB

View file

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 224 KiB

View file

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View file

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View file

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View file

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View file

Before

Width:  |  Height:  |  Size: 204 KiB

After

Width:  |  Height:  |  Size: 204 KiB

View file

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

View file

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View file

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View file

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

View file

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View file

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View file

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

Before

Width:  |  Height:  |  Size: 470 KiB

After

Width:  |  Height:  |  Size: 470 KiB

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View file

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

Before

Width:  |  Height:  |  Size: 848 KiB

After

Width:  |  Height:  |  Size: 848 KiB

View file

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View file

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View file

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View file

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View file

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

View file

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View file

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 153 KiB

View file

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View file

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View file

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View file

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 414 KiB

View file

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View file

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

View file

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View file

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View file

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

View file

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 374 KiB

View file

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 9 KiB

View file

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View file

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View file

Before

Width:  |  Height:  |  Size: 448 KiB

After

Width:  |  Height:  |  Size: 448 KiB

View file

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View file

Before

Width:  |  Height:  |  Size: 668 KiB

After

Width:  |  Height:  |  Size: 668 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View file

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View file

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View file

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View file

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View file

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View file

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View file

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

View file

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View file

@ -861,6 +861,7 @@ unlisted: true
- [[Appending_to_files_in_Python]] - [[Appending_to_files_in_Python]]
- [[AWS_CLI]] - [[AWS_CLI]]
- [[Bluetooth]] - [[Bluetooth]]
- [[Certbot]]
- [[Compile_from_source]] - [[Compile_from_source]]
- [[Compile_Python_app_to_single_executable]] - [[Compile_Python_app_to_single_executable]]
- [[Create_timed_systemd_job]] - [[Create_timed_systemd_job]]
@ -1046,6 +1047,7 @@ unlisted: true
- [[Bash_store_status_of_command_execution]] - [[Bash_store_status_of_command_execution]]
### server-management ### server-management
- [[Certbot]]
- [[Certificate_authorities]] - [[Certificate_authorities]]
- [[Disable_non-root_ssh_access]] - [[Disable_non-root_ssh_access]]
- [[Firewalls]] - [[Firewalls]]

Binary file not shown.

25
zk/Certbot.md Normal file
View file

@ -0,0 +1,25 @@
---
tags: [server-management, procedural]
created: Wednesday, April 02, 2025
---
# Certbot
## Generate certificates for new subdomain
```sh
sudo certbot certonly --standalone -d rootdomain.net -d subdomainA.rootdomain.net -d subdomainB.rootdomain.net
```
## List certificates
```sh
sudo certbot certificates
```
## Delete a certifcate
```sh
sudo cerbot delete --certname rootdomain.net
```

View file

@ -46,6 +46,8 @@ initialization; a nearby declaration makes it obvious.
This can be achieved with good naming alone if you are clever about it. It This can be achieved with good naming alone if you are clever about it. It
doesn't necessarily require automated tools or excessive commentary. doesn't necessarily require automated tools or excessive commentary.
> Don't document bad code - rewrite it. (Kernighan et al.)
### Scope ### Scope
- With smaller, more specific scope we can name things in a more intuitive and - With smaller, more specific scope we can name things in a more intuitive and
@ -72,3 +74,37 @@ doesn't necessarily require automated tools or excessive commentary.
description of how the code works. You should instead focus on describing why description of how the code works. You should instead focus on describing why
something is written the way it is or what the next block of statements something is written the way it is or what the next block of statements
ultimately achieves. ultimately achieves.
## Error handling
- Handling errors well is challenging! It is not easy to write good error
handling that doesnt twist and warp the underlying program logic.
- Try to throw errors close enough to the source to prevent obscure and
out-of-context error handling _while_ being far enough away not to cloud
normal code with roundabout paths.
- _This is something I struggle with. The error is caught later than when it
occurs and then all I have is a generic catch-all error that is hard to make
sense of._
### Close to source - benefits
- Managing each error near its source means that control passes through less
code in an invalid state. By handling an error near to its cause, you retain
important contextual information, making the error-handling code clearer.
### As late as possible - benefits
- This recognizes that code detecting an error rarely knows what to do about it.
It often depends on the context in which it is used. You can pass an exception
through each level until you know how to deal with the error.
### Errors to check for
- Function/method parameters
- Ensure you have been given correct and consistent input. Consider using
assertions for this.
- Check that invariants are satisfied at interesting points in execution
- Check all values from external sources for validity before you use them
- Check the return status of all system and other subordinate function calls.

View file

@ -5,6 +5,12 @@ created: Thursday, March 27, 2025
# Docker cleanup # Docker cleanup
## Generic clean-up: free as many bytes as possible
```sh
sudo docker system prune -a
```
## Check Docker storage usage ## Check Docker storage usage
```sh ```sh