diff --git a/a_defective_system.html.pm b/a_defective_system.html.pm index 30fd858..a047bae 100644 --- a/a_defective_system.html.pm +++ b/a_defective_system.html.pm @@ -31,17 +31,17 @@ If I did print money---a ◊strong{lot} of money---and spent it like this, what For starters, if I just kept the money without spending it, nothing would change: -◊img[#:src "/images/counterfeiting1.png" #:alt "The counterfeiter can print a large stash of cash."]{ +◊img[#:src "/images/counterfeiting1.png" #:alt "The counterfeiter can print a large stash of cash, but other people would not benefit."]{ The counterfeit money is colored yellow and the real money is green. } Then if I decided to buy a bunch of LEGO®, the store would get some of my money: -◊img[#:src "/images/counterfeiting2.png" #:alt "The counterfeiter buys LEGO."]{} +◊img[#:src "/images/counterfeiting2.png" #:alt "The counterfeiter buys LEGO, sharing the wealth with the store."]{} After a while the store would use the counterfeited money to pay their supplier: -◊img[#:src "/images/counterfeiting3.png" #:alt "Money further trickles down to the supplier, but not to everyone."]{} +◊img[#:src "/images/counterfeiting3.png" #:alt "Money further trickles down to the supplier, but not to everyone. The poor people did not get more money than they had before, and now they're even poorer relative to the others."]{} Who in turn will use it to buy other stuff, and in this way the counterfeited money slowly trickles out into the rest of the economy. This extra money has two important effects: @@ -356,7 +356,7 @@ While taking out debt to fuel investments was only supposed to be a temporary me ◊; Actual source ◊; https://fred.stlouisfed.org/graph/?id=GFDEBTN, -◊img[#:src "images/usa-debt.svg" #:link #t #:alt "The federal debt of the United States, measure in trillions of dollars, since 1966."]{ +◊img[#:src "images/usa-debt.svg" #:link #t #:alt "The federal debt of the United States figure"]{ The ◊link[usa-national-debt]{federal debt of the United States}, measure in trillions of dollars, since 1966. After the ◊link[financial_crisis]{2008 financial crisis} the amount of debt skyrocketed, signifying a shift in economic policy. During the COVID-19 pandemic the debt explosively increased at a pace unseen before. @@ -444,18 +444,18 @@ It seems like we're moving away from the original Keynesian ideas to something e There's a worrying trend in the world: ◊link[global-inequality]{global inequality is rising}. The rich get richer and the poor get... poorer. -◊img[#:src "images/income-inequality-world.svg" #:link #t #:alt "Top 10% income share between 1980 and 2015."]{ +◊img[#:src "images/income-inequality-world.svg" #:link #t #:alt "World income share figure"]{ Top 10% income share between 1980 and 2015. Source ◊link[inequality-data]{World Inequality Database}. } The inequality is on the rise in nearly every country. If we take a closer look at the United States, it paints a gloomy picture:◊mn{report} -◊img[#:src "images/income-inequality.svg" #:link #t #:alt "Income share in the United States between 1962 and 2014."]{ +◊img[#:src "images/income-inequality.svg" #:link #t #:alt "United States income share figure"]{ Income share in the United States between 1962 and 2014. Source ◊link[inequality-data]{World Inequality Database}. } -◊img[#:src "images/wealth-inequality.svg" #:link #t #:alt "Net personal wealth in the United States between 1962 and 2014."]{ +◊img[#:src "images/wealth-inequality.svg" #:link #t #:alt "Net personal wealth figure"]{ Net personal wealth in the United States between 1962 and 2014. Source ◊link[inequality-data]{World Inequality Database}. } diff --git a/antifragile.html.pm b/antifragile.html.pm index 2a929f0..9b28877 100644 --- a/antifragile.html.pm +++ b/antifragile.html.pm @@ -142,11 +142,11 @@ Cryptocurrencies work the same way. When a weakness is discovered developers wil While you can argue that an individual cryptocurrency is antifragile, antifragility also applies to the cryptocurrency concept itself. People like to point at the thousands of cryptocurrencies as some sort of drawback, but it's actually the opposite. Cryptocurrencies being created and then dying off en mass is good as each time one fails we might learn something new and use that to improve the survivors. -◊img[#:src "/images/btc-hydra.png" #:alt "A hydra with one Bitcoin head"]{ +◊img[#:src "/images/btc-hydra.png" #:alt "A hydra with one head looking like the Bitcoin logo."]{ Cryptocurrencies are like a Hydra. } -◊img[#:src "/images/bch-xmr-hydra.png" #:alt "A hydra with two heads, one Bitcoin Cash and one Monero"]{ +◊img[#:src "/images/bch-xmr-hydra.png" #:alt "A hydra with three heads; one cut off, one like the Bitcoin Cash logo and one like the Monero logo."]{ Cut off one head, two more shall take its place. } diff --git a/are_cryptocurrencies_money.html.pm b/are_cryptocurrencies_money.html.pm index e5aa566..1fb2a55 100644 --- a/are_cryptocurrencies_money.html.pm +++ b/are_cryptocurrencies_money.html.pm @@ -203,7 +203,7 @@ We've looked at the properties---but how well do they function as money, today? The valuation is highly speculation driven and has been notoriously volatile.◊mn{sov} ◊note-pos{sov} - ◊img[#:src "images/btc-valuation.svg" #:link #t #:alt "Bitcoin closing price per month, between 2010 and 2019."]{ + ◊img[#:src "images/btc-valuation.svg" #:link #t #:alt "Bitcoin closing price per month, between 2010 and 2020."]{ ◊link[btc-valuation]{Bitcoin price per week up to the beginning of 2020}. The price peaked in December 2017 to $19,870, and some exchanges had it even higher. A year later the price had dropped to $3,177, a drop of over 84%. } diff --git a/challenges.html.pm b/challenges.html.pm index e2d924a..38eac70 100644 --- a/challenges.html.pm +++ b/challenges.html.pm @@ -97,12 +97,12 @@ Bitcoin, like most cryptocurrencies, uses a public ledger where all transactions "https://www.chainalysis.com/" "Chainalysis: The Blockchain Analysis Company")) -◊img[#:src "/images/coin-tracing.png" #:alt "Paying someone with allows you to see their funds."]{ +◊img[#:src "/images/coin-tracing.png" #:alt "Image of John's address that has sent 1 BTC to the merchant and 13 BTC to another address."]{ After the merchant receives a payment from John, the merchant can see that John has sent 13 BTC to another address, out of an initial 40 BTC. John appears to be quite rich. } -◊img[#:src "/images/coin-tracing2.png" #:alt "You can trace coins back in history."]{ +◊img[#:src "/images/coin-tracing2.png" #:alt "Image of how John's 40 BTC originates from a hacked exchange."]{ It's possible to trace coins further back in history. Here we see that John's coins come from a hacked exchange, whose address is known. It might mean John is the hacker or, more probably, that John has received ◊em{tainted} coins (coins associated with illegal behavior). } @@ -119,7 +119,7 @@ You can explore the Bitcoin blockchain, and see all transactions and addresses, In an attempt to make Bitcoin more private "mixing" services such as ◊link[coinjoin]{CoinJoin} can be used. They work by mixing together your coins with the coins of others, in an attempt to obscure where the coins are coming from: -◊img[#:src "/images/coinjoin.png" #:alt "Obfuscation by mixing coins with other addresses."]{ +◊img[#:src "/images/coinjoin.png" #:alt "Image of mixing coins by sending them to and from various addresses."]{ A mixing service makes several addresses send to each other, in order to obfuscate the history. Although not shown here, because it would be too messy, all addresses and amounts are still visible. } diff --git a/chapter.html.p b/chapter.html.p index 6161533..2b0e503 100644 --- a/chapter.html.p +++ b/chapter.html.p @@ -58,7 +58,7 @@
- not overflow properly
- // https://weblog.west-wind.com/posts/2016/Feb/15/Flexbox-Containers-PRE-tags-and-managing-Overflow
- min-width: 0;
+ // Predictable styling.
+ margin: 0;
+ padding: 0;
+ // Better box model, includes border in width calculations.
+ box-sizing: border-box;
+ // Flexbox overrides min-width which makes not overflow properly
+ // https://weblog.west-wind.com/posts/2016/Feb/15/Flexbox-Containers-PRE-tags-and-managing-Overflow
+ min-width: 0;
}
-
-
html {
- font-size: 22px;
- line-height: 1.45;
+ font-size: 22px;
+ line-height: 1.45;
}
@media only screen and (max-width: 700px) {
- html {
- font-size: 20px;
- }
+ html {
+ font-size: 20px;
+ }
}
@media only screen and (max-width: 600px) {
- html {
- font-size: 18px;
- }
+ html {
+ font-size: 18px;
+ }
}
@media only screen and (max-width: 520px) {
- html {
- font-size: 16px;
- }
+ html {
+ font-size: 16px;
+ }
}
-
/*
* Main body
*/
body {
- @extend %serif;
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
+ @extend %serif;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
- color: $body-font-color;
- background-color: $body-background-color;
+ color: $body-font-color;
+ background-color: $body-background-color;
}
-
p {
- margin-bottom: 1em;
+ margin-bottom: 1em;
}
-
/*
* Headers
*/
-h1, h2, h3, h4 {
- @extend %sans-serif;
- line-height: 1;
+h1,
+h2,
+h3,
+h4 {
+ @extend %sans-serif;
+ line-height: 1;
}
h1 {
- font-size: 1.45rem;
+ font-size: 1.45rem;
}
h2 {
- font-size: 1.22rem;
- margin-top: 1.2em;
- margin-bottom: 0.3em;
+ font-size: 1.22rem;
+ margin-top: 1.2em;
+ margin-bottom: 0.3em;
}
h3 {
- font-size: 1.1rem;
- margin-top: 1em;
- margin-bottom: 0.3em;
+ font-size: 1.1rem;
+ margin-top: 1em;
+ margin-bottom: 0.3em;
}
h4 {
- font-size: 0.91rem;
- margin-top: 1em;
- margin-bottom: 0.3em;
+ font-size: 0.91rem;
+ margin-top: 1em;
+ margin-bottom: 0.3em;
}
-
/*
* Links: replicate underline that clears descenders
* Source: https://edwardtufte.github.io/tufte-css/
* who credits Adam Schwartz
*/
@mixin a-text-shadow($col) {
- text-shadow: 0.03em 0 $col, -0.03em 0 $col, 0 0.03em $col, 0 -0.03em $col,
- 0.06em 0 $col, -0.06em 0 $col, 0.09em 0 $col, -0.09em 0 $col,
- 0.12em 0 $col, -0.12em 0 $col, 0.15em 0 $col, -0.15em 0 $col;
+ text-shadow: 0.03em 0 $col, -0.03em 0 $col, 0 0.03em $col, 0 -0.03em $col,
+ 0.06em 0 $col, -0.06em 0 $col, 0.09em 0 $col, -0.09em 0 $col, 0.12em 0 $col,
+ -0.12em 0 $col, 0.15em 0 $col, -0.15em 0 $col;
}
@mixin a-background($col) {
- background: -webkit-linear-gradient($body-background-color, $body-background-color),
- -webkit-linear-gradient($body-background-color, $body-background-color),
- -webkit-linear-gradient($col, $col);
- background: linear-gradient($body-background-color, $body-background-color),
- linear-gradient($body-background-color, $body-background-color),
- linear-gradient($col, $col);
-
- $background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
- -webkit-background-size: $background-size;
- -moz-background-size: $background-size;
- background-size: $background-size;
-
- background-repeat: no-repeat, no-repeat, repeat-x;
- @include a-text-shadow($body-background-color);
- background-position: 0% 93%, 100% 93%, 0% 93%;
+ background: -webkit-linear-gradient(
+ $body-background-color,
+ $body-background-color
+ ),
+ -webkit-linear-gradient($body-background-color, $body-background-color),
+ -webkit-linear-gradient($col, $col);
+ background: linear-gradient($body-background-color, $body-background-color),
+ linear-gradient($body-background-color, $body-background-color),
+ linear-gradient($col, $col);
+
+ $background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
+ -webkit-background-size: $background-size;
+ -moz-background-size: $background-size;
+ background-size: $background-size;
+
+ background-repeat: no-repeat, no-repeat, repeat-x;
+ @include a-text-shadow($body-background-color);
+ background-position: 0% 93%, 100% 93%, 0% 93%;
}
a:link {
- text-decoration: none;
- @include a-background(#333);
+ text-decoration: none;
+ @include a-background(#333);
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
- a:link { background-position-y: 89%, 89%, 89%; }
+ a:link {
+ background-position-y: 89%, 89%, 89%;
+ }
}
-a:link::selection, a:link::-moz-selection {
- @include a-text-shadow($body-selection-color);
- background: $body-selection-color;
+a:link::selection,
+a:link::-moz-selection {
+ @include a-text-shadow($body-selection-color);
+ background: $body-selection-color;
}
-a:link, a:visited {
- color: inherit;
+a:link,
+a:visited {
+ color: inherit;
}
a:hover {
- //@include a-background($body-link-hover-color);
- background: none;
- shadow: none;
- color: $body-link-hover-color;
+ //@include a-background($body-link-hover-color);
+ background: none;
+ shadow: none;
+ color: $body-link-hover-color;
}
a:hover.xref {
- color: $body-xref-hover-color;
+ color: $body-xref-hover-color;
}
a:hover.invalid-iref {
- color: $body-invalid-iref-hover-color;
+ color: $body-invalid-iref-hover-color;
}
-
/*
* Selection
*/
@@ -149,225 +152,232 @@ a:hover.invalid-iref {
background: $body-selection-color; /* Gecko Browsers */
}
-
/*
* Prev/next nav panes
*/
.edge-wrapper {
- a {
- text-decoration: none;
- background: none;
- text-shadow: none;
- color: #ddd;
- }
- a:hover {
- color: $body-font-color;
- background-color: $btc-orange;
- //background-color: $bch-green;
- //background-color: $body-selection-color;
- }
+ a {
+ text-decoration: none;
+ background: none;
+ text-shadow: none;
+ color: #ddd;
+ }
+ a:hover {
+ color: $body-font-color;
+ background-color: $btc-orange;
+ //background-color: $bch-green;
+ //background-color: $body-selection-color;
+ }
}
-.prev-pan, .next-pan {
- background-color: yellow;
- font-size: 2.5rem;
- text-align: center;
- position: fixed;
- top: 0;
- bottom: 0;
- width: 1.2em;
- display: flex;
- justify-content: center;
- align-content: center;
- flex-direction: column;
-
- .content {
- display: inline-block;
- }
+.prev-pan,
+.next-pan {
+ background-color: yellow;
+ font-size: 2.5rem;
+ text-align: center;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ width: 1.2em;
+ display: flex;
+ justify-content: center;
+ align-content: center;
+ flex-direction: column;
+
+ .content {
+ display: inline-block;
+ }
}
.prev-pan {
- left: 0;
+ left: 0;
}
.next-pan {
- right: 0;
+ right: 0;
}
@media only screen and (max-width: 1340px) {
- .prev-pan, .next-pan {
- width: 1em;
- font-size: 1.2rem;
- }
+ .prev-pan,
+ .next-pan {
+ width: 1em;
+ font-size: 1.2rem;
+ }
}
@media only screen and (max-width: 900px) {
- .prev-pan, .next-pan {
- width: 1em;
- font-size: 1rem;
- }
- .edge-wrapper a {
- color: #ccc;
- }
+ .prev-pan,
+ .next-pan {
+ width: 1em;
+ font-size: 1rem;
+ }
+ .edge-wrapper a {
+ color: #ccc;
+ }
}
-
/*
* Follow
*/
.follow {
- @extend %sans-serif;
- margin-top: 2rem;
- margin-bottom: 2rem;
+ @extend %sans-serif;
+ margin-top: 2rem;
+ margin-bottom: 2rem;
}
.follow > .links {
- margin: 0.3rem;
- font-size: 0.8rem;
+ margin: 0.3rem;
+ font-size: 0.8rem;
}
.follow > .wip {
- margin: 0.3rem;
- font-size: 0.8rem;
+ margin: 0.3rem;
+ font-size: 0.8rem;
}
.follow > .donate {
- margin: 0.3rem;
- font-size: 0.8rem;
+ margin: 0.3rem;
+ font-size: 0.8rem;
}
-.subscribe > .email, .subscribe > .submit {
- @extend %serif;
- font-size: 0.75rem;
- border: 1px solid #ddd;
- background: $body-background-color;
- padding: 0.5em;
+.subscribe > .email,
+.subscribe > .submit {
+ @extend %serif;
+ font-size: 0.75rem;
+ border: 1px solid #ddd;
+ background: $body-background-color;
+ padding: 0.5em;
}
.subscribe > .email:hover,
.subscribe > .submit:hover {
- border: 1px solid #aaa;
- color: $body-font-color;
+ border: 1px solid #aaa;
+ color: $body-font-color;
}
.subscribe > .email:invalid {
- color: $email-invalid-color;
+ color: $email-invalid-color;
}
.subscribe > .submit:hover {
- color: $body-xref-hover-color;
- cursor: pointer;
+ color: $body-xref-hover-color;
+ cursor: pointer;
}
.subscribe {
- display: flex;
+ display: flex;
}
.subscribe > .email {
- flex: 4;
- margin-right: 0.2rem;
+ flex: 4;
+ margin-right: 0.2rem;
}
.subscribe > .submit {
- flex: 1;
+ flex: 1;
}
.buy {
- @extend %sans-serif;
- margin-top: 1rem;
- font-size: 0.9rem;
-
- a:link {
- text-decoration: underline;
- }
- a:hover {
- text-decoration: none;
- }
+ @extend %sans-serif;
+ margin-top: 1rem;
+ font-size: 0.9rem;
+
+ a:link {
+ text-decoration: underline;
+ }
+ a:hover {
+ text-decoration: none;
+ }
}
-
/*
* Footer
*/
body > footer {
- @extend %sans-serif;
+ @extend %sans-serif;
- width: 100%;
- height: 3em;
- margin-top: 1em;
-
- nav {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- font-size: 0.95rem;
-
- a:link {
- text-decoration: none;
- background: none;
- text-shadow: none;
- }
- a:hover {
- text-decoration: underline;
- }
- }
+ width: 100%;
+ height: 3em;
+ margin-top: 1em;
- .follow-wrapper {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- margin-top: 1rem;
- }
- .follow-wrapper > .follow {
- margin-top: 0;
- }
+ nav {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ font-size: 0.95rem;
- .prev, .parent, .home, .next {
- margin: 0 0.3em;
- }
- .prev {
- order: 1;
- }
- .next {
- order: 2;
+ a:link {
+ text-decoration: none;
+ background: none;
+ text-shadow: none;
}
- .middle {
- order: 0;
- width: 100%;
- display: flex;
- justify-content: center;
+ a:hover {
+ text-decoration: underline;
}
-}
-.buy-wrapper {
+ }
+
+ .follow-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: center;
- font-size: 0.95rem;
+ margin-top: 1rem;
+ }
+ .follow-wrapper > .follow {
+ margin-top: 0;
+ }
+
+ .prev,
+ .parent,
+ .home,
+ .next {
+ margin: 0 0.3em;
+ }
+ .prev {
+ order: 1;
+ }
+ .next {
+ order: 2;
+ }
+ .middle {
+ order: 0;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ }
+}
+.buy-wrapper {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ font-size: 0.95rem;
- .buy {
- text-align: center;
+ .buy {
+ text-align: center;
- p {
- margin-bottom: 0.4em;
- }
+ p {
+ margin-bottom: 0.4em;
}
+ }
}
.homepage-footer {
+ width: 100%;
+ //background-color: lightyellow;
+ flex: 1 1 auto;
+ margin: 0.5rem 1.2rem;
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+
+ .buy {
width: 100%;
- //background-color: lightyellow;
- flex: 1 1 auto;
- margin: 0.5rem 1.2rem;
- display: flex;
- justify-content: center;
- flex-wrap: wrap;
-
- .buy {
- width: 100%;
- }
+ }
}
@media (min-width: 800px) {
- body > footer {
- .prev, .parent, .home, .next {
- margin: 0 0.6em;
- }
- .prev {
- order: 0;
- }
- .middle {
- order: 1;
- width: auto;
- }
- .next {
- order: 2;
- }
+ body > footer {
+ .prev,
+ .parent,
+ .home,
+ .next {
+ margin: 0 0.6em;
+ }
+ .prev {
+ order: 0;
+ }
+ .middle {
+ order: 1;
+ width: auto;
+ }
+ .next {
+ order: 2;
}
+ }
}
diff --git a/sass/homepage.scss b/sass/homepage.scss
index 298dbef..5369575 100644
--- a/sass/homepage.scss
+++ b/sass/homepage.scss
@@ -1,57 +1,57 @@
.homepage {
- max-width: 600px;
- margin: 0.5rem 1.2rem;
+ max-width: 600px;
+ margin: 0.5rem 1.2rem;
}
.homepage > header {
- margin-bottom: 1em;
- padding-bottom: 0.3em;
- border-bottom: 0.2em solid;
+ margin-bottom: 1em;
+ padding-bottom: 0.3em;
+ border-bottom: 0.2em solid;
- h1 {
- @extend %sans-serif;
- font-size: 2rem;
- margin-bottom: 0.2rem;
- }
- h2 {
- @extend %sans-serif;
- font-size: 1rem;
- font-weight: normal;
- font-style: italic;
- margin: 0;
- margin-left: 0.3rem;
- margin-bottom: 0.2rem;
- }
+ h1 {
+ @extend %sans-serif;
+ font-size: 2rem;
+ margin-bottom: 0.2rem;
+ }
+ h2 {
+ @extend %sans-serif;
+ font-size: 1rem;
+ font-weight: normal;
+ font-style: italic;
+ margin: 0;
+ margin-left: 0.3rem;
+ margin-bottom: 0.2rem;
+ }
}
.toc section:not(:first-child) {
- padding-top: 1.2rem;
+ padding-top: 1.2rem;
}
.toc {
- @extend %sans-serif;
- a {
- text-decoration: none;
- background: none;
- text-shadow: none;
- }
- a:hover {
- text-decoration: underline;
- }
+ @extend %sans-serif;
+ a {
+ text-decoration: none;
+ background: none;
+ text-shadow: none;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
}
.toc h1 {
- font-size: 1.1rem;
+ font-size: 1.1rem;
}
.toc ul {
- margin-top: 0.5rem;
- list-style: none;
+ margin-top: 0.5rem;
+ list-style: none;
- li {
- margin-left: 0.6rem;
- margin-top: 0.3rem;
- }
+ li {
+ margin-left: 0.6rem;
+ margin-top: 0.3rem;
+ }
}
.toc .planned {
- color: $planned-chapter-link;
+ color: $planned-chapter-link;
}
diff --git a/sass/landing.scss b/sass/landing.scss
index 72ed60d..ce8c09b 100644
--- a/sass/landing.scss
+++ b/sass/landing.scss
@@ -84,52 +84,51 @@ $cover-dark5: #606060;
// #606030
// #90A860
-$cover-green-hl: #C0D890;
-
-
-$pink-050: #FFE0F0;
-$pink-100: #FAB8D9;
-$pink-200: #F191C1;
-$pink-300: #E668A7;
-$pink-400: #DA4A91;
-$pink-500: #C42D78;
-$pink-600: #AD2167;
-$pink-700: #9B1B5A;
+$cover-green-hl: #c0d890;
+
+$pink-050: #ffe0f0;
+$pink-100: #fab8d9;
+$pink-200: #f191c1;
+$pink-300: #e668a7;
+$pink-400: #da4a91;
+$pink-500: #c42d78;
+$pink-600: #ad2167;
+$pink-700: #9b1b5a;
$pink-800: #781244;
-$pink-900: #5C0B33;
-
-$magenta-050: #F5E1F7;
-$magenta-100: #ECBDF2;
-$magenta-200: #CE80D9;
-$magenta-300: #BB61C7;
-$magenta-400: #AD4BB8;
-$magenta-500: #A23DAD;
-$magenta-600: #90279C;
-$magenta-700: #7C1A87;
+$pink-900: #5c0b33;
+
+$magenta-050: #f5e1f7;
+$magenta-100: #ecbdf2;
+$magenta-200: #ce80d9;
+$magenta-300: #bb61c7;
+$magenta-400: #ad4bb8;
+$magenta-500: #a23dad;
+$magenta-600: #90279c;
+$magenta-700: #7c1a87;
$magenta-800: #671270;
-$magenta-900: #4E0754;
-
-$yellow-050: #FFFAEB;
-$yellow-100: #FCEFC7;
-$yellow-200: #F8E3A3;
-$yellow-300: #F9DA8B;
-$yellow-400: #F7D070;
-$yellow-500: #E9B949;
-$yellow-600: #C99A2E;
-$yellow-700: #A27C1A;
-$yellow-800: #7C5E10;
-$yellow-900: #513C06;
-
-$warm-grey-050: #FAF9F7;
-$warm-grey-100: #E8E6E1;
-$warm-grey-200: #D3CEC4;
-$warm-grey-300: #B8B2A7;
-$warm-grey-400: #A39E93;
-$warm-grey-500: #857F72;
-$warm-grey-600: #625D52;
-$warm-grey-700: #504A40;
-$warm-grey-800: #423D33;
-$warm-grey-900: #27241D;
+$magenta-900: #4e0754;
+
+$yellow-050: #fffaeb;
+$yellow-100: #fcefc7;
+$yellow-200: #f8e3a3;
+$yellow-300: #f9da8b;
+$yellow-400: #f7d070;
+$yellow-500: #e9b949;
+$yellow-600: #c99a2e;
+$yellow-700: #a27c1a;
+$yellow-800: #7c5e10;
+$yellow-900: #513c06;
+
+$warm-grey-050: #faf9f7;
+$warm-grey-100: #e8e6e1;
+$warm-grey-200: #d3cec4;
+$warm-grey-300: #b8b2a7;
+$warm-grey-400: #a39e93;
+$warm-grey-500: #857f72;
+$warm-grey-600: #625d52;
+$warm-grey-700: #504a40;
+$warm-grey-800: #423d33;
+$warm-grey-900: #27241d;
$button-hover-color: $bch-green;
$button-color: $yellow-300;
@@ -143,29 +142,31 @@ $large-width: 1280px;
$small-screen: 1067px;
.landing {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
}
.landing {
- a {
- text-shadow: none;
- background: none;
- text-shadow: none;
- text-decoration: underline;
- }
- a:link, a:visited, a:link:selection {
- text-shadow: none;
- background: none;
- text-decoration: underline;
- }
- a:link {
- color: #000;
- }
- a:hover {
- color: $btc-orange;
- }
+ a {
+ text-shadow: none;
+ background: none;
+ text-shadow: none;
+ text-decoration: underline;
+ }
+ a:link,
+ a:visited,
+ a:link:selection {
+ text-shadow: none;
+ background: none;
+ text-decoration: underline;
+ }
+ a:link {
+ color: #000;
+ }
+ a:hover {
+ color: $btc-orange;
+ }
}
.landing .books,
@@ -174,446 +175,451 @@ $small-screen: 1067px;
.landing .header,
.landing .faq,
.landing .ending {
- width: 100%;
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
}
.landing .hero {
- width: 100%;
- background-color: $body-background-color;
- background-color: $warm-grey-050;
+ width: 100%;
+ background-color: $body-background-color;
+ background-color: $warm-grey-050;
}
.landing .hero .header {
- padding: 8px;
- display: flex;
- flex-wrap: wrap;
- // margin-top: 64px;
+ padding: 8px;
+ display: flex;
+ flex-wrap: wrap;
+ // margin-top: 64px;
}
.landing .hero .title {
- margin-top: 24px;
- max-width: 650px;
- // background-color: red;
- // flex: 1;
- h1 {
- font-size: 48px;
- margin: 0;
- margin-bottom: 8px;
- // margin-bottom: 24px;
- }
- h2 {
- @extend %sans-serif;
- font-size: 24px;
- font-weight: normal;
- font-style: italic;
- margin: 0;
- margin-bottom: 24px;
- // margin: 0;
- // margin-left: 0.3rem;
- // margin-bottom: 0.2rem;
- // display: none;
- }
-
- .sell-it {
- // text-align: center;
- // padding-right: 64px;
- // max-width: 650px;
- }
- .afford {
- font-weight: bold;
- }
+ margin-top: 24px;
+ max-width: 650px;
+ // background-color: red;
+ // flex: 1;
+ h1 {
+ font-size: 48px;
+ margin: 0;
+ margin-bottom: 8px;
+ // margin-bottom: 24px;
+ }
+ h2 {
+ @extend %sans-serif;
+ font-size: 24px;
+ font-weight: normal;
+ font-style: italic;
+ margin: 0;
+ margin-bottom: 24px;
+ // margin: 0;
+ // margin-left: 0.3rem;
+ // margin-bottom: 0.2rem;
+ // display: none;
+ }
+
+ .sell-it {
+ // text-align: center;
+ // padding-right: 64px;
+ // max-width: 650px;
+ }
+ .afford {
+ font-weight: bold;
+ }
}
.landing .hero .buttons {
- width: 100%;
- margin-top: 32px;
- margin-bottom: 48px;
- width: 100%;
- display: flex;
- flex-wrap: wrap;
- justify-content: space-evenly;
+ width: 100%;
+ margin-top: 32px;
+ margin-bottom: 48px;
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-evenly;
}
.landing .hero .buttons a {
- flex: 1;
- text-decoration: none;
- color: inherit;
- text-align: center;
- background-color: $button-color;
- border: 0;
- border-radius: 4px;
- font-size: 1rem;
- padding: 12px 16px;
- margin: 8px;
- cursor: pointer;
- box-shadow: 1px 1px 0px $button-shadow-color;
- min-width: 160px;
+ flex: 1;
+ text-decoration: none;
+ color: inherit;
+ text-align: center;
+ background-color: $button-color;
+ border: 0;
+ border-radius: 4px;
+ font-size: 1rem;
+ padding: 12px 16px;
+ margin: 8px;
+ cursor: pointer;
+ box-shadow: 1px 1px 0px $button-shadow-color;
+ min-width: 160px;
}
.landing .hero .buttons a:hover {
- text-decoration: none;
- color: inherit;
- background-color: $button-hover-color;
+ text-decoration: none;
+ color: inherit;
+ background-color: $button-hover-color;
}
.landing .hero .book {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- width: 100%;
- img {
- max-width: 600px;
- }
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ width: 100%;
+ img {
+ max-width: 600px;
+ }
}
.landing .user-comments {
- padding: 48px 0;
- background-color: $warm-grey-050;
+ padding: 48px 0;
+ background-color: $warm-grey-050;
}
.landing .user-comments h1 {
- width: 100%;
- text-align: center;
+ width: 100%;
+ text-align: center;
}
.landing .user-comments blockquote {
- // background-color: $warm-grey-050;
+ // background-color: $warm-grey-050;
}
.landing .books {
- background-color: $warm-grey-800;
- padding: 48px 0;
+ background-color: $warm-grey-800;
+ padding: 48px 0;
}
.landing .format-wrapper {
- width: 100%;
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
}
.landing .format {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ padding: 0;
+ border-radius: 8px;
+
+ background-color: $yellow-050;
+ // border: solid 1px $yellow-100;
+ // border-radius: 8px;
+ margin-bottom: 48px;
+
+ h1 {
+ margin-bottom: 16px;
+ }
+ ul {
+ list-style: none;
+ }
+ ol li,
+ ul li {
+ margin-bottom: 0.4em;
+ font-size: 95%;
+ line-height: 1.35;
+ }
+ nav.buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
- padding: 0;
- border-radius: 8px;
-
- background-color: $yellow-050;
- // border: solid 1px $yellow-100;
- // border-radius: 8px;
- margin-bottom: 48px;
+ }
+ nav.buttons a,
+ nav.buttons div.soon {
+ // flex: 1;
+ text-align: center;
+ width: 100%;
+ background-color: $button-color;
+ border: 0;
+ border-radius: 4px;
+ font-size: 1rem;
+ padding: 12px 16px;
+ // margin: 8px;
+ margin-bottom: 8px;
+ cursor: pointer;
+ box-shadow: 1px 1px 0px $button-shadow-color;
- h1 {
- margin-bottom: 16px;
- }
- ul {
- list-style: none;
- }
- ol li, ul li {
- margin-bottom: 0.4em;
- font-size: 95%;
- line-height: 1.35;
- }
- nav.buttons {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- }
- nav.buttons a, nav.buttons div.soon {
- // flex: 1;
- text-align: center;
- width: 100%;
- background-color: $button-color;
- border: 0;
- border-radius: 4px;
- font-size: 1rem;
- padding: 12px 16px;
- // margin: 8px;
- margin-bottom: 8px;
- cursor: pointer;
- box-shadow: 1px 1px 0px $button-shadow-color;
-
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
-
- span {
- // flex: 0;
- width: 100%;
- }
- }
- nav.buttons a:hover {
- background-color: $button-hover-color;
- cursor: pointer;
- }
- nav.buttons div.soon {
- cursor: auto;
- background-color: $invalid-button-color;
- box-shadow: 1px 1px 0px $invalid-button-shadow-color;
- }
- nav.buttons span.spanner {
- width: 100%;
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- }
- nav.buttons span.spanner a {
- flex: 1;
- }
- nav.buttons span.spanner a:not(:first-child) {
- margin-left: 8px;
- }
- .small-emph {
- // flex: 0;
- // width: 100%;
- font-size: 0.9rem;
- font-style: italic;
- }
- .coming {
- font-size: 0.9rem;
- //font-style: italic;
- }
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
- ul.features {
- margin-top: 24px;
- }
- ul.features li::before {
- @extend %sans-serif;
- content: "•";
- margin-left: -20px;
- padding-right: 8px;
- color: $yellow-500;
- }
- ul.features li {
- margin-left: 32px;
- }
- ul.features a, ul.features a:link {
- text-decoration: underline;
- cursor: pointer;
- }
- ul.features a:hover {
- color: $btc-orange;
+ span {
+ // flex: 0;
+ width: 100%;
}
+ }
+ nav.buttons a:hover {
+ background-color: $button-hover-color;
+ cursor: pointer;
+ }
+ nav.buttons div.soon {
+ cursor: auto;
+ background-color: $invalid-button-color;
+ box-shadow: 1px 1px 0px $invalid-button-shadow-color;
+ }
+ nav.buttons span.spanner {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+ nav.buttons span.spanner a {
+ flex: 1;
+ }
+ nav.buttons span.spanner a:not(:first-child) {
+ margin-left: 8px;
+ }
+ .small-emph {
+ // flex: 0;
+ // width: 100%;
+ font-size: 0.9rem;
+ font-style: italic;
+ }
+ .coming {
+ font-size: 0.9rem;
+ //font-style: italic;
+ }
+
+ ul.features {
+ margin-top: 24px;
+ }
+ ul.features li::before {
+ @extend %sans-serif;
+ content: "•";
+ margin-left: -20px;
+ padding-right: 8px;
+ color: $yellow-500;
+ }
+ ul.features li {
+ margin-left: 32px;
+ }
+ ul.features a,
+ ul.features a:link {
+ text-decoration: underline;
+ cursor: pointer;
+ }
+ ul.features a:hover {
+ color: $btc-orange;
+ }
}
.landing .background {
- display: inline-block;
- padding-left: 24px;
+ display: inline-block;
+ padding-left: 24px;
}
.landing .format .left {
- width: 520px;
- margin-right: 16px;
- padding: 16px;
+ width: 520px;
+ margin-right: 16px;
+ padding: 16px;
- a, a:link, a:hover {
- color: inherit;
- text-decoration: none;
- cursor: auto;
- }
+ a,
+ a:link,
+ a:hover {
+ color: inherit;
+ text-decoration: none;
+ cursor: auto;
+ }
}
.landing .format .img-wrapper {
- width: 500px;
- border-radius: 8px;
- border-bottom-left-radius: 0;
- border-top-left-radius: 0;
- background-image: url("/images/cover/front.png");
- // padding: 8px;
+ width: 500px;
+ border-radius: 8px;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ background-image: url("/images/cover/front.png");
+ // padding: 8px;
}
.landing .print .img-wrapper {
- background-image: url("/images/landing/print.png");
+ background-image: url("/images/landing/print.png");
}
.landing .ebook .img-wrapper {
- background-image: url("/images/landing/ebook.png");
+ background-image: url("/images/landing/ebook.png");
}
.landing .pdf .img-wrapper {
- background-image: url("/images/landing/pdf.png");
+ background-image: url("/images/landing/pdf.png");
}
.landing .web .img-wrapper {
- background-image: url("/images/landing/unbanked.png");
+ background-image: url("/images/landing/unbanked.png");
}
.landing .praise {
- max-width: $large-width;
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
- grid-gap: 4px;
+ max-width: $large-width;
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
+ grid-gap: 4px;
}
.landing .what {
- background-color: $cover-dark3;
- padding-top: 32px;
- padding-bottom: 32px;
- color: $warm-grey-100;
+ background-color: $cover-dark3;
+ padding-top: 32px;
+ padding-bottom: 32px;
+ color: $warm-grey-100;
}
.landing .what .head {
- width: 100%;
- text-align: center;
- margin-bottom: 32px;
+ width: 100%;
+ text-align: center;
+ margin-bottom: 32px;
}
.landing .what .examples {
- max-width: $large-width;
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
- grid-gap: 48px;
+ max-width: $large-width;
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
+ grid-gap: 48px;
}
.landing .what .ex {
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
}
.landing .what .ex h2 {
- margin: 0;
- margin-bottom: 0.3rem;
+ margin: 0;
+ margin-bottom: 0.3rem;
}
.landing .what .img-wrapper {
- width: 130px;
- height: 130px;
- border-radius: 65px;
- // border-radius: 8px;
- // float: left;
+ width: 130px;
+ height: 130px;
+ border-radius: 65px;
+ // border-radius: 8px;
+ // float: left;
}
.landing .what .utility .img-wrapper {
- background-image: url("/images/landing/casino.png");
+ background-image: url("/images/landing/casino.png");
}
.landing .what .easy .img-wrapper {
- background-image: url("/images/landing/huh.png");
+ background-image: url("/images/landing/huh.png");
}
.landing .what .concepts .img-wrapper {
- background-image: url("/images/landing/miners.png");
+ background-image: url("/images/landing/miners.png");
}
.landing .what .order .img-wrapper {
- background-image: url("/images/landing/heli.png");
+ background-image: url("/images/landing/heli.png");
}
.landing .what .general .img-wrapper {
- background-image: url("/images/landing/bank.png");
+ background-image: url("/images/landing/bank.png");
}
.landing .what .variety .img-wrapper {
- background-image: url("/images/landing/snowden.png");
+ background-image: url("/images/landing/snowden.png");
}
.landing .what .right {
- // float: left;
- // width: 100px;
- flex: 1;
- margin-left: 16px;
+ // float: left;
+ // width: 100px;
+ flex: 1;
+ margin-left: 16px;
}
.landing .faq {
- background-color: $warm-grey-900;
- // background-color: $cover-dark3;
- padding: 32px 8px;
- // color: $warm-grey-100;
- background-color: $warm-grey-200;
+ background-color: $warm-grey-900;
+ // background-color: $cover-dark3;
+ padding: 32px 8px;
+ // color: $warm-grey-100;
+ background-color: $warm-grey-200;
}
.landing .faq .questions {
- width: 100%;
+ width: 100%;
}
.landing .faq h1 {
- margin-bottom: 24px;
+ margin-bottom: 24px;
}
.landing .faq a {
- color: inherit;
- text-decoration: underline;
+ color: inherit;
+ text-decoration: underline;
}
.landing .faq a:hover {
- color: $btc-orange;
- text-decoration: none;
+ color: $btc-orange;
+ text-decoration: none;
}
.landing .faq .questions .question-answer {
- width: 100%;
- margin-bottom: 32px;
+ width: 100%;
+ margin-bottom: 32px;
}
.landing .faq .question {
- width: 800px;
- margin: 0 auto;
- font-weight: bold;
+ width: 800px;
+ margin: 0 auto;
+ font-weight: bold;
}
.landing .faq .answer {
- margin: 0 auto;
- width: 800px;
+ margin: 0 auto;
+ width: 800px;
}
.landing .faq .answer ul {
- list-style: none;
- margin: 1rem 0 1rem 0em;
-
- > li::before {
- @extend %sans-serif;
- //content: "⭑";
- //content: "~";
- //content: "≈";
- //content: "→";
- //content: "»";
- //content: "*";
- content: "•";
- //content: "†";
- // color: $body-list-sym-color;
- }
+ list-style: none;
+ margin: 1rem 0 1rem 0em;
+
+ > li::before {
+ @extend %sans-serif;
+ //content: "⭑";
+ //content: "~";
+ //content: "≈";
+ //content: "→";
+ //content: "»";
+ //content: "*";
+ content: "•";
+ //content: "†";
+ // color: $body-list-sym-color;
+ }
}
.landing .ending {
- padding-top: 8px;
- padding-bottom: 8px;
- background-color: $body-background-color;
- // color: $warm-grey-050;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ background-color: $body-background-color;
+ // color: $warm-grey-050;
}
.landing .ending {
- a:link {
- color: inherit;
- text-decoration: underline;
- }
- a:hover {
- color: $btc-orange;
- text-decoration: none;
- }
+ a:link {
+ color: inherit;
+ text-decoration: underline;
+ }
+ a:hover {
+ color: $btc-orange;
+ text-decoration: none;
+ }
}
@media only screen and (max-width: $small-screen) {
- .landing .format {
- width: 520px;
- margin-left: 16px;
- margin-right: 16px;
- // padding: 16px;
- border-radius: 8px;
- padding: 0;
- }
- .landing .format .left {
- order: 2;
- width: 100%;
- margin: 0;
- padding: 16px;
- }
- .landing .format .img-wrapper {
- order: 1;
- width: 100%;
- height: 300px;
- border-radius: 8px;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- }
- .landing .what .examples {
- display: block;
- }
- .landing .what .ex {
- margin-bottom: 48px;
- }
- .landing .faq {
- padding: 32px;
- }
- .landing .faq .questions .question-answer {
- width: 100%;
- }
- .landing .faq .question,
- .landing .faq .answer {
- width: 100%;
- }
- .landing .hero .buttons a {
- flex: 0 1 auto;
- width: 100%;
- }
+ .landing .format {
+ width: 520px;
+ margin-left: 16px;
+ margin-right: 16px;
+ // padding: 16px;
+ border-radius: 8px;
+ padding: 0;
+ }
+ .landing .format .left {
+ order: 2;
+ width: 100%;
+ margin: 0;
+ padding: 16px;
+ }
+ .landing .format .img-wrapper {
+ order: 1;
+ width: 100%;
+ height: 300px;
+ border-radius: 8px;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .landing .what .examples {
+ display: block;
+ }
+ .landing .what .ex {
+ margin-bottom: 48px;
+ }
+ .landing .faq {
+ padding: 32px;
+ }
+ .landing .faq .questions .question-answer {
+ width: 100%;
+ }
+ .landing .faq .question,
+ .landing .faq .answer {
+ width: 100%;
+ }
+ .landing .hero .buttons a {
+ flex: 0 1 auto;
+ width: 100%;
+ }
}
@media only screen and (max-width: 520px) {
- .landing .format {
- width: 100%;
- }
- .landing .praise {
- display: block;
- }
- .landing .praise blockquote {
- margin-bottom: 48px;
- }
+ .landing .format {
+ width: 100%;
+ }
+ .landing .praise {
+ display: block;
+ }
+ .landing .praise blockquote {
+ margin-bottom: 48px;
+ }
}
diff --git a/separation_of_money_and_state.html.pm b/separation_of_money_and_state.html.pm
index 6e3debd..8eeebe1 100644
--- a/separation_of_money_and_state.html.pm
+++ b/separation_of_money_and_state.html.pm
@@ -9,7 +9,7 @@
◊(clear-sidenotes)
-◊img[#:src "/images/bitcoin-priest.png" #:class "slim" #:alt "A priest with a crown, holding a sword and a bag of Bitcoin."]{}
+◊img[#:src "/images/bitcoin-priest.png" #:class "slim" #:alt "A priest with a crown, holding a sword and a bag of Bitcoin." #:decorative #t]{}
When I first started thinking about cryptocurrencies, I thought they were just useful for some people who couldn't use regular transactions, like buying weed or things on a darknet market. Or that it was simply a better payment system as there was no middleman to skim off large fees from all transactions. That's useful, but it didn't strike me as revolutionary.◊mn{fees}
diff --git a/timestamping_service.html.pm b/timestamping_service.html.pm
index f15fd59..b6f1fe2 100644
--- a/timestamping_service.html.pm
+++ b/timestamping_service.html.pm
@@ -305,7 +305,7 @@ Let's now encode and timestamp it using the Bitcoin Cash blockchain:
◊img[#:src "images/electroncash-opreturn.png"
#:title "Electron Cash custom OP_RETURN"
- #:alt "Electron Cash custom OP_RETURN."]{
+ #:alt "Electron Cash OP_RETURN figure"]{
Custom OP_RETURN using ◊link[electroncash]{Electron Cash}.
}
diff --git a/tokens.html.pm b/tokens.html.pm
index 824d80b..de43fc8 100644
--- a/tokens.html.pm
+++ b/tokens.html.pm
@@ -207,12 +207,12 @@ I think visualizations can help us compare large amounts like these, so here's o
`(div ((class "block"))
(div ((class "title")) ,title)
(div ((class "wrapper"))
- (img ((src ,src))))))
+ (img ((src ,src) (role "presentation") (alt ,title))))))
◊(define (small-img title src)
`(div ((class "block"))
(div ((class "title")) ,title)
(div ((class "wrapper small"))
- (img ((src ,src))))))
+ (img ((src ,src) (role "presentation") (alt ,title))))))
◊; Extremely difficult to this with text, as fonts/sizes looks very different.
diff --git a/uncensorable_donations.html.pm b/uncensorable_donations.html.pm
index b1e5980..4cde0fd 100644
--- a/uncensorable_donations.html.pm
+++ b/uncensorable_donations.html.pm
@@ -195,7 +195,7 @@ This is ◊strong{not} a glorification of WikiLeaks---they have ◊link[wikileak
◊entry["The Chelsea Manning leaks"
#:date "July 5, 2010"]{
- ◊div[#:class "caution"]{First I must caution you: it's very easy to become numb when you read about these leaks. The sheer amount of horror is enough to overwhelm you and might cause your brain to suppress your emotions, maybe out of self-defense. But try to remember that this happened to real people---it's not just a mass of text and numbers. Please don't relegate this as just another forgettable statistic.}
+ ◊div[#:class "caution" #:role "note"]{First I must caution you: it's very easy to become numb when you read about these leaks. The sheer amount of horror is enough to overwhelm you and might cause your brain to suppress your emotions, maybe out of self-defense. But try to remember that this happened to real people---it's not just a mass of text and numbers. Please don't relegate this as just another forgettable statistic.}
Chelsea Manning (formerly Bradley Manning) is a former soldier of the United States who provided WikiLeaks with nearly 750,000 military and diplomatic documents. They were released in batches and spread out over a period of time. Some of the content was absolutely shocking and caused global outrage, I've tried to pick out some notable leaks◊mn{more-leaks}:
@@ -220,7 +220,7 @@ This is ◊strong{not} a glorification of WikiLeaks---they have ◊link[wikileak
At 2019-08-28 the transcript timestamps are slightly off compared to the full video, I've tried to match them up better.
}
- ◊div[#:class "transcript-wrapper"]{
+ ◊section[#:class "transcript-wrapper"]{
◊transcript{
02:34 He's got an RPG [Rocket Propelled Grenade]?
@@ -589,10 +589,10 @@ This is ◊strong{not} a glorification of WikiLeaks---they have ◊link[wikileak
(if (string=? row "\n")
""
(let ((cols (string-split row " ")))
- `(div ((class "row"))
- (span ((class "time")) ,(car cols))
- (span ((class "txt")) ,@(cdr cols))))))
- `(div ((class "transcript"))
+ `(div ((class "row") (role "row"))
+ (span ((class "time") (role "cell")) ,(car cols))
+ (span ((class "txt") (role "cell")) ,@(cdr cols))))))
+ `(div ((class "transcript") (role "grid"))
,@(map make-row rows)))
◊(define execution-of-children
diff --git a/undesirable_businesses.html.pm b/undesirable_businesses.html.pm
index 32ad9c1..bf6b641 100644
--- a/undesirable_businesses.html.pm
+++ b/undesirable_businesses.html.pm
@@ -161,14 +161,14 @@ Therefore, most payment processors ◊link[stripe-restricted]{explicitly forbid}
◊img[#:src "/images/xxx-payments1.png"
- #:alt "Payment processor doesn't want to do business with porn."]{
+ #:alt "Payment processing denied figure"]{
Payment processors usually don't want anything to do with porn sites.
}
Instead, they have a third-party request the payment on their behalf and do some shady stuff. They can for example claim the payment is for another type of business, which isn't banned by the payment processor.
◊img[#:src "/images/xxx-payments2.png"
- #:alt "An intermediary makes it possible for the porn business to use a payment processor."]{
+ #:alt "Payment processing ok with an intermediary figure"]{
Another party acting as an intermediary might get accepted by the payment processor, especially if they disguise themselves.
}
diff --git a/voting.html.pm b/voting.html.pm
index b251225..46ffe74 100644
--- a/voting.html.pm
+++ b/voting.html.pm
@@ -280,7 +280,7 @@ With the tokens distributed, you could cast a vote by sending them to predetermi
It's easy to give multiple options. For example if you want to be able to differentiate between those who don't care, and those who want to vote but not any candidate, just have an additional "blank" address voters can send to.
}
-◊img[#:src "/images/voting.png" #:alt "One vote is given out to each person, who then sends it to their voting address of choice."]{
+◊img[#:src "/images/voting.png" #:alt "One vote is given out to each person by the state, who then sends it to their voting address of choice (Hillary or Trump)."]{
Each arrow corresponds to a token transaction and the "Hillary" and "Trump" boxes are addresses. The state is responsible for issuing the voting tokens to the voters and the voters in turn send them to the address they want to vote for. In this example Hillary got 1 vote and Trump got 2, and everyone voted.
}
diff --git a/what_is_money.html.pm b/what_is_money.html.pm
index 888d44f..88ff2a2 100644
--- a/what_is_money.html.pm
+++ b/what_is_money.html.pm
@@ -40,13 +40,13 @@ First, let's look at some interesting historical examples of items that have bee
◊money["Shells"
#:date "1200 B.C."
#:img "/images/cowry.png"
- #:alt "Sea shells."]{
+ #:alt "Sea shells"]{
Sea shells ◊link[sea-shells]{have been used as money for centuries} and were commonly used in parts of Africa and Asia but also in other parts of the world. In West Africa, they saw ◊link[shell-usage]{significant use until the 20◊sup{th} century}.
}
◊money["Coins in ancient Greece"
#:date "500 B.C."
#:img "images/greek_coin.png"
- #:alt "A greek coin."]{
+ #:alt "A greek coin"]{
The Greeks ◊link[ancient-greece-coinage]{used coins} made from precious metal like silver, bronze, and gold. They also stamped the coins with beautiful portraits for a truly modern look.
}
◊money["Rai stones"
@@ -58,7 +58,7 @@ First, let's look at some interesting historical examples of items that have bee
◊money["A 20kg copper coin"
#:date "1644"
#:img "images/20kg_copper.png"
- #:alt "A 20kg copper coin in a wheelbarrow."]{
+ #:alt "A 20kg copper coin in a wheelbarrow"]{
Another example of---let's say interesting---form of money is ◊link[largest-coin]{the world's largest coin.} It's a copper coin weighing 20kg, issued in Sweden.
Since copper was worth much less than silver, very large coins had to be made to offset the difference. At that time, coins did contain raw materials according to their value, which isn't the case today.
@@ -66,7 +66,7 @@ First, let's look at some interesting historical examples of items that have bee
◊money["A 100 billion mark note"
#:date "1924"
#:img "images/german_notes.png"
- #:alt "A large pyramid of paper money."]{
+ #:alt "A large pyramid of paper money"]{
Bank notes---paper money---are easy to use but they do have problems of their own. Unless kept in check, by for example ◊link[rel-gold-standard]{the gold standard}, they can be mass produced to cause ◊link[hyperinflation]{hyperinflation}.
◊link[germany-wallpaper]{This is what happened in Germany} after the first World War. They had massive debts after losing the war, so they tried to print enough money to pay off the debts.◊mn{germany-stories}
@@ -78,13 +78,13 @@ First, let's look at some interesting historical examples of items that have bee
◊money["Cigarettes in prison"
#:date `("20" (sup "th") " century")
#:img "images/prison_money.png"
- #:alt "A cigarette."]{
+ #:alt "A cigarette"]{
Like depicted in the movie Shawshank Redemption cigarettes are used in some prisons ◊link[prison-cigarettes]{as a form of money}. Today, some prisons have started to ban smoking, so they instead use things like ◊link[prison-stamps]{stamps} or ◊link[prison-ramen]{ramen}.
}
◊money["Euro bank notes"
#:date `("21" (sup "th") " century")
#:img "images/bank_notes.png"
- #:alt "Euro bank notes."]{
+ #:alt "Euro bank notes"]{
There are many kinds of ◊em{fiat currencies},◊mn{fiat-commodity} for example, the Euro. Modern coins aren't made of valuable metal and paper notes are used for large denominations.
◊note-pos[#:top -6 #:bottom -20]{fiat-commodity}
@@ -92,13 +92,13 @@ First, let's look at some interesting historical examples of items that have bee
◊money["Dogecoin"
#:date "2013"
#:img "images/doge.png"
- #:alt "Doge."]{
+ #:alt "Doge"]{
Dogecoin is a cryptocurrency and while created as a "joke currency" it quickly gained popularity as a tipping tool online. You can still find merchants who accept it today for things like domain names, web hosting, VPNs, or games.
}
◊money["Marbles on the school yard"
#:date "2017"
#:img "images/marbles.png"
- #:alt "Two people playing with marbles."]{
+ #:alt "Two people playing with marbles"]{
Kids on the school-yard often come up with interesting forms of money. For example, collectible card games or game components. Another example is marbles used in a Swedish game where you win your opponents marbles. (And those with many marbles had higher status in class.)◊mn{pokemon}
◊note-pos[#:bottom -20]{pokemon}
@@ -131,7 +131,7 @@ First, let's look at some interesting historical examples of items that have bee
[else
""]))
`(div ((class "example"))
- (img ((src ,img) (alt ,alt)))
+ (img ((src ,img) (alt ,alt) (role "presentation")))
(div ((class "txt"))
(div ((class "header"))
(h3 ,title)