# Random thoughts

## Strace

sh -c 'exec strace -p $$'

Result:

strace: I'm sorry, I can't let you do that, Dave.

My name's not Dave!

## CIDR notation

An IPv4 designation of /n provides 2^{32-n} addresses, 0 ≤ n ≤ 32. A subnet mask of 255.255.255.0 is no different than "/24."

An IPv6 designation of /n provides 2^{128-n} addresses, 0 ≤ n ≤ 128. For example, a /48 contains 2^{128-48} addresses, which is equal to 2^{80} or about 1.2 x 10^{24}.

In some contexts, "192.168.1.0/24" is a set (in the set theory sense) of all IP addresses in the 192.168.1.0 to 192.168.1.255 range. For example, 192.168.0.0/24 ∪ 192.168.1.0/24 = 192.168.0.0/23.

Client | ||||

IPv4 only | Dual Stack | IPv6 only | ||

IPv4 only | connects via IPv4 | connects via IPv4 | cannot connect | |

Server | Dual Stack | connects via IPv4 | connects via IPv4 or IPv6 | connects via IPv6 |

IPv6 only | cannot connect | connects via IPv6 | connects via IPv6 |

## Shrug

¯\_(ツ)_/¯

¯\_(ツ)_/¯

## Proof by induction

H(n) is some predicate of a natural number n.

If H(0) is true,

and the material conditional H(m) -> H(n), 0 <= m < n for all n > 0 is true

then H(n) is true for all n >= 0.

For example:

- H(0) & (H(0) -> H(1)) therefore H(1).
- H(1) & (H(1) -> H(2)) therefore H(2).
- H(2) & (H(2) -> H(3)) therefore H(3).
- and so on.

In other words, you do not prove H(n) is true for all n directly. Rather, you prove H(0) (the basis step) and then you prove the material conditional H(n) -> H(n+1) (inductive step), and by continuous *modus ponens*, you prove H(n) for all n in N (natural numbers).

For example, prove that every power of five greater than 5 ends in 25. That is, 5^n = 25 (mod 100) for all integer n >= 2.

Base case: n = 2. 5^2 = 25 (mod 100).

Inductive step: Given 5^n = 25 (mod 100), prove 5^(n+1) = 25 (mod 100).

- 5^(n+1) (mod 100)
- = 5^n * 5 (mod 100)
- = 25 * 5 (mod 100) by the inductive hypothesis
- = 125 (mod 100)
- = 25 (mod 100).

## Soapbox

- People sometimes think that my website is full of nonsense. Not that people disagree with the views presented, but rather that it's full of my computer networking niche.
- In a similar vein, people often think that I'm childish because I sort of like doing these nonsensical things just to get people's attention.

## Home on the Range

```
# Oh, give me a home, where the buffalo roam, where the deer and the antelope play, where seldom is heard, a discouraging word, and the skies are not cloudy all day.
SELECT * FROM homes WHERE theBuffaloAreRoaming=TRUE AND theDeerAndTheAntelopeArePlaying=TRUE AND hearDiscouragingWord='seldom' AND theSkiesAreCloudyAllDay=FALSE LIMIT 1;
```