Compare commits
	
		
			17 Commits
		
	
	
		
			415985d08c
			...
			59fb0ada24
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						59fb0ada24
	
				 | 
					
					
						|||
| 
						
						
							
						
						b68fa25cea
	
				 | 
					
					
						|||
| 
						
						
							
						
						5bd45973b4
	
				 | 
					
					
						|||
| 
						
						
							
						
						66cdca5c85
	
				 | 
					
					
						|||
| 
						
						
							
						
						aa32bfc249
	
				 | 
					
					
						|||
| 
						
						
							
						
						fc88ab6200
	
				 | 
					
					
						|||
| 
						
						
							
						
						eaec01076b
	
				 | 
					
					
						|||
| 
						
						
							
						
						0abc2818e8
	
				 | 
					
					
						|||
| 
						
						
							
						
						4250f619c3
	
				 | 
					
					
						|||
| 
						
						
							
						
						4d53f7c7d6
	
				 | 
					
					
						|||
| 
						
						
							
						
						38feabb79f
	
				 | 
					
					
						|||
| 
						
						
							
						
						b4683a8681
	
				 | 
					
					
						|||
| 
						
						
							
						
						d2934bf8a3
	
				 | 
					
					
						|||
| 
						
						
							
						
						5afc414a52
	
				 | 
					
					
						|||
| 
						
						
							
						
						d8b4a9d00b
	
				 | 
					
					
						|||
| 
						
						
							
						
						a15b565e09
	
				 | 
					
					
						|||
| 
						
						
							
						
						6ccba626c8
	
				 | 
					
					
						
							
								
								
									
										23
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								Makefile
									
									
									
									
									
								
							@@ -4,6 +4,8 @@ EDITOR ?= vi
 | 
				
			|||||||
FZF != command -v sk || command -v fzy || command -v fzf || \
 | 
					FZF != command -v sk || command -v fzy || command -v fzf || \
 | 
				
			||||||
	{ echo install a fuzzy finder && exit 1 ;}
 | 
						{ echo install a fuzzy finder && exit 1 ;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					spill_contents = sed -e '1,/---/d'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
help: ## Print the help message
 | 
					help: ## Print the help message
 | 
				
			||||||
	@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
 | 
						@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
 | 
				
			||||||
		sort | \
 | 
							sort | \
 | 
				
			||||||
@@ -11,31 +13,38 @@ help: ## Print the help message
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
articles != find * -type f -name "*.md"
 | 
					articles != find * -type f -name "*.md"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
categories != ls -d */
 | 
					dirs != ls -d */
 | 
				
			||||||
 | 
					categories = $(patsubst %/, %, $(dirs))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
databases = $(patsubst %/, .dbs/%.rec, $(categories))
 | 
					databases = $(patsubst %, .dbs/%.rec, $(categories))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default += $(databases)
 | 
					default += $(databases)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(databases): .dbs/%.rec: %/ | .dbs/
 | 
					$(foreach dir, $(categories), \
 | 
				
			||||||
 | 
						$(eval .dbs/$(dir).rec: $(wildcard $(dir)/*)) \
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(databases): .dbs/%.rec: %/
 | 
				
			||||||
	$(info making $(@F))
 | 
						$(info making $(@F))
 | 
				
			||||||
	mkdir -p $(@D)
 | 
						@mkdir -p $(@D)
 | 
				
			||||||
	for entry in $(shell find $< -type f -name "*.md") ; do \
 | 
						for entry in $(shell find $< -type f -name "*.md") ; do \
 | 
				
			||||||
		sed -n '2,/^---$$/ {/^---$$/d; p}' "$$entry" |\
 | 
							sed -n '2,/^---$$/ {/^---$$/d; p}' "$$entry" |\
 | 
				
			||||||
		sed -e 's/\[ //'  -e 's/ \]//' |\
 | 
							sed -e 's/\[ //'  -e 's/ \]//' |\
 | 
				
			||||||
		tr -d '"' ;\
 | 
							tr -d '"' ;\
 | 
				
			||||||
		printf "wordcount: %s\n" "$$(wc -w < $$entry)" ;\
 | 
							printf "wordcount: %s\n" "$$(wc -w < $$entry)" ;\
 | 
				
			||||||
		printf "file: %s\n\n" "$$entry" ;\
 | 
							printf "file: %s\n\n" "$$entry" ;\
 | 
				
			||||||
	done >> $@
 | 
						done > $@
 | 
				
			||||||
	for entry in $(shell find $< -type f -name "*.md"); do \
 | 
						for entry in $(shell find $< -type f -name "*.md"); do \
 | 
				
			||||||
		recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
 | 
							recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
 | 
				
			||||||
 | 
							recset $@ -e "file = '$${entry}'" -f content --set-add="$$($(spill_contents) $${entry})" ;\
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
db.rec: $(databases)
 | 
					db.rec: $(databases)
 | 
				
			||||||
	printf '%s\n' '%rec: guide' > $@
 | 
						printf '%s\n' '%rec: guide' > $@
 | 
				
			||||||
 | 
						printf '%s\n' '%key: title' >> $@
 | 
				
			||||||
	printf '%s\n' '%type: wordcount int' >> $@
 | 
						printf '%s\n' '%type: wordcount int' >> $@
 | 
				
			||||||
	printf '%s\n\n' '%sort: title' >> $@
 | 
						printf '%s\n\n' '%sort: title' >> $@
 | 
				
			||||||
	cat $^ >> $@
 | 
						recsel $^ >> $@
 | 
				
			||||||
	recsel $@ -e "requires != ''" -CR title,requires |\
 | 
						recsel $@ -e "requires != ''" -CR title,requires |\
 | 
				
			||||||
	while read title requires; do \
 | 
						while read title requires; do \
 | 
				
			||||||
		IFS=', ' && for provider in $$requires; do \
 | 
							IFS=', ' && for provider in $$requires; do \
 | 
				
			||||||
@@ -62,7 +71,7 @@ article: ## Write an article
 | 
				
			|||||||
	filename="$$(echo "$$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')" ;\
 | 
						filename="$$(echo "$$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')" ;\
 | 
				
			||||||
	printf '%s\n' '---' >> $$path/$$filename.md ;\
 | 
						printf '%s\n' '---' >> $$path/$$filename.md ;\
 | 
				
			||||||
	printf 'title: "%s"\n' "$$title" >> $$path/$$filename.md ;\
 | 
						printf 'title: "%s"\n' "$$title" >> $$path/$$filename.md ;\
 | 
				
			||||||
	printf 'tags: [ "%s" ]\n' "$$path" | sed 's#\/#", "#g' >> $$path/$$filename.md ;\
 | 
						printf 'tags: [ "%s" ]\n' "$$path" | tr '[:upper:]' '[:lower:]' | sed 's#\/#", "#g' >> $$path/$$filename.md ;\
 | 
				
			||||||
	printf '%s\n\n' '---' >> $$path/$$filename.md ;\
 | 
						printf '%s\n\n' '---' >> $$path/$$filename.md ;\
 | 
				
			||||||
	$(EDITOR) +5 "$$path/$$filename.md"
 | 
						$(EDITOR) +5 "$$path/$$filename.md"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ recsel db.rec -q gpg
 | 
				
			|||||||
recsel db.rec -e "title = 'ssh'"
 | 
					recsel db.rec -e "title = 'ssh'"
 | 
				
			||||||
recsel db.rec -e "title ~ 'ssh'"
 | 
					recsel db.rec -e "title ~ 'ssh'"
 | 
				
			||||||
recsel db.rec -e "title ~ 'bash'" -R title,wordcount
 | 
					recsel db.rec -e "title ~ 'bash'" -R title,wordcount
 | 
				
			||||||
 | 
					recsel db.rec -m 1 -P content | less -R
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Style
 | 
					# Style
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "at"
 | 
					title: "at"
 | 
				
			||||||
tags: [ "Basics", "time" ]
 | 
					tags: [ "basics", "time" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Install with:
 | 
					Install with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Basics"
 | 
					title: "Basics"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You need about a dozen commands to move around Linux.
 | 
					You need about a dozen commands to move around Linux.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "clock"
 | 
					title: "clock"
 | 
				
			||||||
tags: [ "Basics", "time" ]
 | 
					tags: [ "basics", "time" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Show system time:
 | 
					Show system time:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "conditionals"
 | 
					title: "conditionals"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# If statements
 | 
					# If statements
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "cron"
 | 
					title: "cron"
 | 
				
			||||||
tags: [ "Basics", "time" ]
 | 
					tags: [ "basics", "time" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Cronie
 | 
					# Cronie
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "bash games"
 | 
					title: "bash games"
 | 
				
			||||||
tags: [ "Games" ]
 | 
					tags: [ "games" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Games are a great way to learn bash.
 | 
					Games are a great way to learn bash.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
title: "kernel"
 | 
					 | 
				
			||||||
tags: [ "Basics" ]
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
## Living Space
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Kernel modules live in lib/modules/$(uname -r)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Change
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Load them with
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
sudo modprobe ath9k
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Or remove one with
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
sudo modprove uvcvideo
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The PC's irritating speaker beep can be really annoying. Disable it with:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
sudo modprobe -r pcspeaker
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "kill"
 | 
					title: "kill"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you want to kill a program in a graphical environment, open a terminal and type:
 | 
					If you want to kill a program in a graphical environment, open a terminal and type:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "locale"
 | 
					title: "locale"
 | 
				
			||||||
tags: [ "Basics", "time" ]
 | 
					tags: [ "basics", "time" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Your locale tells the computer your location, preferred time-and-date format, standard language, papersize, et c.
 | 
					Your locale tells the computer your location, preferred time-and-date format, standard language, papersize, et c.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "locating"
 | 
					title: "locating"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Type
 | 
					# Type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "processes"
 | 
					title: "processes"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Proccesses
 | 
					# Proccesses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "time"
 | 
					title: "time"
 | 
				
			||||||
tags: [ "Basics", "time" ]
 | 
					tags: [ "basics", "time" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# systemd
 | 
					# systemd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "users"
 | 
					title: "users"
 | 
				
			||||||
tags: [ "Basics" ]
 | 
					tags: [ "basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Basic Information
 | 
					# Basic Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "profanity"
 | 
					title: "profanity"
 | 
				
			||||||
tags: [ "Chat", "omemo" ]
 | 
					tags: [ "chat", "omemo" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Setup (Commands)
 | 
					# Setup (Commands)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "wgetpaste"
 | 
					title: "wgetpaste"
 | 
				
			||||||
tags: [ "Chat" ]
 | 
					tags: [ "chat" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
See available pastebins:
 | 
					See available pastebins:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "unison"
 | 
					title: "unison"
 | 
				
			||||||
tags: [ "Backups", "synch" ]
 | 
					tags: [ "backups", "synch" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install unison on both machines, and make sure both have the same version of unison, with the same version of the ocaml compiler (the smallest difference will cause problems).
 | 
					Install unison on both machines, and make sure both have the same version of unison, with the same version of the ocaml compiler (the smallest difference will cause problems).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Base 16"
 | 
					title: "Base 16"
 | 
				
			||||||
tags: [ "Data" ]
 | 
					tags: [ "data" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,5 +5,10 @@ tags: [ "data", "calendar", "daylight savings" ]
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Setup
 | 
					## Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The UK government keeps an ics file with clock, [here](https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics).
 | 
					The UK government keeps an `ics` file with clock.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					wget https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics
 | 
				
			||||||
 | 
					calcurse -i united-kingdom.ics
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,10 +9,10 @@ Install `opensmtpd` (or similar), then `ncat` or `nc` or `netcat` (this mysterio
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Start the `opensmtpd` service, then use netcat to speak with the mail-daemon:
 | 
					Start the `opensmtpd` service, then use netcat to speak with the mail-daemon:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
```
 | 
					 | 
				
			||||||
nc localhost 25
 | 
					nc localhost 25
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The computer should respond with code `220`, which means 'I am listening'.
 | 
					The computer should respond with code `220`, which means 'I am listening'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> 220 hex ESMTP OpenSMTPD
 | 
					> 220 hex ESMTP OpenSMTPD
 | 
				
			||||||
@@ -40,7 +40,7 @@ Tell the mail daemon who you are in this format.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Then tell it who you're sending to.
 | 
					Then tell it who you're sending to.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```sh
 | 
				
			||||||
RCPT TO: <www@dmz.rs>
 | 
					RCPT TO: <www@dmz.rs>
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -67,7 +67,7 @@ You will find the email under `/var/spool` or `/var/mail` or similar.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
If unsure, just take a part of your email, like `FRAGMENT="turn off server please"`, then `grep` for it:
 | 
					If unsure, just take a part of your email, like `FRAGMENT="turn off server please"`, then `grep` for it:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 ```bash
 | 
					 ```sh
 | 
				
			||||||
sudo grep -r $FRAGMENT /var/spool/*
 | 
					sudo grep -r $FRAGMENT /var/spool/*
 | 
				
			||||||
 ```
 | 
					 ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,17 +1,17 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "exiftool"
 | 
					title: "exiftool"
 | 
				
			||||||
tags: [ "Metadata" ]
 | 
					tags: [ "metadata", "exifdata" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Find metadata.
 | 
					Find metadata:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
exiftool image.jpg
 | 
					exiftool "$file".jpg
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Find info on all images in current directory.
 | 
					Find info on all `.png` images in current directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
exiftool -ext .png .
 | 
					exiftool -ext .png .
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -19,22 +19,14 @@ You can make this recurring with the -r switch.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
And overwrite all metadata:
 | 
					And overwrite all metadata:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
exiftool -all= -overwrite_original -ext jpg .
 | 
					exiftool -all= -overwrite_original -ext jpg .
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
(NB: This does not work on pdf data. See [here](pdf_erasure.md) for erasing all pdf data)
 | 
					(NB: This does not work on pdf data. See [here](pdf_erasure.md) for erasing all pdf data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Or just GPS data:
 | 
					Or just GPS data:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
exiftool -gps:all= *.jpg
 | 
					exiftool -gps:all= *.jpg
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can also use the imagemagick tool:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
identify -verbose
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,72 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "git-lfs"
 | 
					title: "git-lfs"
 | 
				
			||||||
tags: [ "data" ]
 | 
					tags: [ "data", "git" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install, and add with
 | 
					Git Large File Storage ('LFS') needs to change your `~/.gitconfig` to check out those binary files:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
 | 
					cat ~/.gitconfig
 | 
				
			||||||
git lfs install
 | 
					git lfs install
 | 
				
			||||||
 | 
					cat ~/.gitconfig
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Then track some filetype with:
 | 
					Then track some filetypes with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
git lfs track "\*.ttf"
 | 
					cd $git_repository
 | 
				
			||||||
 | 
					ext=ttf
 | 
				
			||||||
 | 
					git lfs track "*.$ext"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Or a directory with:
 | 
					Or a directory with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
git lfs track "images/"
 | 
					git lfs track "images/"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
All changes require adding `.gitattributes`.
 | 
					Track the changes to `.gitattributes`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					git status
 | 
				
			||||||
 | 
					git add .gitattributes
 | 
				
			||||||
 | 
					git commit -m "add $ext to lfs"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Bash Completion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If bash completion does not work, you'll have to add it:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					git lfs completion bash |  sudo tee /usr/share/bash-completion/completions/git-lfs 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Trouble Shooting
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You have some file "$FILE".png, which has some problem.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check the filetype:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					file "$FILE".png
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This should say the type is 'image'.
 | 
				
			||||||
 | 
					If it says the type is 'text', then this file is really just a reminder to `git-lfs` to check out that file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check `git-lfs` is expecting that file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					git lfs status
 | 
				
			||||||
 | 
					git lfs ls-files
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					...then try these commands, and check the filetype again:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					git lfs fetch --all
 | 
				
			||||||
 | 
					git lfs fsck
 | 
				
			||||||
 | 
					git lfs checkout
 | 
				
			||||||
 | 
					git lfs status
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "git"
 | 
					title: "git subtree"
 | 
				
			||||||
tags: [ "data", "git", "subtree" ]
 | 
					tags: [ "data", "git", "subtree" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "gpg"
 | 
					title: "gpg"
 | 
				
			||||||
tags: [ "data", "GPG" ]
 | 
					tags: [ "data", "gpg" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [Setup](gpg/basics.md)
 | 
					- [Setup](gpg/basics.md)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "gpg"
 | 
					title: "gpg with vim"
 | 
				
			||||||
tags: [ "vim", "data", "GPG" ]
 | 
					tags: [ "vim", "data", "GPG" ]
 | 
				
			||||||
requires: [ "GPG Basics", "vim basics" ]
 | 
					requires: [ "GPG Basics", "vim basics" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "groff"
 | 
					title: "groff"
 | 
				
			||||||
tags: [ "Data" ]
 | 
					tags: [ "data", "logic" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Basic Documents
 | 
					# Basic Documents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,60 +1,52 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "khard"
 | 
					title: "khard"
 | 
				
			||||||
tags: [ "Data" ]
 | 
					tags: [ "data" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Get the basic config:
 | 
					Get the basic config:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
mkdir ~/.config/khard
 | 
					mkdir ~/.config/khard
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
cp /usr/share/doc/khard/examples/khard/khard.conf.example ~/.config/khard.conf
 | 
					cp /usr/share/doc/khard/examples/khard/khard.conf.example ~/.config/khard.conf
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Short list
 | 
					Short list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard list
 | 
					khard list
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Longer list
 | 
					Longer list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard show
 | 
					khard show
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Show from addressbook 'work'
 | 
					Show from addressbook 'work'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard list -a work
 | 
					khard list -a work
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Make a new contact in address book 'family'
 | 
					Make a new contact in address book 'family'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard new -a family
 | 
					khard new -a family
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard edit grampa
 | 
					khard edit grampa
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard remove bob
 | 
					khard remove bob
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Move contact 'nina' from 'work' to 'home' address book.
 | 
					Move contact 'nina' from 'work' to 'home' address book.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
khard move -a home nina -A work
 | 
					khard move -a home nina -A work
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Advanced
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Merge:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
khard merge [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook] [-U target_uid|-t target_search_terms]
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								data/pass.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								data/pass.md
									
									
									
									
									
								
							@@ -1,42 +1,42 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "pass"
 | 
					title: "pass"
 | 
				
			||||||
tags: [ "data" ]
 | 
					tags: [ "data" ]
 | 
				
			||||||
 | 
					requires: "GPG Basics"
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
[Video instructions](https://www.hooktube.com/watch?v=hlRQTj1D9LA)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Setup [gpg](./gpg.md) keys.
 | 
					Setup [gpg](./gpg.md) keys.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Show your gpg secret it:
 | 
					Show your gpg secret it:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
gpg --list-secret-keys
 | 
					gpg --list-secret-keys
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Then use the id number under `sec` to make a pass repo:
 | 
					Then use the id number under `sec` to make a pass repo:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
KEY="$(gpg --list-secret-keys  | grep -m 1 -A1 '^sec' | tail -n 1)"
 | 
					KEY="$(gpg --list-secret-keys  | grep -m 1 -A1 '^sec' | tail -n 1)"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
pass init $KEY
 | 
					pass init $KEY
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To add a basic password, e.g. for `$WEBSITE`:
 | 
					To add a basic password, e.g. for `$WEBSITE`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
pass $WEBSITE
 | 
					pass $WEBSITE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To insert a multiline password, e.g. with a login name:
 | 
					To insert a multiline password, e.g. with a login name:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
pass add -m $WEBSITE
 | 
					pass add -m $WEBSITE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Remove a password:
 | 
					Remove a password:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
pass rm $WEBSITE
 | 
					pass rm $WEBSITE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,8 @@
 | 
				
			|||||||
title: "pdf to txt"
 | 
					title: "pdf to txt"
 | 
				
			||||||
tags: [ "data", "pdf", "ocr" ]
 | 
					tags: [ "data", "pdf", "ocr" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
How to translate pdf book images to text (results are very poor, and will need lots of corrections).
 | 
					
 | 
				
			||||||
 | 
					How to translate pdfs to text (results are very poor, and will need lots of corrections).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Dependencies
 | 
					## Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -17,8 +18,8 @@ pdftoppm -png *file*.pdf test
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
for x in \*png; do
 | 
					for x in *png; do
 | 
				
			||||||
    tesseract -l eng  "$x" - >> *out*.txt
 | 
					    tesseract -l eng  "$x" - >> out.txt
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "PDF Metadata Erasure"
 | 
					title: "PDF Metadata Erasure"
 | 
				
			||||||
tags: [ "Metadata", "Ghost Script", "gs", ".pdf" ]
 | 
					tags: [ "metadata", "ghost script", "gs", ".pdf" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You cannot erase pdf metadata with `exiftool` (it only *appends* your changes).
 | 
					You cannot erase pdf metadata with `exiftool` (it only *appends* your changes).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,6 +44,9 @@ recset -f "$new_field" --delete $database
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- [Extended example](recfiles/extended.md)
 | 
					- [Extended example](recfiles/extended.md)
 | 
				
			||||||
- [Playing with board games data](recfiles/Board_Games.md)
 | 
					- [Playing with board games data](recfiles/Board_Games.md)
 | 
				
			||||||
 | 
					- [Playing with IP addresses](recfiles/IP_ASN.md)
 | 
				
			||||||
 | 
					- [Manage LaTeX Bibliographies](recfiles/bibliography.md)
 | 
				
			||||||
 | 
					- [Fixes](recfiles/recfixes.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Resources
 | 
					# Resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								data/recfiles/IP_ASN.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								data/recfiles/IP_ASN.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					title: "IP Addresses with Recfiles"
 | 
				
			||||||
 | 
					tags: [ "data", "recfiles", "games" ]
 | 
				
			||||||
 | 
					requires: "Recfiles"
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Download the Database
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Download the csv data, and separate the ipv4 data from the ipv6.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					curl -Lo ips.zip 'https://www.kaggle.com/api/v1/datasets/download/ipinfo/ipinfo-country-asn'
 | 
				
			||||||
 | 
					unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '\.'"  > ipv4.rec
 | 
				
			||||||
 | 
					unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '::'"  > ipv6.rec
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										121
									
								
								data/recfiles/bibliography.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								data/recfiles/bibliography.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					title: "Recfile Bibliography for TeX"
 | 
				
			||||||
 | 
					tags: [ "data", "database", "recfiles", "tex" ]
 | 
				
			||||||
 | 
					requires: [ "Recfiles", "TeX", "Makefile" ]
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Store your bibliography in a `recfile` database, then extract any part with `make`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For example, you could store books like this in `bibliography.rec`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```recfile
 | 
				
			||||||
 | 
					%rec: book
 | 
				
			||||||
 | 
					%key: slug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: thinkingexperience
 | 
				
			||||||
 | 
					author: H. H. Price
 | 
				
			||||||
 | 
					title: Thinking and Experience
 | 
				
			||||||
 | 
					year: 1953
 | 
				
			||||||
 | 
					publisher: Harvard University Press, Cambridge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: inventingrightwrong
 | 
				
			||||||
 | 
					author: John Leslie Mackie
 | 
				
			||||||
 | 
					title: Inventing Right and Wrong
 | 
				
			||||||
 | 
					year: 1997
 | 
				
			||||||
 | 
					publisher: Penguin Books, England
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Run `make book` to extract `book.bib`, ready for LaTeX to use:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bib
 | 
				
			||||||
 | 
					@book{thinkingexperience,
 | 
				
			||||||
 | 
					   author = {H. H. Price},
 | 
				
			||||||
 | 
					   title = {Thinking and Experience},
 | 
				
			||||||
 | 
					   year = {1953},
 | 
				
			||||||
 | 
					   publisher = {Harvard University Press, Cambridge},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@book{inventingrightwrong,
 | 
				
			||||||
 | 
					   author = {John Leslie Mackie},
 | 
				
			||||||
 | 
					   title = {Inventing Right and Wrong},
 | 
				
			||||||
 | 
					   year = {1997},
 | 
				
			||||||
 | 
					   publisher = {Penguin Books, England},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `makefile` syntax is just a few lines (though admittedly employs some garbled shell-crud):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```make
 | 
				
			||||||
 | 
					bibs != grep -Po '%rec: \K.*' bibliography.rec
 | 
				
			||||||
 | 
					bibfiles = $(patsubst %, %.bib, $(bibs))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(bibfiles): %.bib: bibliography.rec
 | 
				
			||||||
 | 
						recsel $< -t $(basename $@) |\
 | 
				
			||||||
 | 
							sed 's/slug: \(.*\)/@$(basename $@){\1,/g' |\
 | 
				
			||||||
 | 
							sed 's/^\(\b.*\b\): \(.*\)/   \1 = {\2},/gI' |\
 | 
				
			||||||
 | 
							sed 's/^$$/}\n/g' > $@
 | 
				
			||||||
 | 
							echo '}' >> $@
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Here's a longer `bibliography.rec` file, which can also produce `article.bib`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```recfile
 | 
				
			||||||
 | 
					%rec: book
 | 
				
			||||||
 | 
					%key: slug
 | 
				
			||||||
 | 
					%type: year int
 | 
				
			||||||
 | 
					%constraint: year > -2000
 | 
				
			||||||
 | 
					%sort: year month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: thinkingexperience
 | 
				
			||||||
 | 
					author: H. H. Price
 | 
				
			||||||
 | 
					title: Thinking and Experience
 | 
				
			||||||
 | 
					year: 1953
 | 
				
			||||||
 | 
					publisher: Harvard University Press, Cambridge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: inventingrightwrong
 | 
				
			||||||
 | 
					author: John Leslie Mackie
 | 
				
			||||||
 | 
					title: Inventing Right and Wrong
 | 
				
			||||||
 | 
					year: 1997
 | 
				
			||||||
 | 
					publisher: Penguin Books, England
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: metaphysicscontemporaryintro
 | 
				
			||||||
 | 
					author: Michael J. Loux
 | 
				
			||||||
 | 
					title: Metaphysics: A Contemporary Introduction
 | 
				
			||||||
 | 
					year: 1998
 | 
				
			||||||
 | 
					publisher: Routledge, London
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: pluralityworlds
 | 
				
			||||||
 | 
					author: David Lewis
 | 
				
			||||||
 | 
					title: On the Plurality of Worlds
 | 
				
			||||||
 | 
					publisher: Blackwell Publishing, Oxford
 | 
				
			||||||
 | 
					year: 2001
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%rec: article
 | 
				
			||||||
 | 
					%key: slug
 | 
				
			||||||
 | 
					%sort: year month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: genuinerealisttheory
 | 
				
			||||||
 | 
					author: John Divers
 | 
				
			||||||
 | 
					title: A Genuine Realist Theory of Advanced Modalizing
 | 
				
			||||||
 | 
					year: 1999
 | 
				
			||||||
 | 
					pages: 217–240
 | 
				
			||||||
 | 
					month: april
 | 
				
			||||||
 | 
					journaltitle: Mind
 | 
				
			||||||
 | 
					uri: https://academic.oup.com/mind/article-abstract/108/430/217/975258?redirectedFrom=fulltext
 | 
				
			||||||
 | 
					volume: 108
 | 
				
			||||||
 | 
					publisher: Harvard University Press, Cambridge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					slug: twokindsmentalrealism
 | 
				
			||||||
 | 
					author: Tam\'{a}s Demeter
 | 
				
			||||||
 | 
					title: Two Kinds of Mental Realism
 | 
				
			||||||
 | 
					year: 2009
 | 
				
			||||||
 | 
					pages: 40:59-71
 | 
				
			||||||
 | 
					uri: https://www.researchgate.net/profile/Tamas_Demeter2/publication/41554923_Two_Kinds_of_Mental_Realism/links/0deec53247f5a4ae21000000.pdf
 | 
				
			||||||
 | 
					month: august
 | 
				
			||||||
 | 
					journaltitle: Journal for General Philosophy of Science
 | 
				
			||||||
 | 
					volume: 30
 | 
				
			||||||
 | 
					publisher: Harvard University Press, Cambridge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										33
									
								
								data/recfiles/recfixes.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								data/recfiles/recfixes.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					title: "Recfixes"
 | 
				
			||||||
 | 
					tags: [ "data", "recfiles" ]
 | 
				
			||||||
 | 
					requires: "Recfiles"
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sometimes `recsel` chokes on a large query, and you need to break the query into chunks with a pipe.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This Kickstarter file has 374,853 records.
 | 
				
			||||||
 | 
					Here's the chonky query:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					recsel kick.rec -e "Category = 'Games'" -p "Subcategory,Avg(Goal)" -G Subcategory
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It breaks down like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Chunk                         | Meaning                                       |
 | 
				
			||||||
 | 
					|:-----------------------------:|:---------------------------------------------:|
 | 
				
			||||||
 | 
					| `recsel kick.rec`             | Select records from `kick.rec`                |
 | 
				
			||||||
 | 
					| `-e "Category = 'Games'"`     | Select only records where Category = 'Games'  |
 | 
				
			||||||
 | 
					| `-p "Subcategory,Avg(Goal)"`  | Print the Subcategory and average goal        |
 | 
				
			||||||
 | 
					| `-G "Subcategory"`            | Group by subcategory                          |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Two ways to break the query apart:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					recsel kick.rec -e "Category = 'Games'" | recsel -p "Subcategory,Avg(Goal)" -G "Subcategory"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					recsel kick.rec -e "Category = 'Games'" > games.rec
 | 
				
			||||||
 | 
					recsel games.rec -p "Subcategory" -G "Subcategory"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "task"
 | 
					title: "task"
 | 
				
			||||||
tags: [ "Organization" ]
 | 
					tags: [ "organization" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Set up the configuration file:
 | 
					Set up the configuration file:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "timewarrior"
 | 
					title: "timewarrior"
 | 
				
			||||||
tags: [ "Data", "tracking", "time", "timew" ]
 | 
					tags: [ "data", "tracking", "time", "timew" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Summaries
 | 
					# Summaries
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "autologin"
 | 
					title: "autologin"
 | 
				
			||||||
tags: [ "Distros", "Arch" ]
 | 
					tags: [ "distros", "arch" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Automatic Login
 | 
					# Automatic Login
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "fonts"
 | 
					title: "Ach Linux GPU Setup"
 | 
				
			||||||
tags: [ "distros" ]
 | 
					tags: [ "arch", "GPU" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Step 1: Multilib
 | 
					# Step 1: Multilib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -60,4 +60,3 @@ You should see 'true' here.
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader xf86-video-amdgpu
 | 
					sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader xf86-video-amdgpu
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Aeroplane Mode in Void"
 | 
					title: "Aeroplane Mode in Void"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Put your device in 'aeroplane' mode (e.g. where no trace of signal leaves it) by turning off Wi-Fi and blue-tooth.
 | 
					Put your device in 'aeroplane' mode (e.g. where no trace of signal leaves it) by turning off Wi-Fi and blue-tooth.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -9,7 +9,7 @@ su root
 | 
				
			|||||||
sv stop wpa_supplicant bluetoothd
 | 
					sv stop wpa_supplicant bluetoothd
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Find your device's name with `ip a`.
 | 
					Find your device's name with `ip -color addr`.
 | 
				
			||||||
If unsure, try this:
 | 
					If unsure, try this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Void Autologin"
 | 
					title: "Void Autologin"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Make the autologin service:
 | 
					Make the autologin service:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "extrace"
 | 
					title: "extrace"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Monitor all processes:
 | 
					Monitor all processes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "sv"
 | 
					title: "sv"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# List Services
 | 
					# List Services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Void Linux Basics"
 | 
					title: "Void Linux Basics"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Updates
 | 
					# Updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "xbps"
 | 
					title: "xbps"
 | 
				
			||||||
tags: [ "Void" ]
 | 
					tags: [ "void" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
## Search
 | 
					## Search
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ This works everywhere, including in a bare-ass tty.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Select a keymap, and create a new custom map.
 | 
					Select a keymap, and create a new custom map.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
su root
 | 
					su root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
basemap=/usr/share/kbd/keymaps/i386/qwerty/pl1.map.gz
 | 
					basemap=/usr/share/kbd/keymaps/i386/qwerty/pl1.map.gz
 | 
				
			||||||
@@ -22,7 +22,7 @@ gunzip -c $basemap | \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Tell the system to use this keymap at startup by naming it in the `rc.conf` file:
 | 
					Tell the system to use this keymap at startup by naming it in the `rc.conf` file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
echo "KEYMAP=$newmap" >> /etc/rc.conf
 | 
					echo "KEYMAP=$newmap" >> /etc/rc.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cat /etc/rc.conf
 | 
					cat /etc/rc.conf
 | 
				
			||||||
@@ -33,24 +33,24 @@ reboot
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Set layout to British English.
 | 
					Set layout to British English.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
setxkbmap -layout gb
 | 
					setxkbmap -layout gb
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Or Polish with:
 | 
					Or Polish with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
setxkbmap -layout pl
 | 
					setxkbmap -layout pl
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| Language | short |
 | 
					| Language | short |
 | 
				
			||||||
|:--------|:------|
 | 
					|:---------|:------|
 | 
				
			||||||
| Polish  | pl |
 | 
					| Polish   | `pl`  |
 | 
				
			||||||
| Serbian | rs |
 | 
					| Serbian  | `rs`  |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Set 'alt + shift', as the command which cycles through the British English, Polish and Serbian keyboard layout.
 | 
					Set 'alt + shift', as the command which cycles through the British English, Polish and Serbian keyboard layout.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
setxkbmap -layout gb,pl,rs -option grp:alt_shift_toggle
 | 
					setxkbmap -layout gb,pl,rs -option grp:alt_shift_toggle
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "fail2ban"
 | 
					title: "fail2ban"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
requires: [ "ssh" ]
 | 
					requires: [ "ssh" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# SSH Daemon Jail
 | 
					# SSH Daemon Jail
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Easy Network Graph"
 | 
					title: "Easy Network Graph"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Set up a file like this, called `troubleshooting.txt`.
 | 
					Set up a file like this, called `troubleshooting.txt`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "iptables"
 | 
					title: "iptables"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Intro
 | 
					# Intro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "nmap"
 | 
					title: "nmap"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Example:
 | 
					Example:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "pi-hole-server"
 | 
					title: "pi-hole-server"
 | 
				
			||||||
tags: [ "Distros" ]
 | 
					tags: [ "distros" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Installation
 | 
					# Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "rclone"
 | 
					title: "rclone"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking", "synch" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
The manpage's 'Synopsis' provides a fast reference.
 | 
					The manpage's 'Synopsis' provides a fast reference.
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Download videos"
 | 
					title: "Download videos"
 | 
				
			||||||
tags: [ "Scraping" ]
 | 
					tags: [ "scraping" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Install `yt-dlp`.
 | 
					Install `yt-dlp`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Agate on Arch Linux"
 | 
					title: "Agate on Arch Linux"
 | 
				
			||||||
tags: [ "Networking", "Arch", "Gemini" ]
 | 
					tags: [ "networking", "arch", "gemini" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Docs are [here](https://github.com/mbrubeck/agate).
 | 
					Docs are [here](https://github.com/mbrubeck/agate).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@ tags: [ "networking" ]
 | 
				
			|||||||
Try out basic ssh by accessing `git.charm.sh`, without needing authentication:
 | 
					Try out basic ssh by accessing `git.charm.sh`, without needing authentication:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ssh git.charm.sh
 | 
					ssh git.charm.sh
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,32 +16,32 @@ The ssh server is sometimes in a package called `openssh`, and sometimes only in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Once it's installed, check it's working:
 | 
					Once it's installed, check it's working:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
sudo systemctl status ssh
 | 
					sudo systemctl status ssh
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If that doesn't work, the service may be called `sshd`.
 | 
					If that doesn't work, the service may be called `sshd`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
sudo systemctl status sshd
 | 
					sudo systemctl status sshd
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Then start that service:
 | 
					Then start that service:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
sudo systemctl start sshd
 | 
					sudo systemctl start sshd
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Test it works by using ssh into your own system, from inside:
 | 
					Test it works by using ssh into your own system, from inside:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ssh $USER@localhost
 | 
					ssh $USER@localhost
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Access the computer from another computer on the same local network by finding your computer's IP address.
 | 
					Access the computer from another computer on the same local network by finding your computer's IP address.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ip address | grep inet
 | 
					ip address | grep inet
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,24 +56,24 @@ Here is mine:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The first one starts `127`, which means it returns back to that computer (like `localhost`).
 | 
					The first one starts `127`, which means it returns back to that computer (like `localhost`).
 | 
				
			||||||
The second is an ipv6 address, which is too angelic for this world, and has yet to ascend.
 | 
					The second is an ipv6 address, which is too angelic for this world, and has yet to descend.
 | 
				
			||||||
The third will work from a remote computer.
 | 
					The third will work from a remote computer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ssh $USERNAME@IP_ADDRESS
 | 
					ssh $USERNAME@IP_ADDRESS
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once you have that, generate some ssh keys:
 | 
					Once you have that, generate some ssh keys:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ssh-keygen
 | 
					ssh-keygen
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Look at your keys:
 | 
					Look at your keys:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ls ~/.ssh
 | 
					ls ~/.ssh
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -82,7 +82,7 @@ The other is secret.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Now send those keys to a remote computer:
 | 
					Now send those keys to a remote computer:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ssh-copy-id $USERNAME@IP_ADDRESS
 | 
					ssh-copy-id $USERNAME@IP_ADDRESS
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "sshfs"
 | 
					title: "sshfs"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
requires: [ "ssh" ]
 | 
					requires: [ "ssh" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Mount 
 | 
					# Mount 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "ssh-tricks"
 | 
					title: "ssh-tricks"
 | 
				
			||||||
tags: [ "Networking", "ssh", "tricks" ]
 | 
					tags: [ "networking", "ssh", "tricks" ]
 | 
				
			||||||
requires: [ "ssh" ]
 | 
					requires: [ "ssh" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "tor"
 | 
					title: "tor"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Get a hostname
 | 
					# Get a hostname
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "transmission"
 | 
					title: "transmission"
 | 
				
			||||||
tags: [ "Networking", "Torrenting" ]
 | 
					tags: [ "networking", "torrenting" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Torrench
 | 
					# Torrench
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "troubleshooting"
 | 
					title: "troubleshooting"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Do you have an IP?
 | 
					# Do you have an IP?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If not, try checking out what your local Networking interfaces are, then check if they have been picked up:
 | 
					If not, try checking out what your local networking interfaces are, then check if they have been picked up:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
dmesg | grep eth0
 | 
					dmesg | grep eth0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "nginx"
 | 
					title: "nginx"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking", "web" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
Install nginx:
 | 
					Install nginx:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "wifi"
 | 
					title: "network"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Netstat Stuff
 | 
					# Netstat Stuff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Stats on local net usage within domain.
 | 
					Stats on local net usage within domain.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "wireguard"
 | 
					title: "wireguard"
 | 
				
			||||||
tags: [ "Networking", "VPN" ]
 | 
					tags: [ "networking", "VPN" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
<!--
 | 
					<!--
 | 
				
			||||||
from 
 | 
					from 
 | 
				
			||||||
@@ -11,25 +11,22 @@ https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Install `wireguard-tools` on the server.
 | 
					Install `wireguard-tools` on the server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
sudo -i
 | 
					su root
 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
cd /etc/wireguard
 | 
					cd /etc/wireguard
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
umask 077
 | 
					umask 077
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wg genkey | tee server_private_key | wg pubkey > server_public_key
 | 
					wg genkey | tee server_private_key | wg pubkey > server_public_key
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wg genkey | tee client_private_key | wg pubkey > client_public_key
 | 
					wg genkey | tee client_private_key | wg pubkey > client_public_key
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
    echo "
 | 
					    echo "
 | 
				
			||||||
    [Interface]
 | 
					    [Interface]
 | 
				
			||||||
    Address = 10.0.0.1/24
 | 
					    Address = 10.0.0.1/24
 | 
				
			||||||
@@ -46,20 +43,20 @@ wg genkey | tee client_private_key | wg pubkey > client_public_key
 | 
				
			|||||||
    " > /etc/wireguard/wg0.conf
 | 
					    " > /etc/wireguard/wg0.conf
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/wg.conf
 | 
					echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/wg.conf
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
systemctl enable --now wg-quiqck@wg0
 | 
					systemctl enable --now wg-quiqck@wg0
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
chown -R root:root /etc/wireguard/
 | 
					chown -R root:root /etc/wireguard/
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
chmod -R og-rwx /etc/wireguard/\*
 | 
					chmod -R og-rwx /etc/wireguard/*
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Forward traffic from port 51900 to the server.
 | 
					Forward traffic from port 51900 to the server.
 | 
				
			||||||
@@ -72,21 +69,25 @@ Install `wireguard-tools` on the client.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Copy the client private key and server public key to the server (or just fill in the variables).
 | 
					Copy the client private key and server public key to the server (or just fill in the variables).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> server_ip=*your server's public ip*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    echo "
 | 
					```sh
 | 
				
			||||||
    [Interface]
 | 
					server_ip=$PUBLIC_IP
 | 
				
			||||||
    Address = 10.0.0.2/32
 | 
					 | 
				
			||||||
    PrivateKey = $(cat client_private_key)
 | 
					 | 
				
			||||||
    DNS = 9.9.9.9
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    [Peer]
 | 
					 | 
				
			||||||
    PublicKey = $(cat server_public_key)
 | 
					 | 
				
			||||||
    Endpoint = $(echo $server_ip:51900)
 | 
					 | 
				
			||||||
    AllowedIPs = 0.0.0.0/0, ::/0
 | 
					 | 
				
			||||||
    " > /etc/wireguard/wg0-client.conf
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
> wg-quick up wg0-client
 | 
					echo "
 | 
				
			||||||
 | 
					[Interface]
 | 
				
			||||||
 | 
					Address = 10.0.0.2/32
 | 
				
			||||||
 | 
					PrivateKey = $(cat client_private_key)
 | 
				
			||||||
 | 
					DNS = 9.9.9.9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Peer]
 | 
				
			||||||
 | 
					PublicKey = $(cat server_public_key)
 | 
				
			||||||
 | 
					Endpoint = $(echo $server_ip:51900)
 | 
				
			||||||
 | 
					AllowedIPs = 0.0.0.0/0, ::/0
 | 
				
			||||||
 | 
					" > /etc/wireguard/wg0-client.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					wg-quick up wg0-client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Extras
 | 
					## Extras
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -98,6 +99,6 @@ Add multiple peers by copying the `[peer]` section (they each get called `peer`)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Make a standard client configuration, then:
 | 
					Make a standard client configuration, then:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
qrencode -t ansiutf8 < /etc/wireguard/mobile_user.conf
 | 
					qrencode -t ansiutf8 < /etc/wireguard/mobile_user.conf
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,60 +1,63 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "wireless"
 | 
					title: "wireless"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check wifi's working
 | 
					Check wifi's working
 | 
				
			||||||
```bash
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
lspci -k
 | 
					lspci -k
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Or for usb wifi: 
 | 
					Or for usb wifi: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
dmesg | grep usbcore
 | 
					dmesg | grep usbcore
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
... and hopefully it'll say the new interface is registered.
 | 
					...and hopefully it'll say the new interface is registered.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check if a wifi interface has been created
 | 
					Check if a wifi interface has been created
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ip link
 | 
					ip link
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
or
 | 
					...or
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
iw dev
 | 
					iw dev
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Assuming it's wlan0, bring it up with 
 | 
					Assuming it's wlan0, bring it up with 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
ip link set wlan0 up
 | 
					ip link set wlan0 up
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Error messages probably means your wireless chipset requires a firmware to function.  In this case, check the kernel messages for firmware being loaded
 | 
					Error messages probably means your wireless chipset requires a firmware to function.  In this case, check the kernel messages for firmware being loaded
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
dmesg | grep firmware
 | 
					dmesg | grep firmware
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Utilities
 | 
					# Utilities
 | 
				
			||||||
 | 
					
 | 
				
			||||||
iw doesn't do wpa/wpa2.  wpa_supplicant does everything.  iwd does everything except WEXT encryption.
 | 
					- `iw` doesn't do wpa/wpa2.
 | 
				
			||||||
 | 
					- `iwd` does everything except WEXT encryption.
 | 
				
			||||||
 | 
					- `wpa_supplicant` does everything.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Connecting
 | 
					# Connecting
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Get the link status:
 | 
					Get the link status:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
iw dev wlan0 link
 | 
					iw dev wlan0 link
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Scan for available points:
 | 
					Scan for available points:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
iw dev wlan0 scan
 | 
					iw dev wlan0 scan
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,57 +1,57 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "wpa_supplicant"
 | 
					title: "wpa_supplicant"
 | 
				
			||||||
tags: [ "Networking" ]
 | 
					tags: [ "networking" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wpa_supplicant configurations are stored in /etc/wpa_supplicant/wpa_supplicant-wlan0 (or equivalent).
 | 
					`wpa_supplicant` configurations are stored in `/etc/wpa_supplicant/wpa_supplicant-wlan0` (or equivalent).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## WiFi Connection
 | 
					## WiFi Connection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_cli
 | 
					wpa_cli
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once in, scan the network, add an empty place to store credentials, then input them.
 | 
					Once in, scan the network, add an empty place to store credentials, then input them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
scan
 | 
					scan
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
scan_results
 | 
					scan_results
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
add_network
 | 
					add_network
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This outputs a network number, e.g. '3'.  This is the new network you'll work with.
 | 
					This outputs a network number, e.g. '3'.  This is the new network you'll work with.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
set_network *3* ssid *"Kosachok Cafe"*
 | 
					set_network *3* ssid *"Kosachok Cafe"*
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
set_network 3 psk *"Kosachok2019"*
 | 
					set_network 3 psk *"Kosachok2019"*
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OR (for no password)
 | 
					OR (for no password)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
set_network *3* key_mgmt NONE
 | 
					set_network *3* key_mgmt NONE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
enable_network 3
 | 
					enable_network 3
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
save_config
 | 
					save_config
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This takes a while to connect, so to speed things up, restart the service:
 | 
					This takes a while to connect, so to speed things up, restart the service:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
sudo sv restart wpa_supplicant
 | 
					sudo sv restart wpa_supplicant
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -59,13 +59,13 @@ sudo sv restart wpa_supplicant
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
You can script like this:
 | 
					You can script like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_cli add_network
 | 
					wpa_cli add_network
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
That returns an ID, so you can say:
 | 
					That returns an ID, so you can say:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
newNetwork="$(wpa_cli add_network)"
 | 
					newNetwork="$(wpa_cli add_network)"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -73,19 +73,19 @@ Then `$newNetwork` would equal that number, and you can add/ remove networks wit
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
But remember to escape the quotes, so adding a network would be:
 | 
					But remember to escape the quotes, so adding a network would be:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_cli set_network *3* psk *\""passphrase"\"*
 | 
					wpa_cli set_network *3* psk *\""passphrase"\"*
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Generating Keys Manually
 | 
					## Generating Keys Manually
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_passphrase [ssid] [password]
 | 
					wpa_passphrase [ssid] [password]
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For example:
 | 
					For example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_passphrase 'Cafe Kosachok' 'Kosachok2019'
 | 
					wpa_passphrase 'Cafe Kosachok' 'Kosachok2019'
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -95,8 +95,11 @@ If you encounter problems, you will probably need to delete the old device pid i
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Next up, start wpa_supplicant:
 | 
					Next up, start wpa_supplicant:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```sh
 | 
				
			||||||
wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0
 | 
					wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The -B flag runs this as a background process.  Remove this to see real-time output in order to solve problems.  The -i flag denotes the physical device used for the wifi.  The -c flag points to the configuration file for use.
 | 
					The `-B` flag runs this as a background process.
 | 
				
			||||||
 | 
					Remove this to see real-time output in order to solve problems.
 | 
				
			||||||
 | 
					The `-i` flag denotes the physical device used for the wifi.
 | 
				
			||||||
 | 
					The `-c` flag points to the configuration file for use.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Basic Sound"
 | 
					title: "Basic Sound"
 | 
				
			||||||
tags: [ "Sound" ]
 | 
					tags: [ "sound" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Pulse
 | 
					# Pulse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "festival"
 | 
					title: "festival"
 | 
				
			||||||
tags: [ "Sound" ]
 | 
					tags: [ "sound" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Basics
 | 
					# Basics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "mpd"
 | 
					title: "mpd"
 | 
				
			||||||
tags: [ "Sound" ]
 | 
					tags: [ "sound" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Setup
 | 
					# Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "ncmpcpp"
 | 
					title: "ncmpcpp"
 | 
				
			||||||
tags: [ "Sound" ]
 | 
					tags: [ "sound" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Music Player Daemon
 | 
					# Music Player Daemon
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Makefiles"
 | 
					title: "make help target"
 | 
				
			||||||
tags: [ "system", "make", "help" ]
 | 
					tags: [ "system", "make", "help" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -7,11 +7,13 @@ Make your first target 'help' to give an overview of the main targets.
 | 
				
			|||||||
Running `make help` will search for text which starts with `## ` and show what that target does.
 | 
					Running `make help` will search for text which starts with `## ` and show what that target does.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```make
 | 
					```make
 | 
				
			||||||
 | 
					.PHONY: help
 | 
				
			||||||
help: ## Print the help message
 | 
					help: ## Print the help message
 | 
				
			||||||
	@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
 | 
						@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
 | 
				
			||||||
		sort | \
 | 
							sort | \
 | 
				
			||||||
		column -s ':' -t
 | 
							column -s ':' -t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: clean
 | 
				
			||||||
clean: ## Remove generated files
 | 
					clean: ## Remove generated files
 | 
				
			||||||
	$(RM) $(defaults)
 | 
						$(RM) $(defaults)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "android"
 | 
					title: "android"
 | 
				
			||||||
tags: [ "System", "phone" ]
 | 
					tags: [ "system", "phone" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# mtpfs
 | 
					# mtpfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "awk"
 | 
					title: "awk"
 | 
				
			||||||
tags: [ "System", ".csv" ]
 | 
					tags: [ "system", ".csv" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Basics
 | 
					# Basics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "bash tips"
 | 
					title: "bash tips"
 | 
				
			||||||
tags: [ "Shell", "POSIX" ]
 | 
					tags: [ "shell", "POSIX" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
## Track Live Changes
 | 
					## Track Live Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "character-encoding"
 | 
					title: "character-encoding"
 | 
				
			||||||
tags: [ "System", "encoding" ]
 | 
					tags: [ "system", "encoding" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Convert a text file from one encoding type to another with:
 | 
					Convert a text file from one encoding type to another with:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Default Programs"
 | 
					title: "Default Programs"
 | 
				
			||||||
tags: [ "Defaults", "Mime Type" ]
 | 
					tags: [ "defaults", "mime type" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install the package `xdg-utils`, then make very liberal use of the tab button.
 | 
					Install the package `xdg-utils`, then make very liberal use of the tab button.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,36 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "kernel"
 | 
					title: "kernel modules"
 | 
				
			||||||
tags: [ "system" ]
 | 
					tags: [ "system" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Kernel modules live in lib/modules/$(uname -r)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Change
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Load them with
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					modprobe ath9k
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Or remove one with
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					modprove uvcvideo
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The PC's irritating speaker beep can be really annoying. Disable it with:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					modprobe -r pcspeaker
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Check which kernel modules are loaded into memory:
 | 
					Check which kernel modules are loaded into memory:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "lf - The Light File Manager"
 | 
					title: "lf - The Light File Manager"
 | 
				
			||||||
tags: [ "File Browser", "TUI" ]
 | 
					tags: [ "file browser", "TUI" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Config File
 | 
					## Config File
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "logs"
 | 
					title: "logs"
 | 
				
			||||||
tags: [ "System" ]
 | 
					tags: [ "system" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Basic
 | 
					# Basic
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Monitoring"
 | 
					title: "Monitoring"
 | 
				
			||||||
tags: [ "System", "CPU", "Memory" ]
 | 
					tags: [ "system", "CPU", "memory" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Print the average CPU load over 1 minute, 5 minutes, and 15 minutes:
 | 
					Print the average CPU load over 1 minute, 5 minutes, and 15 minutes:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "partitions"
 | 
					title: "partitions"
 | 
				
			||||||
tags: [ "System" ]
 | 
					tags: [ "system" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# FDisk Basics
 | 
					# FDisk Basics
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "snaps"
 | 
					title: "snaps"
 | 
				
			||||||
tags: [ "System", "Ubuntu", "snap" ]
 | 
					tags: [ "system", "Ubuntu", "snap" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
> sudo apt-get purge -y snapd
 | 
					> sudo apt-get purge -y snapd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Docker"
 | 
					title: "Docker"
 | 
				
			||||||
tags: [ "documentation", "Virtualization" ]
 | 
					tags: [ "documentation", "virtualization" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
sudo pacman -S docker
 | 
					sudo pacman -S docker
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "virtualbox"
 | 
					title: "virtualbox"
 | 
				
			||||||
tags: [ "System" ]
 | 
					tags: [ "system" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Setup
 | 
					# Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "ffmpeg"
 | 
					title: "ffmpeg"
 | 
				
			||||||
tags: [ "Sound", "Vision" ]
 | 
					tags: [ "sound", "vision" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
# Basics 
 | 
					# Basics 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "imagemagick"
 | 
					title: "imagemagick"
 | 
				
			||||||
tags: [ "Vision" ]
 | 
					tags: [ "vision" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Convert jpg to png.
 | 
					Convert jpg to png.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: "Markdown to PDF"
 | 
					title: "Markdown to PDF"
 | 
				
			||||||
tags: [ "Markdown", "PDF", "Vision" ]
 | 
					tags: [ "markdown", ".pdf", "vision" ]
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Turn a markdown file into a pdf:
 | 
					Turn a markdown file into a pdf:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user