Minor formatting changes. master
authorethereal <ethereal@ethv.net>
Sat, 25 Jan 2020 05:47:37 +0000 (00:47 -0500)
committerethereal <ethereal@ethv.net>
Sat, 25 Jan 2020 05:47:37 +0000 (00:47 -0500)
src/weblog/001-the-fermat-primality-test.md
src/weblog/008-a-complaint-about-consider-pheblas.md
src/weblog/009-program-loading-on-linux-4.md
src/weblog/010-why-ld-uses-inodes.md
src/weblog/013-spi-modes-on-sam3n.md

index 031cff5..c5b8611 100644 (file)
@@ -29,7 +29,7 @@ So, let's talk about one algorithm: the Fermat primality test.
 
 The idea behind the so-called Fermat primality test is extremely simple, and
 uses a theorem that gives the test its name:
-> ##### Fermat's Little Theorem
+> ### Fermat's Little Theorem
 > Let <$p$> be a prime, and <$a$> an integer such that <$a \not |~ p$>. Then
 > <$a^{p-1} \equiv 1 \mod p$>.
 
@@ -40,7 +40,7 @@ number <$n$> is not a prime, by the contrapositive of Fermat's Little Theorem.
 
 Or, more formally:
 
-> #### Fermat Primality Test
+> ### Fermat Primality Test
 > **Input**: Positive integer <$n \geq 2$>.
 >
 > **Output**: "Composite" or "Prime".
@@ -84,7 +84,7 @@ We seem to have a bit of a difficulty now. How can we determine if the Fermat
 test lies for a given input? Well, here's a place to start. How about we define
 the list of composite numbers for which a given <$a$> results in a Fermat lie?
 
-> #### Fermat liars
+> ### Fermat liars
 > A number <$a$> is a Fermat liar for a composite number <$n$> iff
 > <$a^{n-1} \equiv 1 \mod n$>. The set of Fermat liars for a composite positive
 > integer <$n$> is the set
@@ -110,7 +110,7 @@ since <$F(n) \subseteq \mathbb{Z}_n$> by construction, we really note that
 
 Here's a theorem to get you thinking:
 
-> ##### Lagrange's Theorem
+> ### Lagrange's Theorem
 > Let <$G$> be a group, and <$H$> a subgroup of <$G$>. Then
 > <$ord(H)~|~ord(G)$>.[^lagrange]
 
@@ -190,7 +190,7 @@ Carmichael numbers up to <$10^{12}$>, for the curious.
 
 So, what is a Carmichael number, exactly?
 
-> #### Carmichael numbers
+> ### Carmichael numbers
 > A Carmichael number is a positive integer <$n$> that satisfies:
 >
 > 1. <$n$> is composite,
@@ -200,7 +200,7 @@ So, what is a Carmichael number, exactly?
 Here's a quick sketch of a proof of why Carmichael numbers defeat the Fermat
 primality test, for completeness' sake:
 
-> #### Proof:
+> ### Proof:
 > Let <$n$> be a Carmichael number. Then because <$n$> is composite, we know
 > that for some primes <$p_1, \ldots, p_k$> and some positive integers
 > <$e_1, \ldots, e_k$>, <latex>\[n = \prod_{i=1}^{k} p_i^{e_i}\]</latex>
index 86cf025..0ec3e75 100644 (file)
@@ -36,7 +36,7 @@ reasonable in context, especially given later passages such as:
 
 Well. Let's see about that, shall we?
 
-### The calculation
+## The calculation
 
 Let <$X$> be a random variable denoting the number of people in the Culture who
 are Referers. We can then express <$X$> as a sum of indicator random variables
@@ -77,7 +77,7 @@ show the same side at least 90% of the time will be:
 Supposedly, there are thirty or forty of these. How about ballparking the
 probability of the existence of twenty Referers via a tail bound?
 
-### Tail-bound
+## Tail-bound
 
 One way to state a Chernoff bound [^chernoff-cite] is that, for
 <$X_1, \ldots, X_n$> independent Poisson trials,
@@ -100,7 +100,7 @@ for the probability of getting 20 such Referers -- we get that
 And this is for 20. If you set the target to be 30 Referers instead, you find
 that the probability is <$\leq 8.24 \times 10^{-144}$>.
 
-### Summary
+## Summary
 
 At this point, I think it's safe to say that the analogy status is busted. The
 concept of a Referer is an interesting one, and I don't actually think it's
index ed43fa6..14fc171 100644 (file)
@@ -15,7 +15,7 @@ startup environment that a program is given. Now it's time to _start_ talking
 about the dynamically-linked executables. Sadly, I don't think we'll get very
 far in this article.
 
-### Overview
+## Overview
 
 TODO: what is dynamic linking?
 
@@ -29,7 +29,7 @@ As I've insinuated before, the topic of dynamic linking is a _huge_ one. So,
 how to begin the gargantuan task of describing it? Well, we'll start with
 something kind of central: the `.dynamic` ELF section.
 
-### The `.dynamic` section
+## The `.dynamic` section
 
 Remember how an ELF file is separated into different regions, called sections?
 Any dynamically-linked ELF executable will have a section called `.dynamic`;
@@ -40,12 +40,12 @@ those functions can (probably) be found.
 
 
 
-### Investigating disassemblies
+## Investigating disassemblies
 
 Okay, so that's some high-level information about dynamic linking.
 
 TODO: briefly talk about PLT, GOT, using implementations as reference
 
-### Summary
+## Summary
 
 \- ethereal
index 56f89c3..73d545f 100644 (file)
@@ -28,6 +28,7 @@ Then `ld.so` can resolve the same-ness of `libfoo.so.5` and `libfoo.so.5.2`
 immediately without any fuss at all, simply by checking the inode -- after all,
 if you follow the symlinks, you'll get the same inode.
 
-Quite clever, I think, and I'm mad at myself for not realizing this.
+Quite clever, I think, and I'm annoyed at myself for missing this the first
+time.
 
 \- ethereal
index 3c924fc..d85064a 100644 (file)
@@ -8,12 +8,12 @@ same process as I.
 On AT91SAM-series processors (in particular I'm using the SAM3N2A), the SPI
 peripheral supports all four SPI modes (clock idle low/high, shift on
 rising/falling edge), but the way it's addressed is a little odd. The two bits
-that control the SPI mode for a slave are the *CPOL* and *NCPHA* bits of the
-appropriate *SPI_CSRx* register, but the value of the *NCPHA* bit is the
-opposite of what you expect. So to set SPI mode 0,0 you use *CPOL = 0* and
-*NCPHA = 1*.
+that control the SPI mode for a slave are the `CPOL` and `NCPHA` bits of the
+appropriate `SPI_CSRx` register, but the value of the `NCPHA` bit is the
+opposite of what you expect. So to set SPI mode `0,0` you use `CPOL = 0` and
+`NCPHA = 1`.
 
-Otherwise, when you write to a device expecting mode 0,0 everything will be
+Otherwise, when you write to a device expecting mode `0,0` everything will be
 shifted by one bit. I ran into this with a 23LC1024 SRAM chip, where the first
 byte of each SPI transfer is the opcode, i.e. reading/writing etc. As a result
 of the shift, the opcode wasn't correct, and so reading returned `0xff` for all