summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/about.md4
-rw-r--r--content/entry/atom-and-rss.md4
-rw-r--r--content/entry/dead-mans-switch.md2
-rw-r--r--content/entry/future-proof-digital-timestamping.md2
-rw-r--r--content/entry/icannot-be-trusted.md2
-rw-r--r--content/entry/site-update-006.md2
-rw-r--r--content/entry/statement-of-gpg-key-transition.md4
-rw-r--r--content/entry/struggle-to-graduate-without-nonfree-software.md2
-rw-r--r--content/entry/tone-deaf-marketing.md2
-rw-r--r--content/entry/why-i-timestamped-my-journal.md4
-rw-r--r--static/static/climate-change-marketing-transcript.txt (renamed from static/climate-change-marketing-transcript.txt)0
-rw-r--r--static/static/decision-tree.jpg (renamed from static/decision-tree.jpg)bin28850 -> 28850 bytes
-rw-r--r--static/static/feed-icon-28x28.png (renamed from static/feed-icon-28x28.png)bin1680 -> 1680 bytes
-rw-r--r--static/static/gpg-signify-transition-statement.txt.asc (renamed from static/gpg-signify-transition-statement.txt.asc)0
-rw-r--r--static/static/gpg-signify-transition-statement.txt.sig (renamed from static/gpg-signify-transition-statement.txt.sig)0
-rw-r--r--static/static/narrative.org (renamed from static/narrative.org)0
-rw-r--r--static/static/old-favicon.ico (renamed from static/old-favicon.ico)bin15406 -> 15406 bytes
-rw-r--r--static/static/signify.pub (renamed from static/signify.pub)0
-rw-r--r--static/static/timestamp-1.txt (renamed from static/timestamp-1.txt)0
-rw-r--r--static/static/timestamp-2.ots (renamed from static/timestamp-2.ots)bin1119 -> 1119 bytes
20 files changed, 14 insertions, 14 deletions
diff --git a/content/about.md b/content/about.md
index 69f5a46..16b6f30 100644
--- a/content/about.md
+++ b/content/about.md
@@ -18,7 +18,7 @@ SimpleX is my preferred method of contact. It's private and secure.
My LibrePlanet talk contains a slide (at timestamp 00:40) verifying that the signing key below belongs to me.
-[:key: Signify Key](/signify.pub)
+[:key: Signify Key](/static/signify.pub)
[:tv: LibrePlanet Talk](https://media.libreplanet.org/u/libreplanet/m/taking-back-the-web-with-haketilo/)
The git-signify helper script can use my signing key to verify the authenticity of this journal.
@@ -76,5 +76,5 @@ To provide some assurance that I don't use AI tools to write this journal, I tim
```sh
git clone --recursive https://git.nicholasjohnson.ch/journal
-ots verify -d "$(git -C journal show-ref --hash signify-signature-10)" journal/static/timestamp-2.ots
+ots verify -d "$(git -C journal show-ref --hash signify-signature-10)" journal/static/static/timestamp-2.ots
```
diff --git a/content/entry/atom-and-rss.md b/content/entry/atom-and-rss.md
index f7cfb04..a652a6a 100644
--- a/content/entry/atom-and-rss.md
+++ b/content/entry/atom-and-rss.md
@@ -5,7 +5,7 @@ tags: ['computing']
draft: false
---
Most netizens are vaguely familiar with this symbol:
-[RSS icon [IMG]](/feed-icon-28x28.png)
+[RSS icon [IMG]](/static/feed-icon-28x28.png)
It represents [Atom](https://en.wikipedia.org/wiki/Atom_%28standard%29) and [RSS](https://en.wikipedia.org/wiki/RSS). From Wikipedia ([CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)):
## RSS
@@ -22,7 +22,7 @@ I'm not inherently against social media. I'm just against proprietary walled gar
Now that you know what Atom/RSS is and you have an idea what it's used for, I'll move on to the meat of this post: how to use Atom/RSS. To begin using Atom/RSS yourself, you'll need to install a feed reader. There is mature feed reader software available for all major platforms including mobile. Decent feed readers support both Atom and RSS and you probably won't need to know which is which. Most sites including this one still use RSS. I do plan to eventually switch [my site feed](/atom.xml) over to Atom since it's more modern.
Once you find the feed symbol
-[RSS icon [IMG]](/feed-icon-28x28.png)
+[RSS icon [IMG]](/static/feed-icon-28x28.png)
on the webpage with the feed you want, just copy paste the link adding it into your feed reader and you're golden. After that your reader will take care of retrieving the content from that feed automatically. If you can't find a feed icon on a site, that doesn't mean the site doesn't support RSS. They may just not advertise it. Search the web for that site's RSS feed to see if anything turns up. If nothing turns up, there are websites that will parse the page you want turning it into a web feed. As long as you're not required to log in to view the content, you can probably find an RSS feed for it.
Decent Atom/RSS aggregators allow you to create groups of feeds, so you can combine related feeds or view them separately. You can even aggregate all your feeds into 1 big feed if that's what you want. With Atom/RSS, the choice is yours. If you stop reading a feed, it's as easy to remove from your aggregator as it was to add. Sites with lots of content offer Atom/RSS feeds based on category. For example if you're only interested in my posts about "computing", you can subscribe only to this RSS feed.
diff --git a/content/entry/dead-mans-switch.md b/content/entry/dead-mans-switch.md
index 2b7887e..f488d84 100644
--- a/content/entry/dead-mans-switch.md
+++ b/content/entry/dead-mans-switch.md
@@ -43,7 +43,7 @@ In theory the DMS represents a sequential, [noncooperative game](https://en.wiki
This point structure assumes both Players value retribution but not as much as avoiding harm. Both Players assume the other will adopt the strategy of maximizing their own points. Using the [Minimax](https://en.wikipedia.org/wiki/Minimax#Example_2) algorithm it can be determined that both Players will do nothing. Any other action would result in both players having less points. Points are represented for each Player in the format (P1,P2) in the decision tree below:
-[decision-tree [IMG]](/decision-tree.jpg)
+[decision-tree [IMG]](/static/decision-tree.jpg)
## In Practice
In practice there are a number of complicating factors. Player 2 may not know exactly what the leaks contain making it impossible to value the cost of violence. Player 1 can create the perception of cost but in reality not even set up the switch or set one up incorrectly so it doesn't work or simply forget to deactivate it thus triggering it. Player 2 may find a way to disarm it. To account for the real-world outcomes you would need a much larger decision tree. And even then what are the chances that both players act rationally? So don't think that a DMS is guaranteed to be effective.
diff --git a/content/entry/future-proof-digital-timestamping.md b/content/entry/future-proof-digital-timestamping.md
index fa83e55..f08eee6 100644
--- a/content/entry/future-proof-digital-timestamping.md
+++ b/content/entry/future-proof-digital-timestamping.md
@@ -25,7 +25,7 @@ Then I found [OpenTimestamps](https://opentimestamps.org/). It's based on Bitcoi
Also, OpenTimestamps has an extremely efficient design compared to other Bitcoin timestamping schemes. Thanks to OpenTimestamps' clever use of [Merkle trees](https://petertodd.org/2016/opentimestamps-announcement#merkle-trees), it can timestamp unlimited data using only 1 transaction. Other Bitcoin timestamping software uses 1 transaction per timestamp, an extremely wasteful, inefficient design. At least OpenTimestamps isn't that bad.
-So anyway, I created a timestamped Git commit and tagged it [timestamp-1](https://archive.softwareheritage.org/swh:1:rel:e4726ec79a43e28c616e4d5f3db0efe2237b23f9;origin=https://git.nicholasjohnson.ch/nicksphere-gmi;visit=swh:1:snp:fb9bef300f9b939382f5656232d95377c8630a10). I wrote the concatenated commit data of the timestamped commit to [a file](/timestamp-1.txt) in case you're interested to see what it looks like. The software works in a very elegant fashion. It even maintains compatibility with non-OpenTimestamps Git clients, so GnuPG can still verify the commit signature.
+So anyway, I created a timestamped Git commit and tagged it [timestamp-1](https://archive.softwareheritage.org/swh:1:rel:e4726ec79a43e28c616e4d5f3db0efe2237b23f9;origin=https://git.nicholasjohnson.ch/nicksphere-gmi;visit=swh:1:snp:fb9bef300f9b939382f5656232d95377c8630a10). I wrote the concatenated commit data of the timestamped commit to [a file](/static/timestamp-1.txt) in case you're interested to see what it looks like. The software works in a very elegant fashion. It even maintains compatibility with non-OpenTimestamps Git clients, so GnuPG can still verify the commit signature.
The base64-encoded timestamp appended to the commit data includes all the necessary hashes to build the Merkle path from the tagged commit to the merkle root included in the Bitcoin transaction. Using './ots --git-extract [filename]' on any file in the nicksphere-gmi repo present at the timestamped commit, you can extract an ots proof file which you can then verify with './ots --verify [filename]'.
diff --git a/content/entry/icannot-be-trusted.md b/content/entry/icannot-be-trusted.md
index 6fc5c9b..676822e 100644
--- a/content/entry/icannot-be-trusted.md
+++ b/content/entry/icannot-be-trusted.md
@@ -18,6 +18,6 @@ Ideally, you're accessing this journal [over](gemini://nick6gsepvtmkcpibpid6dqtq
My Tor onion and I2P addresses aren't foolproof. They're hosted on a VPS, meaning my VPS provider could hijack them. Using nicholasjohnson.ch to access my journal, you have to trust both ICANN and my VPS though. So you're better off using Tor or I2P so you only need to trust one third party, not two.
-Brief digression: To avoid trusting any third party, you can always [verify my journal's Git repository](https://archive.softwareheritage.org/swh:1:rev:0990ac4365ea2e436a9d28aeefdd16ec65c27afa;visit=swh:1:snp:d25282c0c441839d1ca147a90699bd2c7d986a21) with [my public Signify key](/signify.pub) and a small utility called [git-signify](https://git.nicholasjohnson.ch/git-signify/). If there's any doubt the key is mine, I gave a [Libreplanet talk](https://media.libreplanet.org/u/libreplanet/m/taking-back-the-web-with-haketilo/) with my public key in the slides five months ago and I have an unbroken history of public keys going back to December of 2020 starting with my original [GPG key](/2021/12/30/statement-of-gpg-key-transition/) which I transitioned away from.
+Brief digression: To avoid trusting any third party, you can always [verify my journal's Git repository](https://archive.softwareheritage.org/swh:1:rev:0990ac4365ea2e436a9d28aeefdd16ec65c27afa;visit=swh:1:snp:d25282c0c441839d1ca147a90699bd2c7d986a21) with [my public Signify key](/static/signify.pub) and a small utility called [git-signify](https://git.nicholasjohnson.ch/git-signify/). If there's any doubt the key is mine, I gave a [Libreplanet talk](https://media.libreplanet.org/u/libreplanet/m/taking-back-the-web-with-haketilo/) with my public key in the slides five months ago and I have an unbroken history of public keys going back to December of 2020 starting with my original [GPG key](/2021/12/30/statement-of-gpg-key-transition/) which I transitioned away from.
If you yourself are an online service provider, please follow my example and offer a Tor onion and/or I2P address to help resist ICANN's power.
diff --git a/content/entry/site-update-006.md b/content/entry/site-update-006.md
index 48cca96..30d47c4 100644
--- a/content/entry/site-update-006.md
+++ b/content/entry/site-update-006.md
@@ -7,6 +7,6 @@ draft: false
# What's New
I changed the website theme. It's darker now and much easier on the eyes. I didn't particularly like the last theme ever since I started using it. I only picked it because it was easy to manage with how minimal it was. I added a favicon to identify my site:
-[favicon [IMG]](/old-favicon.ico)
+[favicon [IMG]](/static/old-favicon.ico)
It's nothing to brag about. I just thought I ought to have something there. The markdown is improved, especially the blockquotes. It didn't seem like they were rendering on the previous theme, but now they do. Each post now has a word count and estimated reading time in the metadata section. Posts are paginated so they're not all on one page like before. I'm allergic to client-side JS, so this site has none. I modified the theme to use CSS rather than JS for the interactive features. I'm happy with the way it turned out and I consider it a significant improvement. The new theme is everything I originally wanted for my blog, so it's here to stay.
diff --git a/content/entry/statement-of-gpg-key-transition.md b/content/entry/statement-of-gpg-key-transition.md
index 6187313..058de96 100644
--- a/content/entry/statement-of-gpg-key-transition.md
+++ b/content/entry/statement-of-gpg-key-transition.md
@@ -20,10 +20,10 @@ The new Signify key is:
RWTJ8JZMFWhB2Ya9GyXbmOQKSxd/x57IV/oNo6/nl344CR1aqf/OgPXf
If you have my old GnuPG key, you can verify this transition statement with:
-gpg2 --verify [gpg-signify-transition-statement.txt.asc](/gpg-signify-transition-statement.txt.asc)
+gpg2 --verify [gpg-signify-transition-statement.txt.asc](/static/gpg-signify-transition-statement.txt.asc)
You can verify the new Signify key with:
-signify -V -e -p key.pub -m [gpg-signify-transition-statement.txt.sig](/gpg-signify-transition-statement.txt.sig)
+signify -V -e -p key.pub -m [gpg-signify-transition-statement.txt.sig](/static/gpg-signify-transition-statement.txt.sig)
Thank you, and sorry for the inconvenience.
diff --git a/content/entry/struggle-to-graduate-without-nonfree-software.md b/content/entry/struggle-to-graduate-without-nonfree-software.md
index aad76bf..f3705d1 100644
--- a/content/entry/struggle-to-graduate-without-nonfree-software.md
+++ b/content/entry/struggle-to-graduate-without-nonfree-software.md
@@ -7,7 +7,7 @@ draft: false
# Introduction
From the title of this journal entry alone, you might think it's about my story struggling to graduate without nonfree software. But I've already beaten that topic to death on this journal. It's time for someone else's story: Wojciech Kosior. He faced the same sort of difficulties graduating that I did, except he graduated. His story is one of incredible determination and persistence. He fought hard to graduate in freedom and won. I don't know of many people with the resolve displayed in his narrative.
-The revised narrative of his struggle can be found on [gnu.org](https://www.gnu.org/education/how-i-fought-to-graduate-without-using-non-free-software.html). It went through at least 20 revisions before being published. Many of the details were stripped. He kindly sent me the unedited original copy of his narrative which I personally find more inspiring than the one on gnu.org. I modified the narrative's formatting to make it more presentable here. It was originally sent as a .org. If you want the original .org file (for Emacs), I've uploaded it to this web server for [download](/narrative.org).
+The revised narrative of his struggle can be found on [gnu.org](https://www.gnu.org/education/how-i-fought-to-graduate-without-using-non-free-software.html). It went through at least 20 revisions before being published. Many of the details were stripped. He kindly sent me the unedited original copy of his narrative which I personally find more inspiring than the one on gnu.org. I modified the narrative's formatting to make it more presentable here. It was originally sent as a .org. If you want the original .org file (for Emacs), I've uploaded it to this web server for [download](/static/narrative.org).
If you enjoyed reading my story struggling to graduate without nonfree software, then you're in for a treat. Without further introduction, I present to you Wojciech Kosior's narrative.
diff --git a/content/entry/tone-deaf-marketing.md b/content/entry/tone-deaf-marketing.md
index 35812c8..4854e25 100644
--- a/content/entry/tone-deaf-marketing.md
+++ b/content/entry/tone-deaf-marketing.md
@@ -5,7 +5,7 @@ draft: false
---
Today I visited the website of a business that I've been a long-time customer of and noticed something strange about their marketing. They were advertising a "summer heat wave special". This came off to me as absolutely tone deaf and in poor taste. We are in the middle of arguably the biggest crisis humanity has ever faced in its history and the disastrous effects it's having are being used as a marketing strategy?
-Understand that I am not one of those people who complains to customer service departments on a regular basis over minor problems, but in this case I felt it appropriate. You can find the full reformatted and redacted transcript [here](/climate-change-marketing-transcript.txt "Customer Service Transcript") if you're interested. For this entry, I have cut out the irrelevant automated messages to save time:
+Understand that I am not one of those people who complains to customer service departments on a regular basis over minor problems, but in this case I felt it appropriate. You can find the full reformatted and redacted transcript [here](/static/climate-change-marketing-transcript.txt "Customer Service Transcript") if you're interested. For this entry, I have cut out the irrelevant automated messages to save time:
```plaintext
5:41:45 p.m. [REDACTED]: Good Afternoon, Thank you for contacting [REDACTED]. This is [REDACTED]. How may I assist you?
diff --git a/content/entry/why-i-timestamped-my-journal.md b/content/entry/why-i-timestamped-my-journal.md
index 0947e74..de31e47 100644
--- a/content/entry/why-i-timestamped-my-journal.md
+++ b/content/entry/why-i-timestamped-my-journal.md
@@ -33,7 +33,7 @@ Commands:
```sh
git clone --recursive https://git.nicholasjohnson.ch/journal
-ots verify -d "$(git -C journal show-ref --hash signify-signature-10)" journal/static/timestamp-2.ots
+ots verify -d "$(git -C journal show-ref --hash signify-signature-10)" journal/static/static/timestamp-2.ots
```
@@ -45,6 +45,6 @@ Timestamp chaining could perhaps provide stronger assurance of the legitimacy of
But one good idea contained in that entry was to restamp this journal's Git repo to future-proof its timestamp. The old timestamp was performed on the old repo which used the broken SHA-1 hashing algorithm. Since then, I converted the repo to the new SHA-2 object format and SHA-2 support in Git has been stabilized. So everything I needed to create a new, stronger timestamp was present. Well, almost everything.
-The only issue I ran into was that the OpenTimestamps software does not have sufficient [Git integration](https://github.com/opentimestamps/opentimestamps-client/blob/master/doc/git-integration.md "OpenTimestamps Git Integration") to embed timestamps within Git objects in SHA-2 repos like it can for SHA-1 repos. So I just timestamped [the most recent tag](https://git.nicholasjohnson.ch/journal/tag/?h=signify-signature-10 "Most Recent Tag of Journal Repo") manually, creating a fully separate [.ots proof file](/timestamp-2.ots "Timestamp Proof File") which is verified without using OpenTimestamps' GnuPG wrapper.
+The only issue I ran into was that the OpenTimestamps software does not have sufficient [Git integration](https://github.com/opentimestamps/opentimestamps-client/blob/master/doc/git-integration.md "OpenTimestamps Git Integration") to embed timestamps within Git objects in SHA-2 repos like it can for SHA-1 repos. So I just timestamped [the most recent tag](https://git.nicholasjohnson.ch/journal/tag/?h=signify-signature-10 "Most Recent Tag of Journal Repo") manually, creating a fully separate [.ots proof file](/static/timestamp-2.ots "Timestamp Proof File") which is verified without using OpenTimestamps' GnuPG wrapper.
Hopefully the new timestamp lasts. If not, both [Software Heritage](https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://git.nicholasjohnson.ch/journal "Journal Repo on Software Heritage") and [Archive.org](https://web.archive.org/web/*/https://nicholasjohnson.ch/ "Journal on Archive.org") have centralized timestamps of this journal as fallbacks.
diff --git a/static/climate-change-marketing-transcript.txt b/static/static/climate-change-marketing-transcript.txt
index 7417d3b..7417d3b 100644
--- a/static/climate-change-marketing-transcript.txt
+++ b/static/static/climate-change-marketing-transcript.txt
diff --git a/static/decision-tree.jpg b/static/static/decision-tree.jpg
index af78b8d..af78b8d 100644
--- a/static/decision-tree.jpg
+++ b/static/static/decision-tree.jpg
Binary files differ
diff --git a/static/feed-icon-28x28.png b/static/static/feed-icon-28x28.png
index 26d64ab..26d64ab 100644
--- a/static/feed-icon-28x28.png
+++ b/static/static/feed-icon-28x28.png
Binary files differ
diff --git a/static/gpg-signify-transition-statement.txt.asc b/static/static/gpg-signify-transition-statement.txt.asc
index 7f55660..7f55660 100644
--- a/static/gpg-signify-transition-statement.txt.asc
+++ b/static/static/gpg-signify-transition-statement.txt.asc
diff --git a/static/gpg-signify-transition-statement.txt.sig b/static/static/gpg-signify-transition-statement.txt.sig
index 19a074f..19a074f 100644
--- a/static/gpg-signify-transition-statement.txt.sig
+++ b/static/static/gpg-signify-transition-statement.txt.sig
diff --git a/static/narrative.org b/static/static/narrative.org
index 49b9e62..49b9e62 100644
--- a/static/narrative.org
+++ b/static/static/narrative.org
diff --git a/static/old-favicon.ico b/static/static/old-favicon.ico
index 1cf1659..1cf1659 100644
--- a/static/old-favicon.ico
+++ b/static/static/old-favicon.ico
Binary files differ
diff --git a/static/signify.pub b/static/static/signify.pub
index 31cec86..31cec86 100644
--- a/static/signify.pub
+++ b/static/static/signify.pub
diff --git a/static/timestamp-1.txt b/static/static/timestamp-1.txt
index 4f48250..4f48250 100644
--- a/static/timestamp-1.txt
+++ b/static/static/timestamp-1.txt
diff --git a/static/timestamp-2.ots b/static/static/timestamp-2.ots
index fb0e4a0..fb0e4a0 100644
--- a/static/timestamp-2.ots
+++ b/static/static/timestamp-2.ots
Binary files differ