feat: move essays of 2021

This commit is contained in:
Stefan Imhoff
2023-06-05 19:24:25 +02:00
parent 8c89a19b45
commit 0a1909d778
30 changed files with 2083 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -0,0 +1,60 @@
---
title: "DEVONthink and Obsidian: The Perfect Pair of Tools for Note-Taking"
slug: devonthink-obsidian-for-note-taking
date: 2021-07-23T09:08:49+02:00
author: Stefan Imhoff
description: With the release of the mobile versions of Obsidian, my note-taking workflow with Obsidian and DEVONthink is now even more fun than before.
tags: ["productivity", "software", "note-taking"]
---
With the release of the mobile versions of [Obsidian](https://obsidian.md/) last week, my note-taking workflow got even more comfortable.
The mobile versions are fantastic. They support all plugins of the Desktop version, even community plugins.
The mobile version has additional settings for mobile, to customize the toolbar and quick action.
## Synchronization
To sync between Desktop and mobile devices, the Obsidian vaults have to be moved to an iCloud system folder.
The synchronization is superfast (I assume thanks to Apple CloudKit). It takes 2-3 seconds to see a change reflected live on another device.
## My Updated Setup
I moved my Obsidian vault to the iCloud system folder to be able to synchronize between devices. I kept the Git Repository and commit changes regularly every day. I use this simple shell script for that:
```bash
#!/bin/sh
gstatus=`git status --porcelain`
if [ ${#gstatus} -ne 0 ]
then
git add --all
git commit -m `date +%Y-%m-%d-%H%m%S`
git pull --rebase
git push
fi
```
I plan to run this script soon with a daemon at regular intervals.
The same vault is indexed in my [DEVONthink](https://devontechnologies.com/apps/devonthink) **Archive** database.
And because the vault lives in iCloud, all changes in Obsidian or DEVONthink to any file are reflected immediately. DEVONthink supports the Markdown syntax of Obsidian, which makes it convenient to edit files regardless of which of the two applications.
Obsidian has better tools for linking and thinking than DEVONthink, but DEVONthink is more powerful in storing reference items, analyzing text, tagging, and plenty of other features.
## My Note-Taking Workflow
When I come across an interesting article, quote, audio, or video, I capture the item as explained in my previous article [How I Process Information Into Notes](/processing-information-into-notes/).
If it is text in an image, I use the OCR feature to convert it into selectable text. Im curious how my workflow will improve with the upcoming Apple updates this fall, which will bring native text selection in images.
Articles I always save as Markdown to my reference database for later reference. The DEVONthink capture feature is one of the most useful features I know. It grabs the article, cleans it from advertising and layout elements, and converts it to Markdown, including all links.
I use the Markdown highlight feature (`==highlight==`) to mark appealing parts of the text. These parts get converted into permanent notes in Obsidian. To remember where I got the note from, I create a new entry in a [BibDesk](https://bibdesk.sourceforge.io/) database (which lives inside my Obsidian vault in a subfolder) and add the reference key to the note.
I tag my notes with hashtags (`#tag`) which I convert to system tags with DEVONthink.
To link notes together, I use the auto-complete feature of Obsidian to find related notes.

View File

@@ -0,0 +1,269 @@
---
title: How to Prepare for the Worst Case
slug: how-to-prepare-for-the-worst-case
date: 2021-11-19T13:00:00+01:00
author: Stefan Imhoff
description: When potential dangers to the individual increase due to mismanagement, political incompetency, or tribalism, its good to have a plan on how to protect yourself and your family.
tags: ["tip", "survival"]
---
I tended to have a more positive image of human nature than _Thomas Hobbes_, I believed in sharing, cooperation, and “The Wisdom of Crowds.” But since Corona, I had to revise my idea of human nature. I cant believe how easy it was to scare more than half of the population with a virus that has a more than 99.98% survival rate to forget all their virtue and liberal values.
<Pullquote author="Amos Burton (James S. A. Corey)" source="The Expanse, S5.6: Tribes">
The thing about civilization is, it keeps you civil. Get rid of one, you cant count on the other.
</Pullquote>
When parts of the population decided against vaccination (a novel gene therapy that provides time-limited personal protection and no protection of others) the rhetoric escalated. A politician of the CSU party tweeted <q>Impfen macht frei</q>[^mooser2021lp] (Vaccination sets you free), words that echo the crimes of the National Socialists. _Oliver Welke_, the host of the comedy show “_Heute Show_” called unvaccinated <q>asocial</q>[^rnd2021rc] a term invented by the National Socialists to devalue classes of undesirables as inferior and harmful to society. The term “_Volksgesundheit_”[^hendrig2020jc] was suddenly used everywhere, despite its tainted past and better words available to describe public health. Patriotism[^link2021kt] was quick _en vogue_ again, after being left for years to right-wing parties. _Noam Chomsky_ called out in a public interview to segregate unvaccinated from society and starve them into submission.[^nationalpoststaff2021vm] Shortly thereafter, Austria and Germany introduced lockdowns for unvaccinated. Austria went even further and introduced mandatory vaccination for everybody.
<Pullquote author="Amos Burton (James S. A. Corey)" source="The Expanse, S5.6: Tribes">
People are tribal. The more settled things are, the bigger the tribes can be. The churn comes, and
the tribes get small again.
</Pullquote>
If a virus with a mild illness can awaken tribalism, the wish for discrimination and segregation, and hate in people, what will starvation or fear for life through violence do?
## Praemeditatio Malorum
I have a personality that likes to plan as if things might not go as planned. In Stoicism, this technique is called _praemeditatio malorum_, and its considered good practice to think and act at least sometimes as if things might go wrong.
<Blockquote author="Seneca" source="Letters from a Stoic (p. 178)">
Rehearse them in your mind: exile, torture, war, shipwreck. All the terms of our human lot should
be before our eyes.
</Blockquote>
The Stoics had techniques to train and prepare mentally and physically for potential future challenges. This makes one resilient and panic less likely if things go wrong. The Stoics were trained to eat basic food, wear basic clothes, or sleep on the floor from time to time to train in this mindset. Hard physical work or demanding physical training are other good ways to toughen the body and mind. It helps to learn to be uncomfortable.
## Blackouts & Other Threats
Recently, after reading the book <cite>Vom Verlust der Freiheit</cite>[^unger2021pf] (On the loss of freedom) by _Raymond Unger_, I decided to invest more in my security and safety. Ungers book has a chapter about the consequences of a Blackout, and its not an easy read.
We throw around the term “Blackout” when the energy goes out for 10 minutes, but people are not aware those arent Blackouts. A Blackout is dangerous, life-threatening, and society-destroying. After one week the first people will start dying, after two weeks we would be back to the middle-ages with warlords and the rule of the strongest.
<Pullquote author="Amos Burton quoting Lydia (James S. A. Corey)" source="The Expanse">
Float to the top or sink to the bottom. Everything in the middle is the churn.
</Pullquote>
The whole European energy grid is in a bad state. The push for green energy will worsen the problem soon. Germany had two Brownouts (near Blackouts) in the last two years that could be prevented by transferring energy from neighboring countries.
And Blackouts are yet one possible threat to civilization. A solar flare might destroy our grid and computers, as _Bret Weinstein_ describes in his article.[^weinstein2021rg] Its much more likely our civilization might end from a solar flare than global warming or an asteroid.
Other things might be natural disasters like floods or storms, social uprising, riots, disrupted supply chains[^roussinos2021dl] due to wars and catastrophes, hacker attacks on infrastructure, or the prospect of a future war with China.
Enough reasons to start thinking about what to do if <q>shit hits the fan.</q> Ive seen how poorly the German government handled the 100-year flood in 2021, the Corona crisis, and how our soon-to-be chancellor _Olaf Scholz_ failed as mayor of Hamburg to protect the city when hundreds of Antifa rioters unleashed violence on the city for multiple days during the **G20 Summit** in 2017.[^spiegel2017oz]
Im not betting on politicians to be able to solve a crisis quickly (or at all).
## Getting Comfortable
I think we all got comfortable — and Im not excluding myself from this. We depend on our phones, buy new things instead of fixing them, love convenience, and order food or groceries online. This is even more true for people living in cities. We expect things to work, transportation to be fast and good, and the next hospital to be nearby. We never think or even like to think about how things might go wrong.
But cities will quickly turn into deadly traps in case of catastrophes. Thats what Ive learned from <cite>The Walking Dead</cite>. Leave the cities when something happens. I think the CEO of Oracle once mentioned on a podcast that he has a packed motorcycle in his garage in case of emergency. Forget your car, thats another thing I learned from <cite>The Walking Dead</cite>, there is always a traffic jam of cars on the road out of a city. You need a bicycle or motorbike to survive.
## Boy Scouts and Military Service
Because Im over 40, I had the “privilege” to be born before the internet and before personal computers were common in every household. Until the personal computer arrived when I was a teenager, I was outside. I created bows and spears and learned how to shoot with them. I practiced throwing knives until they kept sticking to the wall. My friends and I built fortresses and bunkers in the forest and played war. I remember a school friend who needed to visit the hospital after a stone hit his head in a war scenario.
I was a Boy Scout for many years and got my first knife when I was 7 or 8. I stayed in Boy Scout camps for long cold weeks during the holidays in Denmark or in mountains and forests in Germany, where we build bridges and slept in tents. We baked bread and had watered-down tea. The next supermarket was miles away. I never liked it too much, but hardship builds character.
I did obligatory military service for nearly a year, learning to shoot with pistols and rifles, crawling over wet meadows, and freezing in the snow in cold winter. I fell into a cold river while crawling in darkness through a forest. I didnt like that either but dont regret the experience. Germany discontinued obligatory military service, which is why younger people have no clue what Im talking about. For them, a bad WLAN connection is the most uncomfortable thing they experienced.
## Preparing for a Blackout
Countries like Austria or Switzerland prepare their population for a Blackout.[^bundesheer2021dn] Germany doesnt care, our politicians think all is fine, and no action is needed. We dont even get sirens running on the yearly alarm day. Austria produced a documentary[^hanslik2018wu][^poet2019ss] that shows what happens during a Blackout. The film mentions what an Austrian citizen should have to be prepared for:
- 10-15 l of water per person
- Camping stove and fuel paste
- Plenty of canned food and dry goods (pasta and rice)
- Passport
- First aid kit
- Trash bags
- Hygiene items
- Emergency power generator with diesel supply
- Protective clothing (mask, rubber gloves)
- Radio with batteries
- Flare gun
- Knife
<Banner summary="Durable Foods" open>
Rice, pasta, and salt are three types of food that have a nearly unlimited lifespan (under the
right storage conditions).
</Banner>
I can check off everything on this list except the flare gun and power generator because they are impractical for a city flat.
## My Survival Equipment
This list is a good start, but I decided to stock up on more things. I tend to buy things in stock, out of laziness and convenience. I always use the same shampoo, why not buy three at once? Why not have things that hold longer times?
I have a huge military <AffiliateLink asin="B00W9W18YY" text="ammunition box" /> that holds my equipment. Parts of it I own for more than 25 years, and other things I bought recently.
### Food
I have an extensive amount of food in stock, all things I regularly consume and restock.
- Couscous (1 kg)
- Asian Noodles, _e.g., Mie, Ramen, Somen, Soba_ (3 kg)
- Pasta (5 kg)
- Rice (6 kg)
- Potatoes (2 kg)
- Cans with stew, meat, goulash, and soup (10)
- Chocolate, _dark_ (1 kg)
- Bread, _deep-frozen_ (2)
- Buns, _deep-frozen_ (16-20)
- Eggs (10-20)
- Nuts and legumes (500 g)
- Sausages, _air-dried and deep-frozen_ (700 g)
- Beef, _deep-frozen_ (2 kg)
- Duck, _deep-frozen_ (2 kg)
### Drinks
- Water, _glass-bottled_ (20 l)
- Apple Juice, _opened it lasts 6 months due to a vacuum_ (40 l)
- Orange Juice (10 l)
- Breakfast Juice (10 l)
- Dark Multivitamin Juice (10 l)
### Cooking
Additionally, I have equipment for cooking and food. I bought titanium equipment from a company called _Boundless Voyage_ which is lightweight, small, durable, antibacterial, strong, and resistant to heat or cold.
I own a set of <AffiliateLink asin="B08D3PFYJM" text="drinking cups" />, a <AffiliateLink asin="B08QF88RBB" text="pot and pan" />, a <AffiliateLink asin="B07XNWZ5FL" text="pot with a lid" />, a <AffiliateLink asin="B07TXY8GKN" text="drinking bottle" />, <AffiliateLink asin="B0936QJYVL" text="cutlery" /> (including chopsticks, a straw), a <AffiliateLink asin="B085RTPZP4" text="pan plate" />, and a <AffiliateLink asin="B01MZZ8BOF" text="water filter" />.
### Fire, Heat & Light
My precious purchase is a portable <AffiliateLink asin="B083TMRWLP" text="camping stove" />. Its small and can cook with wood and alcohol. But I additionally bought a <AffiliateLink asin="B0030DH1T2" text="gas cooker" /> and a few <AffiliateLink asin="B01EX27KHG" text="gas cartridges" /> for easy cooking in case of a blackout for one or two weeks.
I have a pack of <AffiliateLink asin="B091ZN5DNV" text="lighters" /> and <AffiliateLink asin="B07M9HQXC6" text="fire steel" /> to start a fire. I have a flammable <AffiliateLink asin="B007W1OEFW" text="wood block" /> to start a fire when its wet.
A <AffiliateLink asin="B09DSXVL2G" text="pot hanger" /> allows me to hang a pot over an open fire. I bought <AffiliateLink asin="B005NGMJLY" text="solid fuel" /> to survive the first few days before I need to chop wood.
For that, I own a wood saw, a wire saw, and a set of <AffiliateLink asin="B08LN12J1V" text="Tomahawks" />. They are not the best to chop wood but can be used as a hammer, pick, and weapon. I bought later additionally a good <AffiliateLink asin="B00YKUG032" text="ax" />.
I own a <AffiliateLink asin="B00XWPDS40" text="Maglite" /> flashlight and a <AffiliateLink asin="B01CQCJFTG" text="radio" /> with a crank that can produce bright light without any batteries. I have a bag with <AffiliateLink asin="B076DSBQD3" text="100 tea lights" />, to have light during a blackout.
For winter, I own a <AffiliateLink asin="B018OJT5ZY" text="pocket warmer" /> with a pack of hard coal I have since I had to do guard duty at the military for 4 hours straight in winter. A piece can burn and give heat for many hours.
### Shelter
For basic shelter, I bought a <AffiliateLink asin="B07TZHVRZR" text="tarp" /> tent and a <AffiliateLink asin="B0019LW64W" text="Snugpack Special Forces 2 Sleeping Bag" />. I have a waterproof pad and a camping mat. My <AffiliateLink asin="B00D9A4WRU" text="rain poncho" /> can be used as a tarp.
### Clothes
I have two leather pants, <AffiliateLink asin="B07LB5BT7K" text="military camouflage pants" />, a <AffiliateLink asin="B07PJLB9T7" text="T-shirt" />, a <AffiliateLink asin="B01MROMR2Z" text="jacket" />, a <AffiliateLink asin="B07NZ4KJ99" text="jungle hat" />, and two <AffiliateLink asin="B07VD8LSH8" text="camouflage nets" /> to conceal myself. Abdominal protection and <AffiliateLink asin="B01LZMZS9K" text="tactical gloves" /> complete the equipment.
I bought a <AffiliateLink asin="B00D9A4WRU" text="military rain poncho" />, recommended by a Green Beret, which is large enough to be used as a tarp. The 60 meters <AffiliateLink asin="B009R1KAGM" text="Paracord" /> I bought can be used to create a temporary shelter or for climbing.
### Movement & Orientation
I have two bicycles, an older mountain bike with a suspension fork and a new [Cube Hyde Pro](https://archiv.cube.eu/2020/347200) city bike with a belt drive system. Those should be sufficient to leave the city when the energy is not restored after a week. I bought a few physical maps to reach my bug-out location by bike.
When I was a teenager, I bought a <AffiliateLink asin="B08D774ZM8" text="US military compass" /> that I own. Additionally, I have binoculars and a monocular.
### Medicine, Health & Security
This category lists equipment like a first aid kit, emergency blankets, and a whistle. Additionally, a <AffiliateLink asin="B08TVYYL1Q" text="tactical pen" /> and <AffiliateLink asin="B07DVVSN3Q" text="tactical credit card" />, a <AffiliateLink asin="B08B82VK9J" text="20-meter rope with an anchor" />, multiple carabiners, a waterproof tarpaulin, a <AffiliateLink asin="B01BX1BKEO" text="folding spade" />, and 3 packs of toilet paper. I have those in stock since people got crazy with toilet paper in the first lockdown.
I own a <AffiliateLink asin="B01CQCJFTG" text="pocket radio" /> with crank, solar, and batteries. It supports all common frequencies and has built-in LED lights, a warning light, and a siren. It can load batteries via the sun or physical labor. This is useful because batteries are always empty when you need a flashlight. But this one doesnt need batteries; the crank is enough to get it running.
I learned in the documentary that owning a radio is important because without energy all communication breaks down. With no cell phones or landlines, the only way of getting information from emergency teams is a radio or CB radio.
### Tools & Weapons
The description of the second week after a Blackout is unsettling. Police and military will be occupied with protecting nuclear power plants and securing important governmental zones, and hospitals. The rest will be a lawless war zone.
My theory is that people behave and are friendly as long as the crisis has a foreseeable end in sight and nobody is starving. But still, bad people will start looting and plundering. With no possibility to call the police, you will be on your own. Locking yourself into the flat and hoping nobody forces their way in is one option. But what if the food runs out, or you need water or wood?
Thats why everybody should have at least basic skills in martial arts to be able to defend themselves and their family. I started doing martial arts at the age of 12. Karate was my first martial art. I trained it for 8 years. Then I switched to Ninjutsu because its an authentic martial art and not a sport. I learned kicks and punches, levers and throws, and handling weapons. I trained for 12 years in that martial arts before I stopped. Im not the best martial artist, but I know enough to do a lot of damage to an attacker.
Because I always loved knives and swords, I own a few. They are all legal by German law. But besides a pocket knife, you are not allowed to carry those outside your property in Germany. I own a <AffiliateLink asin="B000BT1G6W" text="Ka-Bar combat knife" />, a <AffiliateLink asin="B001PL8Y5G" text="Kukri military-style machete" />, and a few more. The knives that can be carried every day are my [Laguiole en Aubrac](http://www.laguiole-en-aubrac.fr/), a beautiful French knife, my <AffiliateLink asin="B08HVP5CR5" text="Higonokami" />, a Japanese pocket knife, and a [Swiss Army knife](https://www.victorinox.com/).
I own a <AffiliateLink asin="B06XNZ24SG" text="blowpipe" /> and a <AffiliateLink asin="B086XC775Y" text="recurve bow" /> with a few dozen arrows. I always loved shooting with a bow, and Im good with it. I have wood and <AffiliateLink asin="B07XDK5K9W" text="carbon arrows" /> and bought a pack of <AffiliateLink asin="B0987WBTT4" text="hunting arrowheads" />. A <AffiliateLink asin="B07YWT623G" text="quiver" /> and protection gear complete the set.
As I mentioned in the wood and fire section, I bought two <AffiliateLink asin="B08LN12J1V" text="Tomahawks" /> which can be used as weapons.
Since I started Martial Arts, I love Japanese Swords. I got my first blunt sword at Christmas with 12. Today I own a set of [Daishō](https://en.wikipedia.org/wiki/Daish%C5%8D) (_Japanese_ 大小, big-little), which is a _Katana_ and a _Wakizashi_. They are hand-forged from carbon steel and unbelievably sharp. One of these swords can cut a human in half. You can expect me to move around the wasteland like [Michonne](<https://walkingdead.fandom.com/wiki/Michonne_Hawthorne_(TV_Series)>) from <cite>The Walking Dead</cite> in case of mayhem.
A sharpening stone and sword care set are part of my equipment.
## Books
My favorite books on the topic of self-sufficiency are the books of John Seymour. He was a British farmer and author who wrote brilliant, illustrated books like <AffiliateLink asin="0241352460" text="The New Complete Book of Self-Sufficiency" />, <AffiliateLink asin="1409346781" text="New Self-Sufficient Gardener" />, or <AffiliateLink asin="0751327824" text="Forgotten Arts & Crafts" />. These books teach how to be self-sufficient.
### English
<Bookshelf>
<AmazonBook asin="0241352460" />
<AmazonBook asin="1409346781" />
<AmazonBook asin="0751327824" />
</Bookshelf>
### German
<Bookshelf>
<AmazonBook asin="3831015775" />
<AmazonBook asin="3783161452" />
<AmazonBook asin="3783162033" />
</Bookshelf>
Another fantastic book is [The Book](https://www.indiegogo.com/projects/the-book--28/x/26186498/), a project I supported on Indiegogo. Its a 400-page illustrated guide on how to rebuild civilization.
I own a version of <AffiliateLink asin="3813207064" text="Der Reibert" /> from when I was in the military. Its a useful book with thin paper with all information about warfare, survival, navigation, and more.
The Bushcraft series is a series of useful books about survival: <AffiliateLink asin="B00MIMHPII" text="Bushcraft 101" />, <AffiliateLink asin="B01N4SB7FE" text="First Aid" />, <AffiliateLink asin="1440598525" text="Trapping, Gathering, and Cooking in the Wild" />, <AffiliateLink asin="B0108VCQV6" text="Advanced" />, and the <AffiliateLink asin="1507209029" text="Illustrated Visual Guide" />.
### English
<Bookshelf>
<AmazonBook asin="B00MIMHPII" />
<AmazonBook asin="B01N4SB7FE" />
<AmazonBook asin="1440598525" />
<AmazonBook asin="B0108VCQV6" />
<AmazonBook asin="1507209029" />
</Bookshelf>
### German
<Bookshelf>
<AmazonBook asin="3730604406" />
<AmazonBook asin="3730608851" />
<AmazonBook asin="3730608231" />
<AmazonBook asin="3730605046" />
</Bookshelf>
## Conclusion
I plan to bug in for 1 to a maximum of 3 weeks. Should the crisis not be resolved, Ill move to my bug-out location in the countryside. It has options to hunt or keep animals, plant and harvest crops, and vegetables and not starve to death.
I dont idealize or look forward to catastrophe, that is sure. I prefer having my warm flat, good food, Netflix, and the internet.
But I want to be prepared. Civilization is sewn with a thin thread. It doesnt harm to at least stock up food and equipment for the worst case.
---
## Update (June 2022)
This year I came across the concept of a “bug out bag”, first I heard it in a video about a [Digital Bugout Bag](https://youtu.be/qqboMMBOJRE). A bug-out bag is a portable kit to survive an emergency for at least 72 hours.
If something bad happens, you might have a few minutes or an hour to leave your home. That is not enough time to bring all my items out of my cellar and pack. Additionally, if the energy is down, its hard to find your items in total darkness. This means you need to be ready and packed. I created an encrypted, digital bug-out bag on two <AffiliateLink asin="B07G3GMRYF" text="SanDisk Extreme Pro 64 GB microSD" />, holding all my important files.
Next, I bought a waterproof <AffiliateLink asin="B08NF9KH46" text="45L Military Tactical Army Backpack" /> with two additional <AffiliateLink asin="B07DFJWYTK" text="Molle bags" />, a <AffiliateLink asin="B07WSTV47J" text="foldable Molle bag" />, a <AffiliateLink asin="B085XS851K" text="Molle bag for my drinking bottle" />, an <AffiliateLink asin="B07G4BTX5Z" text="outdoor first aid kit" />, and a <AffiliateLink asin="B01KMYCPRO" text="chest bag" />. The bag is huge and holds all items previously stored in my huge wooden box. Additionally, I bought a <AffiliateLink asin="B07F83TB5T" text="bag for my bow" />, that holds bow tendons, arrowheads, hand/arm protection, and other equipment. I have two arrow quivers, one for <AffiliateLink asin="B07YWT623G" text="easy access" /> and one for <AffiliateLink asin="B016JPZ7ES" text="safe transportation" />.
And yes, I bought the <AffiliateLink asin="B085VRYBPH" text="Gadsden flag" /> sticker additionally. Its the flag used by Libertarians around the world. The snake design and the words "Dont Tread On Me" is a warning of vigilance and willingness to act in defense against coercion. 😂
<Figure caption="Bug Out Bag">
<Image src="/assets/images/posts/bug-out-bag.jpg" alt="Bug Out Bag" />
</Figure>
[^mooser2021lp]: Barbara Mooser (2021): _Skandal im Netz: Abgeordneter Huber im Twitter-Gewitter_, https://www.sueddeutsche.de/muenchen/ebersberg/falscher-hashtag-skandal-im-netz-abgeordneter-huber-im-twitter-gewitter-1.5388590.
[^rnd2021rc]: RND (2021): _Oliver Welke in „heute-show“ über Impfverweigerer: „Leider irgendwie asozial“_, https://www.rnd.de/medien/heute-show-oliver-welke-kritisiert-impfverweigerer-leider-irgendwie-asozial-DKSKOLVJSNFZRATN7KT5UH4OZE.html.
[^hendrig2020jc]: Björn Hendrig (2020): _"Corona" und "Volksgesundheit"_, https://www.heise.de/tp/features/Corona-und-Volksgesundheit-4705250.html.
[^link2021kt]: Albert Link (2021): _Bin ich kein Patriot, wenn ich mich nicht impfen lasse?_, https://www.bild.de/politik/inland/politik/kritik-an-spahn-bin-ich-kein-patriot-wenn-ich-mich-nicht-impfen-lasse-77336652.bild.html.
[^nationalpoststaff2021vm]: National Post Staff (2021): _Noam Chomsky says the unvaccinated should just remove themselves from society_, https://nationalpost.com/news/world/noam-chomsky-says-the-unvaccinated-should-just-remove-themselves-from-society.
[^unger2021pf]: Raymond Unger (2021): _Vom Verlust der Freiheit: Klimakrise, Migrationskrise, Coronakrise_.
[^weinstein2021rg]: Bret Weinstein (2021): _How the sun could wipe us out_, https://unherd.com/2021/07/how-the-sun-could-wipe-us-out/.
[^roussinos2021dl]: Aris Roussinos (2021): _This is how civilisations collapse_, https://unherd.com/2021/11/this-is-how-civilisations-collapse/.
[^spiegel2017oz]: Der Spiegel (2017): _G20 in Hamburg: Eine Stadt im Ausnahmezustand_, https://youtu.be/ojToYs6nCnk.
[^bundesheer2021dn]: Österreichs Bundesheer (2021): _Blackout - ein weiträumiger, eventuell gar europaweiter Stromausfall_, https://youtu.be/mHWcOQ_7Y-U.
[^hanslik2018wu]: Christoph Hanslik, Matthias Dechant, Andreas Wetz, and Paul Poet (2018): _Ist Österreich auf einen Blackout vorbereitet?_, https://www.addendum.org/blackout/.
[^poet2019ss]: Paul Poet (2019): _Was passiert, wenn der Strom wirklich länger ausfällt_, https://youtu.be/UQR9xXNKojw.

View File

@@ -0,0 +1,120 @@
---
title: If— Guidance for a Virtuous, Stoic Life
slug: interpretation-if
date: 2021-12-13T18:00:00+01:00
author: Stefan Imhoff
description: A modern interpretation of Rudyard Kiplings great poem.
tags: ["poetry", "featured"]
series: kipling-poems
---
After my last poem interpretation for [The Gods of the Copybook Headings](/interpretation-the-gods-of-the-copybook-headings/), I saw a recommendation for another poem by _Rudyard Kipling_: **If—**. It is a shorter poem, but each sentence has a profound meaning. Kipling must have had an in-depth understanding of human nature.
As I described in my article [Learning Poems](/learning-poems/) in August, I wanted to learn this poem and I did. It became my serenity prayer for these times.
## Historical Background
The poem was written in 1895 and published in 1910 in <cite>Brother Square Toes</cite>. It is considered to be a prime example of Victorian Stoicism. Kipling wrote this poem for his son as a guideline to become a man.
## The Poem
The poem consists of four stanzas of equal length with a rhyme scheme of ABABCDCD (except the first stanza with AAAABCBC). It summarizes virtues and moral values to follow for a good life and a good character. He tells his son how to deal with loss and failure.
Each stanza consists of multiple sentences starting with <q>If</q> the last stanza resolves what will happen if the reader follows these virtues.
### Stanza 1
> If you can keep your head when all about you \
> Are losing theirs and blaming it on you, \
> If you can trust yourself when all men doubt you, \
> But make allowance for their doubting too; \
> If you can wait and not be tired by waiting, \
> Or being lied about, dont deal in lies, \
> Or being hated, dont give way to hating, \
> And yet dont look too good, nor talk too wise:
The first sentence describes a virtue that a few people possess: _Tranquility_. Im puzzled and shocked by how easy it was to scare at least a third of the population to give up freedom and liberty for perceived protection against a respiratory virus. And even though it has a <abbr title="Infection Fatality Rate">IFR</abbr> between 0.05 and 0.2 percent and mostly affects the old and overweight.
We are caught in an ever-worsening vicious circle of hate, agitation, and exclusion. This scapegoating against a minority (“the unvaccinated”) is a well-known behavior that brought us previously the inquisition, witch trials, lynch mobs, and darker behaviors we promised to never repeat. It is a result of “externalized fear,” as Prof. Dr. _Ulrike Guerot_ explains in the documentary “Eine Andere Freiheit” (Another freedom).[^marchart2021eq]
The next sentence of the poem deals with self-confidence. It is a reminder, that you dont need the approval of others, but should trust in your reason and judgment. _J. Michael Straczynski_ wrote once, <q>it doesnt matter what the press says. It doesnt matter what the politicians or the mobs say. It doesnt matter if the whole country decides that something wrong is something right. […] When the mob and the press and the whole world tell you to move. Your job is to plant yourself like a tree beside the river of truth and tell the whole world: <q><strong>No, you move.</strong></q></q>
Everybody has the responsibility to decide for themselves what is right and what is wrong in a free society. This faculty cannot be passed on to others. A rule by edict or an “expert-class” that cant be questioned should have been something we left behind us with the Enlightenment, but we didnt. The second part of the sentence is a reminder to allow other people to come to a different conclusion and try to find a compromise.
Patience is another important Stoic virtue. Things need time and cant be accelerated.
The next part covers lies and hate and how to deal with them. Its tremendously hard to not answer lies with lies and hate with hate. The Corona crisis is a prime example. Ive never seen as many lies and destructive hatred as now in my whole life. It takes character to not return the hate.
The last sentence of the first stanza is a warning against vanity and arrogance, a reminder to always stay humble.
### Stanza 2
> If you can dream—and not make dreams your master; \
> If you can think—and not make thoughts your aim; \
> If you can meet with Triumph and Disaster \
> And treat those two impostors just the same; \
> If you can bear to hear the truth youve spoken \
> Twisted by knaves to make a trap for fools, \
> Or watch the things you gave your life to, broken, \
> And stoop and build em up with worn-out tools:
To be able to dream up a better future is an essential virtue, but following a “dream” can become an end in itself. It is significant to not be obsessed with them and to re-evaluate and discard the ones that are not useful anymore.
Reason is one of the “Four Virtues” of the Stoics. Thinking is important for everything. But here, again, is the reminder to make sure it doesnt become an end in itself.
The next sentence is a reminder to keep serenity. The Stoics reputation is to be calm, no matter if good or bad things happen. The works of _Epictetus_, _Marcus Aurelius_, and _Seneca_ are filled with examples to remind them that all fame and suffering are impermanent.
_Marcus Aurelius_ reminded himself, that <q>this is a dead fish. A dead bird. A dead pig. Or that this noble vintage is grape juice, and the purple robes are sheep wool dyed with shellfish blood. Or making love—something rubbing against your penis, a brief seizure, and a little cloudy liquid. Perceptions like that—latching onto things and piercing through them, so we see what they really are.</q>[^aurelius2002bo]
The third sentence is a reminder, that youll need to be able to endure wickedness. Other people will take your words and misrepresent your intent deliberately, take you out of context, or misquote you. And fools will fall for it, and you cant do a lot about it. It is all the more important to speak carefully and have sources that support your case.
The last sentence of the second stanza is about the maxim of _Amor Fati_ (love of ones fate). It is <q>[to treat] each and every moment—no matter how challenging—as something to be embraced, not avoided. To not only be okay with it, but love it and be better for it. So, that, like oxygen to a fire, obstacles, and adversity become fuel for your potential.</q>[^holiday2017ho]
We will inevitably suffer defeats, injuries, and suffering. But again and again, we should bend down and repair as much damage as possible. The Japanese art of _Kintsugi_ (金継ぎ) is an example of how to deal with damages. The shards of a broken vessel are reassembled, and the cracks get connected with gold.[^puschak2014df][^schooloflife2016sk]
### Stanza 3
> If you can make one heap of all your winnings \
> And risk it on one turn of pitch-and-toss, \
> And lose, and start again at your beginnings \
> And never breathe a word about your loss; \
> If you can force your heart and nerve and sinew \
> To serve your turn long after they are gone, \
> And so hold on when there is nothing in you \
> Except the Will which says to them: Hold on!
Sometimes in life, you need to risk something to change your life. As philosopher _Gunnar Kaiser_ recently said in his video essay “Sprung ins Ungewisse” (Jump into the unknown), <q>we know we have to get out of here, but we dont know where. And thats why we persist. Thats why we stay where we are. Unhappy, unable to break out. […] We dont dare to jump. […] People only achieve significant things in a leap. […] At some point, you have to take the plunge into the unknown. […] Even if we dont know where we are going to hit, we sometimes have to jump, sometimes we have to let go to not perish in a standstill. A leap into freedom is always a leap into the unknown. But at a time when the certainty of repression seems to be overwhelming, we must learn to fly. What is supposed to go wrong?</q>[^kaiser2021ze]
We can always fail. However, then we start again, and we dont complain.
The last part of the third stanza is a reminder that we should live not only for ourselves but for a cause. As long as we live, we can force ourselves to aim our motivation, thoughts, and body at a target that will live on when we are gone. This will not only improve the world, but it is additionally an anchor for ourselves, a compass needle that shows us the direction when we are lost at sea and all our strength has been used up. We need to keep at least the will that forces us to push forward.
### Stanza 4
> If you can talk with crowds and keep your virtue, \
> Or walk with Kings—nor lose the common touch, \
> If neither foes nor loving friends can hurt you, \
> If all men count with you, but none too much; \
> If you can fill the unforgiving minute \
> With sixty seconds worth of distance run, \
> Yours is the Earth and everything thats in it, \
> And—which is more—youll be a Man, my son!
It is hard to keep our virtue when we are around plenty of other people because few people are in pursuit of virtue. With whom we spend our time, will be who we become. _Marcus Aurelius_ reminded himself in his second chapter on how hard it is to keep our virtue: <q>When you wake up in the morning, tell yourself: The people I deal with today will be meddling, ungrateful, arrogant, dishonest, jealous, and surly. They are like this because they cant tell good from evil.</q>[^aurelius2002bo]
As equally hard is it not to become arrogant and aloof if we are around power. The <cite>Meditations</cite> of _Marcus Aurelius_ are filled with reminders to himself to not forget this. As the most powerful man on earth, he could get everything he wanted, and kill whomever he wanted, but he did not. He is one of the rare exceptions to the wisdom that “power corrupts.”
The Stoics dont take insults personally because it is outside our control, what others think of us. We have only control over how we react. Marcus Aurelius continued <q>but I have seen the beauty of good, and the ugliness of evil, and have recognized that the wrongdoer has a nature related to my own—not of the same blood or birth, but the same mind, and possessing a share of the divine. And so none of them can hurt me. No one can implicate me in ugliness. Nor can I feel angry at my relative, or hate him. We were born to work together like feet, hands, and eyes, like the two rows of teeth, upper and lower. To obstruct each other is unnatural. To feel anger at someone, to turn your back on him: these are obstructions.</q>[^aurelius2002bo]
The second part of the sentence is speaking about being reliable to others, but not to the point where they depend on you too much.
The third sentence of the last stanza is a reminder to use the day (_Carpe Diem_) because we can meet death at any time (_Memento Mori_). Even the wasted minute waiting in line or in a traffic jam can be used and filled with something useful. Be it the reflection of the day, taking a few breaths, or acquiring of new knowledge and skills.
Finally, Kipling concludes the listing of virtues. When we follow and train these virtues, we will be able to handle everything the world is throwing at us. Kipling directed this poem to his son to show him the way to be a future leader and an example of a good man.
[^marchart2021eq]: Schutzfilm (2021): _Eine Andere Freiheit_, https://www.eine-andere-freiheit.com/.
[^aurelius2002bo]: Marcus Aurelius and Gregory Hays (2002): _Meditations_, Modern Library.
[^holiday2017ho]: Ryan Holiday (2017): _Amor Fati: The Formula for Human Greatness_, https://dailystoic.com/amor-fati-love-of-fate/.
[^puschak2014df]: Evan Puschak (2014): _Kintsugi: The Art of Embracing Damage_, https://youtu.be/lT55_u8URU0.
[^schooloflife2016sk]: The School of Life (2016): _Eastern Philosophy Kintsugi_, https://youtu.be/EBUTQkaSSTY.
[^kaiser2021ze]: Gunnar Kaiser (2021): _Sprung ins Ungewisse_, https://youtu.be/f4WfDY9Gals.

View File

@@ -0,0 +1,304 @@
---
title: "The Gods of the Copybook Headings: A Warning Against Loss of Virtue, Morality, and Reason"
slug: interpretation-the-gods-of-the-copybook-headings
date: 2021-06-12T10:00:00+02:00
author: Stefan Imhoff
description: A modern interpretation of Rudyard Kiplings great poem.
tags: ["poetry", "politics", "philosophy", "featured"]
series: kipling-poems
---
<YouTubeVideo id="37ARLInjLVE" />
A few months ago, I stumbled over the poem <cite>The Gods of the Copybook Headings</cite> by _Rudyard Kipling_. I had never heard of the poem before, but the [visual interpretation of the poem](https://www.youtube.com/watch?v=37ARLInjLVE) by filmmaker and author [Lauren Southern](https://laurensouthern.net/) put me under a spell. I watched it over and over again and can recite the poem from my memory.
As a reasonable person with political center-left libertarian views, Im utterly frustrated with the ongoing global movement against reason that accelerated over the last 5 years. The poem echoes this feeling.
## Historical Background
The poem was released at a deeply confusing and worrying time. The First World War had killed 17 Million people—Kiplings son one of them—and the Spanish flu killed an additional 59-100 Million people between 1918-1920.
Disillusioned from the war, Pacifism became popular, Patriotism unpopular, and religion and morality suffered a major setback.
The Russian Revolution had removed the Tsar in 1917 and many people looked at Marxist socialism as the solution to all humanitys problems.
Kipling was not happy with the political developments. He feared that giving up morals and values would lead to people not trusting each other and result in the destruction of the civilization.[^spiller2000]
The poem is his warning.
## Copybook Headings
<Figure
caption="A page from a 19th-century copybook, in which the printed headings have been copied. The homily is paraphrased from a 17th-century sermon of Isaac Barrow, Against Detraction — “Good nature, like a bee, collects honey from every herb. Ill nature, like a spider, sucks poison from the flowers.”"
size="wide"
>
<Image
src="/assets/images/posts/copybook-headings.jpg"
alt="A page from a 19th-century copybook"
/>
</Figure>
Copybook Headings were lined pages with short wisdom, aphorisms, or verses at the top, used to practice cursive writing. The student was challenged to repeat the sentence a few dozen times on the page and by doing not only learned the handwriting but took in the wisdom and morals transmitted from one generation to another.
## The Poem
The poem was released in London on 26th October 1919 in the _Sunday Pictorial_. In 1920, it was released in the USA under the title <cite>The Gods of the Copybook Margins</cite>.
It is a poem with ten stanzas, each with four lines (Quatrains) with a rhyme scheme of AABB CCDD.
The poem is a conservative poem. Its basic message is that everything progressive and new isnt new at all. It was tried before and it failed. It is a call to return to reason, values, and objective truth. Human progress is dependent on ideas, but few of them will survive the test through the _Gods_, the rest will be destroyed.
### Stanza 1
> As I pass through my incarnations in every age and race, \
> I make my proper prostrations to the Gods of the Market-Place. \
> Peering through reverent fingers I watch them flourish and fall, \
> And the Gods of the Copybook Headings, I notice, outlast them all.
The poet travels metaphorically through different times and as different people, and bows to the _Gods of the Marketplace_.
The _Gods of the Marketplace_, are those <q>temporary fads like Dutch tulip bulbs, dot-com stocks, mortgage-backed securities, and […] carbon credits,</q>[^levinson2011kv] writes _William A. Levinson_. These gods are promises and ideas, social progress, and delusory ideologies that despise the truth. The 20th century had no shortage of these ideas, even though Kipling didnt know about the harm that Socialism, Fascism, or Nazi ideology would unleash on the world.
And the new century has, unfortunately, no shortage of bad ideas: The resurrection of Postmodernism and [Neo-Marxism](https://newdiscourses.com/tftw-neo-marxism/), [Identity Politics](https://newdiscourses.com/tftw-identity-politics/), [Critical Theory](https://newdiscourses.com/tftw-critical-theory/), victimhood culture, the war on drugs, boys, masculinity, the nuclear family, merit, and market-based capitalism, or growth without limits, to name a few.
But all these bad ideas will fail and crumble and the _Gods of the Copybook Headings_ will prevail because they are <q>the nonpartisan, scientific, and implacable laws of economics and human behavior.</q>[^levinson2011kv]
### Stanza 2
> We were living in trees when they met us. They showed us each in turn \
> That Water would certainly wet us, as Fire would certainly burn: \
> But we found them lacking in Uplift, Vision and Breadth of Mind, \
> So we left them to teach the Gorillas while we followed the March of Mankind.
The poet tells the story that these laws were there from the beginning. Early humans learned from the errors others made: Fire will burn you, poisonous berries will make you sick, and a predator will eat you. This common knowledge became stories and turned into myths over time.[^peterson2017yx]
But new gods arrived that looked more promising: progress, money, wealth, or comfort. Humanity forgot the common knowledge and wisdom and moved on.
Not every progress is good for the individual. While agriculture led to an explosion in the growth of population, it resulted in declined health of humans and higher mother and child mortality. Less food variation resulted in malnutrition. Dense living conditions with other humans and animals, poor sewage, and waste conditions resulted in declining health. The bones and skulls of those humans were much smaller than their hunter-gatherer ancestors.[^curnoe2017dn] We can see this even today, where most people need their wisdom tooths removed because they dont fit in the jaw because we dont chew hard things anymore.
### Stanza 3
> We moved as the Spirit listed. They never altered their pace, \
> Being neither cloud nor wind-borne like the Gods of the Market Place, \
> But they always caught up with our progress, and presently word would come \
> That a tribe had been wiped off its icefield, or the lights had gone out in Rome.
The _Gods of the Marketplace_ end civilizations that ignore common knowledge and objective truth.
Where the hunter-gatherer knew <q>if I hunt two monkeys today, I have to walk twice as long tomorrow,</q> the humans who follow the ideas of the Marketplace dont learn. Again and again, we can see them failing.
Be it Rome that fell through decadence and politics unable to defend the Empire against invading barbarians, or the Maya that created cities with millions of inhabitants, artificial soil, and streets but destroyed themselves with endless war and unrestrained extraction of natural resources.
### Stanza 4
> With the Hopes that our World is built on they were utterly out of touch. \
> They denied that the Moon was Stilton; they denied she was even Dutch. \
> They denied that Wishes were Horses; they denied that a Pig had Wings. \
> So we worshipped the Gods of the Market Who promised these beautiful things.
Denial of objective truth is one of the signs of a societys downfall.
We live in a time filled with lies that deny objective truth and create pseudo-realities that can eventually lead to Totalitarianism.[^lindsay2020aa] If enough people believe a lie, societies become unable to solve their problems and fail.
Large parts of the world honesty believe that Black people are hunted by racist police in the streets. Instead of researching the topic to get to the truth, the self-proclaimed social justice warriors replace their social media profile images with black images to show solidarity. This doesnt help to solve the structural problems of Black communities but gives a quick way of feeling self-righteous and morally superior.
But when investigated, the stories begin to crumble quickly. The “Black Lives Matter” organization was founded on a lie repeating the mantra <q>Hands up, dont shoot</q> of the _Michael Brown_ case.[^elder2020aa] More worrying is that the organization was founded by confessing Marxists. The founders have ties to the radical-left terrorist organization “The Weather Underground” which bombed buildings like _The Capitol_ and _Pentagon_ in the 60s and 70s.[^kohls2020aa]
Until recently, they stated one of their goals was the “destruction of the nuclear family.” The organization is used every four years to help the Democrats win elections. It is used to transfer billions of donations through dubious channels to political agitators, the money will likely never reach Black communities. Even the mother of _Breonna Taylor_, a victim of a police shooting, called the organization a fraud.[^byrne2021pl] The co-founder, however, grew exceptionally rich for a Marxist since she started the organization.[^vincent2021en]
While they claim Blacks are hunted in the streets by racist cops, the number of shot unarmed Blacks for 2019 was between 13-27 (depending on the database), and the numbers for Whites are higher.[^mccaffree2021li] Taking the crime and murder rate to the proportion of the US population these numbers are explained.
Though each shooting is tragic, its far from being a major problem, considering that the police conduct over 300 million checks each year.
The big elephant in the room, on the other hand, is regularly ignored by everybody: **93%** of Black murder victims are murdered by Blacks.[^sherman2013rw]
Murder is the leading cause of death for Black males between 15-34.[^qiu2014mo] The absence of a father in the home is one of the reasons for the high crime rate in Black communities. **72%** of Black children (in some cities more than 80%) are born out of wedlock.[^jacobson2013cp] The Father Absence Crisis is _the_ major problem of the Black Community.[^steward2013aa]
The riots and looting of 2020 and the defunding or abolishing of the police in cities in the USA resulted in massively increasing murder rates (Portland reported a 2,000% surge)[^faria2021qg] and destroyed communities for decades. As _Thomas Sowell_ noted, many black ghettos are still desolated decades after the race riots of the 60s.[^sowell2013aa]
Ironically, its mostly white progressives who want to abolish the police in Black neighborhoods, **81%** of Blacks want the same level or more of policing.[^gillespie2020dv]
Another worrying pseudo-reality is the denial of biological sex. Allowing the most radical activists to determine the discourse can lead to bad outcomes.
Womens sports are in the progress of being eradicated by biological males competing with biological females and dwarfing their records everywhere. Trans MMA fighter _Fallon Fox_ broke recently the skull of a female opponent twice to win a match.[^emmons2020ln]
Aggressive male criminals can self-identify in California as female and are transferred to womens prisons where they are put together with biological women.[^emmons2020en] Soon womens shelters might be forced to take in biological males, that self-identify as female.[^desanctis2021db]
Gender dysphoria in Swedish teen girls is up 1,500 percent since 2008.[^dms2020ck] Teenage girls are insecure and prone to social peer pressure, which explains the sky-rocking numbers with whole groups of girls coming out as ”Trans” or “Non-Binary.” In some countries, its possible to use puberty blockers or even sex reassignment surgery without the consent of the parents. This results in irreversible damage that cant be reversed should the child change their mind later.[^robbins2018sc][^jackson2020cv]
Radical activists try to compel speech and intimidate others to recognize the 70+ made-up gender pronouns, while it is perfectly possible to respect any transgender with the existing two pronouns.
The denial of objective truth shows itself in the invention of words like <q>birthing person</q> (mother), <q>chest feeding</q> (breastfeeding), or in statements like <q>men can menstruate and give birth</q> or <q>a trans-woman is a woman</q> which are objectively false.
Attacks on scientists of biology or evolution biology increased in the last few years. Multiple scientists retracted their papers out of fear of being canceled. _Naval Ravikant_ said in a recent interview: <q>Biology will suffer the most. Synthetic biology, for example, a lot of this will end up in China because you wont be able to map facts and reality and actions together.</q>[^rogan2019ul]
The denial of objective truth will not only endanger women and children but drive all science of biology into foreign countries, resulting in a huge scientific knowledge drain.
### Stanza 5
> When the Cambrian measures were forming, They promised perpetual peace. \
> They swore, if we gave them our weapons, that the wars of the tribes would cease. \
> But when we disarmed They sold us and delivered us bound to our foe, \
> And the Gods of the Copybook Headings said: “Stick to the Devil you know.”
The _Cambrian_ is a reference to the Welsh _Lloyd George_, prime minister during World War I. He negotiated the peace treaty in Versailles in 1919. The disarmament of the Germans was negotiated but at the same time the disarmament of the winners. The peace didnt hold for long, and Germany rearmed in secrecy.
This stanza is a warning to believe nobody who promises lasting peace. A country needs to ensure its always able to defend its values and borders (if needed with violence) against aggressors, or it will cease to exist.
If you dont, you will get conditions like France, where 226 people were killed by Islamic terrorists between 2011 and 2021.[^ap2020wm] The parallel societies grew so dangerous in the past years, that the police don't go anymore into some city districts. 20 retired generals and 1,000 soldiers warned in April 2021 in an open letter,[^bbcnews2021eu] followed by another warning, signed by 130,000 people, that a civil war might soon break out.[^bbcnews2021uf]
It is important to be able to defend oneself because <q>a harmless man is not a good man. A good man is a very, very dangerous man, who has that under voluntary control,</q> as _Jordan B. Peterson_ stated.
One can become worried about the security of Western values and way of life when reading that the US military ends gender-neutral fitness tests for soldiers to be more inclusive[^ffn2021ru] or starts implementing woke ideology[^nightingale2021ne] while Chinese soldiers train in harsh weather and the government works on programs genetically enhancing their soldiers.[^dilanian2020je] A recent joke goes like this: <q>When the Chinese soldiers invade, the US soldiers will ask them what their pronouns are.</q>
### Stanza 6
> On the first Feminian Sandstones we were promised the Fuller Life \
> (Which started by loving our neighbour and ended by loving his wife) \
> Till our women had no more children and the men lost reason and faith, \
> And the Gods of the Copybook Headings said: “The Wages of Sin is Death.”
The _Feminian Sandstones_ is a reference to the emancipation of women. The stanza is additionally a reference to relaxed sexual morality.
The results of the sexual revolution and women in the workforce are positive for the individual. But the plunging birthrates in Western countries are a serious threat to these countries. If the fertility rate falls below the replacement level, a population is unable to recover and will die out. Problems arise much earlier with an aging population because social security systems, health care, and retirement plans stop working.
The stable nuclear family is declining, with one-person households increasing dramatically. Senseless One-Night-Stands, pornography, and girls making their income as prostitutes on OnlyFans are a side effect of constantly lowered sexual morality. Finding a partner is reduced to dating apps, where people get “swiped” by their looks.
Children are hypersexualized and objectified in TV shows like “Cuties” or “AJ, and the Queens”, indoctrinated into the idea that sex is a “spectrum”, that women and men are biologically the same, and are exposed to porn long before they reach puberty.
The rate of STDs in the USA hit a record high for the 6th year in a row in 2019, with 2.5 million Americans having either chlamydia, gonorrhea, or syphilis infections. Less than 20 years ago, these infections were at a historic low or close to elimination.[^rt2021kd]
Secularism is on the rise and people search for meaning in substitute gods like money, fame, identity politics, or social justice.
As _Martin S. Spiller_ writes: <q>Without sexual morality, the traditional social contract based on trust between the sexes would vanish, and the people would eventually abandon marriage. Without marriage, the family, the most basic unit of any civilization, would wither and die.</q>[^spiller2000]
### Stanza 7
> In the Carboniferous Epoch we were promised abundance for all, \
> By robbing selected Peter to pay for collective Paul; \
> But, though we had plenty of money, there was nothing our money could buy, \
> And the Gods of the Copybook Headings said: “If you dont work you die.”
This stanza is a reference to lending money to pay off debt or handing out free money, which is the common way in many countries these days to deal with problems. This will not work for much longer, inflation (or even hyperinflation) will be the result. Rich people move their money into cryptocurrencies and other assets to prevent the devaluation of their assets.
As _Elon Musk_ put it in harsh words on _Joe Rogans_ Podcast: <q>Now let me just break it to you, the fools out there. If you dont make stuff, theres no stuff.</q>[^rogan1470]
Socialism is again high in favor in Western countries, particularly among the educated, bored, upper-middle-class that live every day a comfortable life through the means of capitalist production while at the same time rail against it.
They paint capitalism as the devil even though it cut extreme poverty (less than $1.90 per day) in half between 1990 and 2010.[^murphy2018ez][^mitchell2018qu][^rosling2015lc]
It seems we never learn from our past. More and more people want to destroy the current way of life. Everywhere, people talk about a restart of “how we live” or a “Great Reset.” These utopian ideas always end in bloodshed and millions of dead people because you cant create a society on the drawing board. <q>Communism doesnt know how</q>[^lindsay2021ut] which is why it fails each time. 100 million dead people should have been enough to learn that it wont work, but it seems like it doesnt.
### Stanza 8
> Then the Gods of the Market tumbled, and their smooth-tongued wizards withdrew, \
> And the hearts of the meanest were humbled and began to believe it was true \
> That All is not Gold that Glitters, and Two and Two make Four— \
> And the Gods of the Copybook Headings limped up to explain it once more.
When an idea or dogma is failing, and it becomes obvious how bad it was, the liars either double down and try to keep the lie alive for as long as possible, or they disappear.
We can see this now regarding the Corona crisis. The crisis will not be remembered for its virus because the death rate is only around 0.13%.[^margolis2020aa] It will be remembered, because of how incompetent, corrupt, and authoritarian our political leaders, news media, the science community, and Big Tech reacted to the crisis.
I remember how everybody rallied around ventilators in the spring of 2020. Buying ventilators was the most important political topic for weeks. Sick people were put on ventilators early on. The image of ventilators was used as a tactic to intimidate people into social distancing and masking. A few doctors knew all along what is now known: Putting people on ventilators kills them in **50%** of the cases (regardless of their condition).[^thompson2020wr] There are much better methods without ventilators that result in a drastically reduced death rate for intensive care patients. But the specialists were silenced, censored, or removed from social media. A hundred thousand died needlessly of wrong medical care. Politicians moved sick elderly back into senior homes everywhere, where they infected each other and died.[^posteditorialboard2021kc] These were not COVID-19 deaths, but deaths caused by incompetent politicians.
Masks and lockdowns were presented as the one perfect solution to prevent infections, but the data after a year shows countries without mask mandates or lockdowns had similar death rates.[^mcmaken2020qu]
Drugs such as Hydroxychloroquine and Ivermectin were (and still are) rejected by large parts of the medical community, even though the doctors could see the results of their effectiveness in their patients. Ivermectin has proven itself highly effective in multiple meta-studies as a drug for prevention, treatment, and possibly even to treat Post-COVID or vaccine side effects.[^weinstein2021zr]
The further the time will progress, the more scandals around COVID-19 will come to light. Sharing the “right-wing” _Lab Leak Hypothesis_ one year ago could have gotten a person deplatformed, and now its a broadly accepted hypothesis. Big Tech and the media prevented this story from discussing. Now they retroactively stealth edit old articles, push forward all kinds of reasons why they got it _so_ wrong, and blame others.[^hlusa2021ag][^watson2021pa]
### Stanza 9
> As it will be in the future, it was at the birth of Man— \
> There are only four things certain since Social Progress began:— \
> That the Dog returns to his Vomit and the Sow returns to her Mire, \
> And the burnt Fools bandaged finger goes wabbling back to the Fire;
This stanza is a depressing realization that humanity will not learn from its mistakes. We will repeat them again, and again, and again.
Bad ideas like Socialism, Communism, or Fascism are kept alive or revived. Its 2021, and we have again concentration camps in China and the world pretends nothing happened because we dont want to risk our business opportunities with China.
Racist, sexists, anti-scientific, anti-reason, postmodernist ideas like <q>Critical Theory</q> are pushed into the education system and companies and destroy these institutions[^nayna2019qz] unless brave people stand up against these toxic ideas.[^pachal2020gj][^monroe2021im]
People get segregated by race, and have to disavow their “whiteness” or acknowledge their “privilege.” People of color that doesn't subscribe to these ideas are labeled “race traitor”, “Uncle Tom”, “or not being authentically (race/sex/sexual orientation).”
Identity politics divide people into smaller and smaller sub-categories that fight each other. Discourse is shut down with compelled speech codes, trigger warnings, or safe spaces. People are bullied into compliance, harassed, doxed, or fired from their jobs for disagreeing.
And many progressives dont understand the ideas behind these movements that look appealing. We wont learn unless we burn our fingers again.
### Stanza 10
> And that after this is accomplished, and the brave new world begins \
> When all men are paid for existing and no man must pay for his sins, \
> As surely as Water will wet us, as surely as Fire will burn, \
> The Gods of the Copybook Headings with terror and slaughter return!
The last stanza is the 4th thing that is certain from the previous stanza. It is a closing loop to previous stanzas. The _brave new world_ is a reference to Shakespeares _The Tempest_, Act V. scene 1 line 183. The title for Huxleys _Brave New World_ is derived from Shakespeares play. The utopian novel has numerous references to our times.
The conservative commentator _Michael Knowles_ was recently asked by _Chris Williamson_ on his podcast if we live currently more in _Brave New World_ or _1984_. He answered that we live 10% in _1984_ and 90% in _Brave New World_.[^williamson2021uf]
Reaching for Utopia (Greek “not a place”) always results in a Dystopia (Greek “bad place”). Utopian ideologies are **psychopathic** and arise from the inability to live in the reality.[^lindsay2020aa]
There will be no war, that ends all wars, no “Great Reset”, no restart without getting rid of millions of people that dont subscribe to the idea. <q>All zero-point ideologies were devastating and always resulted in totalitarian systems or totalitarian thinking,</q> stated Prof. _Nobert Bolz_ in a recent podcast.[^muller-ullrich2021bu] He fears that the Western world is again in a situation where serious intellectuals are thinking about whether we could go back to zero, construct a new form of society and economy, a new human nature.
The pandemic or climate crisis offers convenient reasons to justify authoritarian or totalitarian ideas for “the greater good.” The German _Supreme Court_ hinted that massive personal restrictions might be justified to reach the climate goals.[^escritt2021ap]
A recent survey asked how many Germans would be willing to pay every month to stop climate change. If I remember correctly, the number was below €20 per month. Even risking disillusioning large numbers of my readers, every German (including children and senior citizens) would have to pay between **€300** and **€600** net every month **for the next 30 years** to reach the climate goals of the Paris Agreement.[^unger2021pf] This would reduce Germanys global CO₂ emissions from **2%** to **1%**, which is as many savings as China generates _additionally_ each year.[^unger2021pf] It will not only destroy the countrys competitiveness, and make the energy supply unreliable, but have no measurable effect. Neither will stop eating meat. But if the self-righteous voters demand measures from the politicians, that will be what we are given.
Be prepared to have fewer (or no) flights in the future, lose your car, and be restricted in your movement and freedoms. If you think the COVID-19 restrictions were bad, you have no clue what is coming.
All these endeavors ignore human nature, reason, personal liberty, and self-determination. To achieve a reset one would have to suppress, intimidate, incarcerate, reeducate, or even kill millions of people. I dont think any sane person would like to live in a totalitarian, digitalized surveillance state like China is currently building. We have to call out and shame people that push for these ideas before it is too late.
Reality will **always** win, _eventually_. But to what price? A lie doesnt become true because everybody wants it to be true. _The Gods of the Copybook Headings_ cant be ignored, without paying a high price.
[^levinson2011kv]: William A. Levinson (2011): [The Revenge of the Gods of the Copybook Headings](https://www.americanthinker.com/articles/2011/08/the_revenge_of_the_gods_of_the_copybook_headings.html)
[^peterson2017yx]: Jordan B. Peterson (2017): [2017 Maps of Meaning: The Architecture of Belief (University of Toronto)](https://www.youtube.com/playlist?list=PL22J3VaeABQAT-0aSPq-OKOpQlHyR4k5h)
[^curnoe2017dn]: Darren Curnoe (2017): [Was agriculture the greatest blunder in human history?](https://theconversation.com/was-agriculture-the-greatest-blunder-in-human-history-85898)
[^lindsay2020aa]: James Lindsay (2020): [Psychopathy and the Origins of Totalitarianism](https://newdiscourses.com/2020/12/psychopathy-origins-totalitarianism/)
[^emmons2020ln]: Libby Emmons (2020): [Biological male who broke a womans skull named “bravest athlete in history”](https://thepostmillennial.com/biological-male-who-broke-a-womans-skull-named-bravest-athlete-in-history/)
[^spiller2000]: Martin S. Spiller (2000): [Joseph Rudyard Kipling](http://www.northofseveycorners.com/write/copybook_heading2.htm)
[^emmons2020en]: Libby Emmons (2020): [Gov. Newsom signs bill allowing male inmates who identify as women to be housed in womens prisons in California](https://thepostmillennial.com/gov-newsom-signs-bill-allow-male-inmates-womens-prisons-california/)
[^desanctis2021db]: Alexandra Desanctis (2021): [The Washington Post Reports on Biden Policy to Let Men into Womens Shelters](https://www.nationalreview.com/corner/the-washington-post-reports-on-biden-policy-to-let-men-into-womens-shelters/)
[^dms2020ck]: Decision Magazine Staff (2020): [Gender Dysphoria Cases Rise 1,500% Among Teenage Girls in Sweden](https://decisionmagazine.com/gender-dysphoria-cases-rise-1500-among-teenage-girls-in-sweden/)
[^robbins2018sc]: Jane Robbins (2018): [Why Puberty Blockers Are A Clear Danger To Childrens Health](https://thefederalist.com/2018/12/14/puberty-blockers-clear-danger-childrens-health/)
[^jackson2020cv]: Mary Jackson (2020): [Study: Effects of puberty-blockers can last a lifetime](https://wng.org/roundups/study-effects-of-puberty-blockers-can-last-a-lifetime-1617220389)
[^rogan2019ul]: Joe Rogan & Naval Ravikant (2019): [Joe Rogan Experience #1309 Naval Ravikant](https://www.youtube.com/watch?v=3qHkcs3kG44)
[^elder2020aa]: Larry Elder (2020): [The Ferguson Lie](https://www.youtube.com/watch?v=XkoGZIYvWm0)
[^kohls2020aa]: Christopher Patrick Kohls (2020): [The Secret Origins of Black Lives Matter](https://www.youtube.com/watch?v=Sq1m_PJtu5o)
[^vincent2021en]: Isabel Vincent (2021): [Marxist BLM leader buys $1.4 million home in ritzy LA enclave](https://nypost.com/2021/04/10/marxist-blm-leader-buys-1-4-million-home-in-ritzy-la-enclave/)
[^byrne2021pl]: Kerry J. Byrne (2021): [Breonna Taylors mom slams BLM chapter in Louisville as a fraud](https://nypost.com/2021/04/17/breonna-taylors-mom-slams-blm-louisville-as-a-fraud/)
[^mccaffree2021li]: Kevin McCaffree & Anondah Saide (2021): [How Informed are Americans about Race and Policing?](https://www.skeptic.com/research-center/reports/Research-Report-CUPES-007.pdf)
[^sherman2013rw]: Amy Sherman (2013): [In the 513 days between Trayvon dying, and todays verdict, 11,106 African-Americans have been murdered by other African-Americans.](https://www.politifact.com/factchecks/2013/jul/17/tweets/look-statistic-blacks-and-murder/)
[^qiu2014mo]: Linda Qiu (2014): [The No. 1 cause of death for African-American males 15-34 is murder](https://www.politifact.com/factchecks/2014/aug/24/juan-williams/juan-williams-no-1-cause-death-african-americans-1/)
[^jacobson2013cp]: Louis Jacobson (2013): [More than 72 percent of children in the African-American community are born out of wedlock](https://www.politifact.com/factchecks/2013/jul/29/don-lemon/cnns-don-lemon-says-more-72-percent-african-americ/)
[^steward2013aa]: Melissa Steward (2013): [The Father Absence Crisis in America](https://www.fatherhood.org/The-Father-Absence-Crisis-in-America)
[^faria2021qg]: Zachary Faria (2021): [Portland cut police funding and got a 2,000% surge in murders](https://www.washingtonexaminer.com/opinion/portland-cut-police-funding-and-got-a-2-000-surge-in-murders)
[^sowell2013aa]: Thomas Sowell (2013): _Intellectuals and Race_, Basic Books, Pos. 1037
[^gillespie2020dv]: Nick Gillespie (2020): [81 Percent of Black Americans Want the Same Level, or More, of Police Presence: Gallup](https://reason.com/2020/08/06/81-percent-of-black-americans-want-the-same-level-or-more-of-police-presence-gallup/)
[^ap2020wm]: The Associated press (2020): [A timeline of extremist attacks in France in recent years](https://abcnews.go.com/International/wireStory/timeline-extremist-attacks-france-recent-years-73904981)
[^bbcnews2021eu]: BBC News (2021): [Anger as ex-generals warn of 'deadly civil war' in France](https://www.bbc.com/news/world-europe-56899765).
[^bbcnews2021uf]: BBC News (2021): [French soldiers warn of civil war in new letter](https://www.bbc.com/news/world-europe-57055154).
[^ffn2021ru]: Natural News (2021): [US Army ends gender neutral fitness test because female soldiers keep failing… men and women are different after all](https://freedomfirstnetwork.com/2021/04/us-army-ends-gender-neutral-fitness-test-because-female-soldiers-keep-failing-men-and-women-are-different-after-all)
[^nightingale2021ne]: Hannah Nightingale (2021): [US Army shuts down YouTube comment section of woke recruitment ad for the safety and well-being of soldiers](https://thepostmillennial.com/us-army-shuts-down-youtube-comment-section-mocking-woke-recruitment-ad)
[^dilanian2020je]: Ken Dilanian (2020): [China has done human testing to create biologically enhanced super soldiers, says top U.S. official](https://www.nbcnews.com/politics/national-security/china-has-done-human-testing-create-biologically-enhanced-super-soldiers-n1249914)
[^rt2021kd]: RT (2021): [Americas STD rate hits record high for 6th year in a row](https://www.rt.com/usa/521146-americas-std-rate-record-high/)
[^rogan1470]: Ellon Musk & Joe Rogan (2020): [The Joe Rogan Experience 1470 Elon Musk](https://www.youtube.com/watch?v=RcYjXbSJBN8)
[^murphy2018ez]: Robert P. Murphy (2018): [Extreme Poverty Rates Plummet Under Capitalism](https://fee.org/articles/extreme-poverty-rates-plummet-under-capitalism/)
[^mitchell2018qu]: Daniel J. Mitchell (2018): [Welfare Spending Did Not Decrease Poverty, Capitalism Did](https://fee.org/articles/welfare-spending-did-not-decrease-poverty-capitalism-did/)
[^rosling2015lc]: Hans Rosling (2015): [How To End Poverty in 15 years Hans Rosling BBC News](https://www.youtube.com/watch?v=5JiYcV_mg6A)
[^lindsay2021ut]: James Lindsay (2021): [Communism Doesnt Know How](https://newdiscourses.com/2021/04/communism-doesnt-know-how/)
[^margolis2020aa]: Matt Margolis (2020): [Did a WHO Official Admit that COVID-19 Has a Death Rate Similar to the Flu?](https://pjmedia.com/news-and-politics/matt-margolis/2020/10/06/did-a-who-official-admit-that-covid-19-has-a-death-rate-similar-to-the-flu-n1011349)
[^thompson2020wr]: Dennis Thompson (2020): [Are Ventilators Helping or Harming COVID-19 Patients?](https://www.webmd.com/lung/news/20200415/ventilators-helping-or-harming-covid-19-patients)
[^posteditorialboard2021kc]: Post Editorial Board (2021): [New report details even bigger lies by Cuomo to cover up nursing home scandal](https://nypost.com/2021/05/02/even-bigger-lies-by-cuomo-to-cover-up-nursing-home-scandal/)
[^mcmaken2020qu]: Ryan McMaken (2020): [The Evidence Keeps Piling Up: Lockdowns Dont Work](https://www.naturalblaze.com/2020/09/the-evidence-keeps-piling-up-lockdowns-dont-work.html)
[^weinstein2021zr]: Bret Weinstein & Pierre Kory (2021): [COVID, Ivermectin, and the Crime of the Century: DarkHorse Podcast with Pierre Kory & Bret Weinstein](https://odysee.com/@BretWeinstein:f/COVID-Ivermectin-and-the-Crime-of-the-Century-DarkHorse-Podcast-with-Pierre-Kory-Bret-Weinstein:f?r=AG4TE1poAnUM1D7LnCupxjSNSjLfy141)
[^hlusa2021ag]: Headline USA (2021): [WaPo Stealth-Edits Report That Said Wuhan Lab Leak Theory was Debunked](https://headlineusa.com/wapo-stealth-edits-report-that-said-wuhan-lab-leak-theory-was-debunked/)
[^watson2021pa]: Paul Joseph Watson (2021): [Vox Stealth Edits March 2020 Article “Debunking” Lab Origin of COVID](https://summit.news/2021/05/24/vox-stealth-edits-march-2020-article-debunking-lab-origin-of-covid/)
[^nayna2019qz]: Mike Nayna (2019): [The Devils of Evergreen State College](https://www.youtube.com/playlist?list=PLLHyNSlsz44_GceBMuwAyflt3lDWMEjTG)
[^pachal2020gj]: Pete Pachal (2020): [Coinbase Has Drawn a Line in the Sand for Its Activist Employees](https://www.coindesk.com/coinbase-has-drawn-a-line-in-the-sand-for-its-activist-employees)
[^monroe2021im]: Nick Monroe (2021): [REVEALED: Basecamp employees cried, threw tantrums after boss rejected woke culture](https://thepostmillennial.com/revealed-basecamp-employees-cried-threw-tantrums-after-boss-rejected-woke-culture)
[^williamson2021uf]: Chris Williamson & Michael Knowles (2021): [Michael Knowles The Problem With Political Correctness | Modern Wisdom Podcast 331](https://www.youtube.com/watch?v=tDbOMKNg9uw)
[^muller-ullrich2021bu]: Burkhard Müller-Ullrich, Nobert Bolz, and Cora Stephan (2021): [Indubio Folge 131: Das alte und das neue Normal](https://www.achgut.com/artikel/indubio_folge_131_das_alte_und_das_neue_normal)
[^escritt2021ap]: Thomas Escritt (2021): [Germany must tighten climate law to protect young peoples future, court rules](https://www.reuters.com/business/environment/germany-must-further-tighten-climate-change-law-top-court-rules-2021-04-29/)
[^unger2021pf]: Raymond Unger (2021): _Vom Verlust der Freiheit: Klimakrise, Migrationskrise, Coronakrise_, Europa Verlag.

View File

@@ -0,0 +1,41 @@
---
title: Learning Poems
slug: learning-poems
date: 2021-08-23T11:28:20+02:00
author: Stefan Imhoff
description: Why I started learning poems.
tags: ["poetry", "self-improvement"]
---
Ive been enjoying learning poems for a few months now. It started when I heard a fantastic [visual recitation](https://youtu.be/37ARLInjLVE) by _Lauren Southern_ of _Rudyard Kiplings_ [The Gods of the Copybook Headings](http://www.kiplingsociety.co.uk/poems_copybook.htm).
The poem is an echo from 100 years ago. Full of wisdom and a mirror held up to our generation. Its deep and hard to understand, which was the reason I dug into it. I wrote [a modern interpretation of the poem](/interpretation-the-gods-of-the-copybook-headings/) a few months ago.
And then I started learning the poem. First for fun, and I wasnt sure I would be able to remember it because its long (10 stanzas with four lines). I was surprised and impressed when I was able to remember it after two weeks in its entirety.
I used a simple spaced-repetition method to remember it. There are countless apps like [Anki](https://apps.ankiweb.net/) that use this method. I used an app called [NeuraCache](https://neuracache.com/) which can import the cards from Markdown. And recently, I found a [Flashcard-Based and Note-Based Spaced Repetition Plugin](https://github.com/st3v3nmw/obsidian-spaced-repetition) for [Obsidian](https://obsidian.md/), the note-taking app of my choice.
Next, I learned the English translation of [Epitaph for “Poets Tomb”](https://www.poetryinternational.org/pi/poem/23081/auto/0/0/Shuntaro-Tanikawa/EPITAPH-FOR-POETS-TOMB/en/tile) by _Shuntaro Tanikawa_. I first heard the poem in the visual epitaph [Hikari](https://youtu.be/__xVbrDvunY) in 2017. The film remembers the Japanese poet Hiraki-san, who took her life after struggling with depression.
<YouTubeVideo id="__xVbrDvunY" />
Compared to **The Gods of the Copybook Headings**, this poem was easy to learn in 1-2 days. Im struggling to remember it in Japanese, though.
The next poem on my list is [If—](https://www.poetryfoundation.org/poems/46473/if---) by _Rudyard Kipling_. <q>It provides traditional advice about how to live a good life</q> and <q>is considered to be one of the best examples of Victorian stoicism.</q>[^jenson2016ib]
<Banner summary="An interesting fact about the Victorian Age" open>
I recently heard _Heather Heying_ talk about a scientific paper on health in the Victorian Age on
[DarkHorse podcast 88: How Bread got Broken](https://youtu.be/KSWu6DUFFt4?t=3108). We always think
of the Victorian Age from books like <cite>Frankenstein</cite>,{" "}
<cite>Strange Case of Dr. Jekyll and Mr. Hyde</cite>, or <cite>Sherlock Holmes</cite> dark,
nasty, dirty, short-lived. But the paper found that these people were healthier than we are today.
</Banner>
When I tried to remember what poems I had to learn in school, I couldnt remember a single one. I think the reason is, that we didnt have to remember any. I think we didnt even read poems. I remember we sang the [Niedersachsenlied](https://de.wikipedia.org/wiki/Niedersachsenlied) (the song of the Lower Saxons) in music class.
I think learning poetry faded out in the generations before mine. My parents and grandparents had to learn poems in school. Sadly, we stopped learning poems.
But it is a fantastic way to train the brain and to remember the wisdom of our ancestors. If we stop, we lose our culture and the teachings of the past. This will result in making the same mistakes, or as a quote, misattributed to _Mark Twain_[^research2014ej] says <q>History doesnt repeat itself, but it often rhymes.</q>
[^jenson2016ib]: Jamie Jenson (2016): _If— by Rudyard Kipling_, https://poemanalysis.com/rudyard-kipling/if/.
[^research2014ej]: Quote Research (2014): _History Does Not Repeat Itself, But It Rhymes_, https://quoteinvestigator.com/2014/01/12/history-rhymes/.

View File

@@ -0,0 +1,158 @@
---
title: New Website 2021
slug: new-website-2021
date: 2021-04-24T16:29:32+02:00
author: Stefan Imhoff
description: I relaunched my website, after only 10 months. The previous stack was too slow and work-intensive and prevented me from writing. I picked Eleventy for my new website, the development was quick and fun.
tags: ["code", "design"]
---
My brand-new website is online, using [Eleventy](https://www.11ty.dev/) as its static site generator. The development was quick and fun, and Eleventy gives me a huge amount of flexibility. And its fast, [very fast](https://www.zachleat.com/web/build-benchmark/). Burned by my last technology choice, I did this time a performance test _before_ picking the tool. I created 1000 large Markdown pages and let Eleventy render them to HTML. It was done in an astonishing 3.8 seconds.
<Figure caption="New Website 2021 Homepage" size="wide">
<Image src="/assets/images/posts/new-website-2021.jpg" alt="New Website 2021 Homepage" />
</Figure>
## Whats New?
My new website looks familiar but different. I changed the complete code and picked a much simpler technology stack while keeping the design. I polished it everywhere, removed unneeded or complicated parts of the website, and extended it to other parts.
### Typography
The new font is [Secuela](https://fontesk.com/secuela-typeface/), a variable font with weights from thin to black. The new font allows having a slimmer weight for the dark mode. This ensures the contrast doesnt bleed and blends the eyes.
### Projects
The project area is now generated from a data file. Adding a new project needs no additional CSS or Markup.
### Haiku
I simplified the [Haiku](/haiku/) section and removed unnecessary sections. Its now a brief introduction and links to my Haiku. Gone are the different-colored layouts. Haiku was the only section using the green layout. Sketchnotes were the only section using the brown layout. The blue layout I didnt use at all. All these are gone.
### Sketchnotes
The last [Sketchnote](/sketchnotes/) section didnt get a lot of love. The relaunch brings a nice grid layout with a detail page for each item.
### Journal
The [journal](/journal/) got the most significant change. I started splitting my posts into three categories: Posts, links, and quotes. Posts are my essays and posts, links are my retired monthly link post, and the new irregular link post format. I added a quote format because _some_ quotes are too good not to be shared. I took the time to extract all interesting quotes from my monthly posts and create separate quote posts out of them.
**Update 2022:** I removed the links and quotes because they are hard to maintain. You can follow my link recommendations instead on [Raindrop.io](https://raindrop.io/kogakure/recommendations-25041238) and my favorite highlights on my [Readwise page](https://readwise.io/@kogakure).
The overview page of the journal is now chronological, grouped by year. Small icons added to link or quote posts differentiate those from regular posts.
### Homepage
I added a new section showing featured posts, the latest posts, links, or quotes.
### RSS/Atom Feeds
The feed produced by Gatsby created plenty of problems. I was unable to remove the CSS classes added by Styled-Components, and the custom MDX tags blew up the file size so much that a lot of feed readers couldnt parse it anymore.
All these issues are history with Eleventy. I created an [RSS feed](/index.xml).
## Why Did I Change the Technology Stack?
Given the fact that my last relaunch was 10 months ago, why did I relaunch again?
The short answer is: **Gatsby was too slow**.
While I was developing my last website, I felt it getting slower with advancing development time. Each GraphQL query, each Markdown file, each image, and each technology added increased the build times.
To give you hard numbers: Building my previous Gatsby site with 77 posts took up to 3 minutes on a MacBook Pro 16" 2020 with 16 GB RAM:
```bash
success open and validate gatsby-configs - 0.307s
success load plugins - 5.841s
success onPreInit - 0.041s
success delete html and css files from previous builds - 0.005s
success initialize cache - 0.007s
success copy gatsby files - 0.215s
success onPreBootstrap - 0.047s
success createSchemaCustomization - 0.005s
success Checking for changed pages - 0.003s
success source and transform nodes - 15.801s
success building schema - 0.565s
success createPages - 0.122s
success Checking for changed pages - 0.004s
success createPagesStatefully - 0.471s
success update schema - 0.040s
success onPreExtractQueries - 0.001s
success extract queries from components - 4.080s
success write out redirect data - 0.012s
success Build manifest and related icons - 0.483s
success onPostBootstrap - 0.499s
info bootstrap finished - 35.813s
success run static queries - 6.581s - 22/22 3.34/s
success run page queries - 24.880s - 114/114 4.58/s
success write out requires - 0.006s
success Building production JavaScript and CSS bundles - 40.079s
success Rewriting compilation hashes - 0.004s
success Building static HTML for pages - 18.687s - 114/114 6.10/s
success Generating image thumbnails - 105.103s - 521/521 4.96/s
success onPostBuild - 35.452s
info Done building in 163.798668245 sec
```
My new technology stack is so fast, the JavaScript compiles in **422ms**, the [PostCSS](https://postcss.org/) is converted to CSS in **900ms**, Eleventy generates over 230 files and copies over 300 files to the `dist` folder in **3.62s**. This includes a plugin doing work on my images (adding sizes, lazy loading, and blur-up). Adding time between the processes and the generation of a service worker with [Workbox](https://developers.google.com/web/tools/workbox/), my whole production build is done in **14,5s**.
Thats the time Gatsby needed for processing the GraphQL queries. 😳
My old stack was so slow I had to switch from building via GitHub on [Netlify](https://www.netlify.com/) to building locally and uploading via the Netlify CLI because my 300 free build minutes per month were used up early each month. And a build took nearly 8 minutes on Netlify.
Over the last few months, my frustration rose with each essay I wanted to write because seeing a mistake in the published text and fixing it could take up to 30 minutes of my time.
## High Maintenance
Lets be honest: My old stack was too complicated for a website. A blog shouldnt be a SPA (Single Page App), a good old MPA (Multi-Page App), or a website (as we used to call it) is the right choice.
I previously used [TypeScript](https://www.typescriptlang.org/), [Styled-Components](https://styled-components.com/), [MDX](https://mdxjs.com/), [GraphQL](https://graphql.org/), wrote hundreds of [Jest](https://jestjs.io/) unit tests, and used 120 npm packages. Updating and keeping a stack like this alive is work, not fun. The Saturday morning is gone, after updating 120 packages with dozens of major updates.
---
## The New Tech Stack
### Eleventy
[Eleventy](https://www.11ty.dev/) is flexible. Multiple template languages are officially supported, and more can be added with plugins. I picked [Nunjucks](https://mozilla.github.io/nunjucks/) as my template engine because its inspired by the [Django](https://www.djangoproject.com/) template engine, which I liked a lot.
Eleventy takes a lot of the ideas of [Jekyll](https://jekyllrb.com/) and adds more features on top. Its easy to create collections out of data or files. Every JSON file in the `data` folder is automatically available to each template. Adding tags to content creates [collections](https://www.11ty.dev/docs/collections/). This can be done quickly per folder in a JSON file. Its possible to create custom collections and sort, modify, or group collections with JavaScript.
With YAML, frontmatter layouts can be chosen for each file or collection of files, and permalinks can be generated programmatically or per file.
[Filters](https://www.11ty.dev/docs/filters/) allow the modification of content, a few are built into Eleventy, and others depend on the template language. Its effortless to create custom filters.
[Shortcodes](https://www.11ty.dev/docs/shortcodes/) allow creating custom helpers to be used and generate output. I used them to replace a lot of my components.
I used these four Eleventy plugins:
- [@11ty/eleventy-plugin-rss](https://www.11ty.dev/docs/plugins/rss/) Helps to create RSS/Atom feeds.
- [@11ty/eleventy-plugin-syntaxhighlight](https://www.11ty.dev/docs/plugins/syntaxhighlight/) Adds code highlighting via [Prism](https://prismjs.com/) on build time.
- [eleventy-plugin-lazyimages](https://github.com/liamfiddler/eleventy-plugin-lazyimages) Adds width and height attributes to all images, lazy loading, and blur up technique.
- [eleventy-plugin-reading-time](https://github.com/johanbrook/eleventy-plugin-reading-time) Calculates the reading time.
Eleventy uses [Markdown It](https://markdown-it.github.io/) as the default Markdown parser. I added plugins to support footnotes, GitHub headings, spoiler, subscript, superscript, and external anchors.
### PostCSS
I used [PostCSS](https://postcss.org/) to generate the CSS of my website, with a few plugins. I added a few features to use SASS-style variables. I might move to CSS custom properties in the future. For now, I use them for color variables.
Another thing added is the nesting of CSS because it makes the writing easier, and its more clear what belongs together.
Sorting media queries is a helpful plugin when using nested media queries. The plugin collects all CSS of one media query size and combines them.
### Gulp
I started development without any JavaScript bundler, but its convenient to be able to use modules or ES6 syntax. I used [Gulp](https://gulpjs.com/) for my workflows.
## Source Code
I learned a lot by looking at other developers Eleventy code, honorable mention goes to:
- [Zach Leatherman](https://www.zachleat.com/), the creator of _Eleventy_.
- [Jecelyn Yeen](https://jec.fyi/), who wrote a [full series on creating a blog with Eleventy](https://jec.fyi/blog/building-my-static-site-with-11ty).
- [Phil Hawksworth](https://www.hawksworx.com/) who created [multiple Eleventy starters](https://github.com/philhawksworth/) to learn from.
- [Stephanie Eckles](https://thinkdobecreate.com/), who created [11ty Rocks!](https://11ty.rocks/), wrote multiple articles about Eleventy and created a free [Egghead course](https://egghead.io/courses/build-an-eleventy-11ty-site-from-scratch-bfd3).
- [Max Böck](https://mxb.dev/), who writes a lot about Eleventy in his blog.
My [source code on GitHub](https://github.com/kogakure/website-11ty-stefanimhoff.de) is as always public for everyone, including all commits I did since I started the project in mid-March 2021.

View File

@@ -0,0 +1,144 @@
---
title: How I Process Information Into Notes
slug: processing-information-into-notes
date: 2021-05-13T10:00:00+02:00
author: Stefan Imhoff
description: My process of extracting information out of books, articles, podcasts, and videos and creating atomic notes.
tags: ["productivity", "note-taking", "tip"]
---
Everybody is consuming content, through books, articles, videos, podcasts, or other media. We consume content for entertainment, to be informed, or to learn and grow. But few people take the time to extract the valuable parts from the content they are consuming.
As I wrote in my previous essay [Zettelkasten Note-Taking Method With DEVONthink](/zettelkasten-note-taking-devonthink/), we are prone to the _Collectors Fallacy_, the belief that consuming information enables us automatically to remember and apply this knowledge later. This is sadly not true. The only way to remember things is by writing them down, creating connections between them, and regularly revisiting them.
I started using the Zettelkasten note-taking method a year ago, and this essay is an overview of the different types of content and how and with what tools I process them.
## Tools
Before I go into details about the different media types and how I process them, I want to mention my main tools. These dont change too often—if at all—and I use them for many years.
### DEVONthink
[DEVONthink](https://www.devontechnologies.com/apps/devonthink) is my main tool to store content: Text, images, documents, and much more. All content is stored safely and securely on my local hard drive (good for backups) but is at the same time shared (encrypted) through a Cloud provider with my different mobile devices and computers.
It would take an extra essay to mention all the features of DEVONthink. With [DEVONthink 3.7](https://www.devontechnologies.com/blog/20210422-devonthink-37) the tool got fantastic support for Markdown, including the different syntax of tools like Roam, Obsidian, and iA Writer.
### MindNode
[MindNode](https://mindnode.com/) is the app I use to prepare content for processing. I dump in the ideas and connect them to Mindmaps, adding tags and links. When I have a rough idea about the structure, I move the ideas to notes in Obsidian. You can see one of the mind maps I created to study [Japanese Design and Aesthetics](https://my.mindnode.com/FGhdh66uMbi1aJ9RfriKUL3JoMCHd18aS8z9Uayw) online.
### Obsidian
[Obsidian](https://obsidian.md/) is my favorite tool to create notes. My Obsidian note vault lives locally on my hard drive in a Git repository, synchronized with a private GitHub repository. Additionally, it is indexed in DEVONthink and synced across all devices.
### iA Writer
[iA Writer](https://ia.net/writer) is my favorite text editor. I write all text with iA Writer. I sometimes open Obsidian notes in iA Writer to check my syntax. It is a simple and powerful text editor with a minimalistic interface and helpful tools for writers.
## Automation
I like to automate my workflow as much as possible because manual work sucks. The only part that _needs_ to be manual is the note creation part, because of how the brain works. A note needs to be written in your words, to be able to remember the content.
I use [IFTTT](https://ifttt.com/) for as many services as possible. I created applets that will save items to [Raindrop.io](https://raindrop.io/) when I like, star, upvote, or interact with them.
## Getting Content Into the System
There are many media types I regularly consume. Each type needs a different approach to process the information, text is the easiest to process in my opinion.
### Books
Texts come in many forms, the most valuable is in my opinion the book. Books are content-rich, the authors condense a lot of information to make a topic accessible.
I read my books mainly as e-books these days because its convenient, the books are easy to carry around, you can read in low-light conditions, and highlighting is easy. I highlight interesting paragraphs and add letters as comments to categorize them: `Q` for quotes, `E` for examples, and `R` for further research. I took this idea from [Tim Ferris](https://youtu.be/YQOrqAKKcUQ).
I extract the highlights from my e-book reader with [Readwise](https://readwise.io/).
Hardcopy books I read with my [Travelers Notebook Passport Size](https://www.travelers-company.com/products/trnote/starter-kit-passport) nearby to transfer the notes I highlighted on a page. I add the page number in case I need to revisit the section. Later, after I finished reading, I transfer the notes to Readwise.
Additionally, I add each book Ive read to a [BibDesk](https://bibdesk.sourceforge.io/) library that lives in my Obsidian vault. A (modified) plugin for Markdown, as described in [Manage Citations for a Zettelkasten](https://zettelkasten.de/posts/bibliography-zettelkasten/), helps me add the citations to my notes. I do the same with articles, podcasts, videos, or other content I want to remember the citation.
### Documents
All the papers companies send to me (invoices, contracts, reports, …) get converted into PDF (with OCR) via [Scanner Pro](https://readdle.com/scannerpro). Automation in DEVONthink copies them from iCloud to my inbox in DEVONthink. I add tags and archive them with the _move_ shortcut into year folders in a document database.
### Articles
If I come across an interesting article on the internet, I use [Raindrop. io](https://raindrop.io/) (Pro) to save it for later reading. The Pro version of Raindrop.io saves the full text offline and allows looking for all text, even if the article isnt available anymore.
I use the highlight feature of Raindrop.io and recently started enjoying the highlighting directly in [Readwise Reader](https://readwise.io/read) as a Beta tester. No matter where I annotate, all highlights get collected in Readwise.
The majority of my articles I read directly in [Reeder](https://reeder.app/) or Readwise Reader.
I consume everything possible now exclusively in [Feedbin](https://feedbin.com/): RSS/Atom Feeds, YouTube videos, Twitter feeds, Reddit topics, Google News keywords, Google Alerts, newsletters, … I can read it in my time, and chronological order.
Intriguing articles I save as cleaned up Markdown with the [DEVONthink](https://devontechnologies.com/apps/devonthink) Clipper to my inbox. This is one of my favorite features of DEVONthink. The Markdown files are stored in yearly folders in my Reference database.
### Photos & Images
I love collecting inspiring photos and images. Architecture and Interior, Logos, Typography, Sculptures, Japanese Tattoos, UI Design, advertising, … if I like it, Ill save it. My Inspiration database has more than 30,000 items.
I save them either directly into [DEVONthink to Go](https://www.devontechnologies.com/apps/devonthinktogo) or export them from iPhoto into it when Im on the sofa or away from my computer. When Im at my computer, I drag items directly into my Inbox.
If I come across an article with multiple photos, I use the [Fatkun AI Downloader](https://chrome.google.com/webstore/detail/fatkun-ai-downloadervideo/ddicoofdkbcdkkeecgafcoabogcgicfp) to download all images at once.
### Audio
Podcasts are my main way of interacting with audio, but occasionally, I create voice memos to remember something.
I am using [Overcast](https://overcast.fm/) and [Snipd](https://www.snipd.com/) as my podcast apps. Overcast allows me to add podcast episodes to a queue and set my preferred playback speed to 1.8x. The best feature of Snipd is its feature to create AI-supported transcripts. They allow you to press a button and bookmark a specific time range of the podcast episode, add comments, and if available, read the transcript. This can be done in private or publicly.
When Im walking outside while hearing podcasts, I bookmark all the interesting parts. It automatically bookmarks a selected range of seconds before the bookmark. Later I edit the bookmark to include the exact start and end of an appealing section and add comments.
Its convenient to transfer the notes and transcript to Readwise from the app to create notes.
### Video
A lot of content I consume comes from videos. I watch videos with at least 1.6x the speed and use the [Video Speed Controller](https://chrome.google.com/webstore/detail/video-speed-controller-ex/hechlhgpdpfdikhmacjfnpphbbpcjpek) to change the speed and jump forward and back in the video. Other plugins I use are [Enhancer for YouTube](https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle) and [Unhook](https://chrome.google.com/webstore/detail/unhook-remove-youtube-rec/khncfooichmfjbepaaaebmommgaepoid) to remove annoying and distracting parts of YouTube.
One browser extension I use to write notes on exciting videos is [YiNote](https://chrome.google.com/webstore/detail/yinote/fhpgggnmdlmekfdpkdgeiccfkignhkdf). It allows watching a video and creating notes in a side drawer. Its possible to export the notes as a PDF, including a screenshot of the frame with the note and the time code. I convert these notes then into notes in Obsidian and store the document as a reference.
## Working with Notes
The most important part of note-taking is connecting ideas. Sönke Ahrens, the author of <AffiliateLink asin="1542866502" text="How to Take Smart Notes" />, explains the science of why this method works. I recommend reading this fantastic book; it is useful for anybody who wants to write notes.
<Bookshelf>
<AmazonBook asin="1542866502" />
</Bookshelf>
There is an [interesting interview with him on YouTube](https://youtu.be/kXnR7qX3BDc) if you wish to avoid investing the time and money for the book.
Connecting ideas is the first step. The long-term goal is to either understand a topic in more depth or to create output, as in articles, essays, or books.
### Obsidian
I use [Obsidian](https://obsidian.md/) and the [Zettelkasten note-taking method](https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125) for that. Obsidian is _by far_ the best tool you have ever used for note-taking.
Obsidian has many ways of customizing and making it work for _your_ workflow, starting from the look-and-feel with themes to an ever-growing collection of plugins and community plugins.
### Plugins
I make regular use of a lot of the [core plugins](https://help.obsidian.md/Plugins/Zettelkasten+prefixer).
The Graph View is incredibly useful. It allows one to see and navigate the connection between notes. It is possible to search, filter, group notes, drag them around, and explore similar or related notes.
I use starred notes to remember notes to work on and use plenty of Tags. Tags allow a secondary layer of connecting notes without directly connecting them. I convert the hashtag syntax of my notes to macOS tags with DEVONthink.
My favorite feature is the WikiLink syntax, including a fast fuzzy search. One of the guidelines of the Zettelkasten method is to connect notes to similar other notes. I search for keywords or topics in the search menu of WikiLinks and connect any note that might be a good companion.
### Community Plugins
Obsidian started to allow community plugins. Every time I look into the collection, there are new fantastic plugins to improve my workflow.
[Sliding Panes](https://github.com/deathau/sliding-panes-obsidian) is one of the plugins I love because it enables me to keep 10-20 notes (depending on the monitor size) at the same time open and moves between the notes to compare or connect notes. **Update 2022:** Its now a native feature of Obsidian.
I found recently [Note Refactor](https://github.com/lynchjames/note-refactor-obsidian). The plugin allows me to write all my notes to a topic in one note and later extract parts into separate smaller (atomic) notes thanks to a shortcut. It takes over the work of creating the filename, using a preferred file template. It moves the section to the new file and links to it in the original note.
## Connecting Notes To Understand and Create
I use the Zettelkasten method for more than a year and Obsidian since May 2020. The first time I had an “Aha” moment was after three months when I found a connection of a node to an existing cluster of notes. Since then, this feeling repeated regularly, and I love it.
The Graph view in particular allows me to see if a specific topic isnt yet good enough researched because there are not enough notes connected to it.
The final step is to produce content out of the notes. I have MindNode open on one monitor and my Obsidian vault on the second monitor, and follow the links and connections of a topic to write an Outline for the essay. Because the notes are small, it is possible to quickly create the outline and create a structure to tell a story.
The final step is then to write the text in iA Writer. My vault has now more than 1,000 notes but compared to Niklas Luhmanns 70,000 notes when he died this is nothing. Im curious how the note collection improves over time as long as I add, edit and link notes.

View File

@@ -0,0 +1,79 @@
---
title: "The Decentralized Web: Why Do We Need It?"
slug: the-decentralized-web-1-why-do-we-need-it
date: 2021-10-25T09:00:00+02:00
author: Stefan Imhoff
description: This is the first part of a three-part series on the Decentralized Web. This part will highlight the dangers looming on the free internet.
tags: ["decentralization", "politics", "philosophy"]
series: decentralized-web
---
Its been at least 25 years since I first used a modem to dial through the landline into “the internet”. Youll never forget the [robotic beeping](https://archive.org/details/44568-pocket-modem-conection-1-norm-d.-d.-teoli-jr.-a.-c.) when you grew up with Dial-Up Modems.
I was curious and hopeful for the future of the internet. I even took on a job that depends on it. And the rise of social media (Web 2.0) looked promising and full of opportunities. But over the following years, I had to watch how Big Tech and Big Sales took over large parts of the internet. They build gigantic walls around their properties, stopped supporting open protocols wherever possible, developed proprietary technical solutions, and siloed people into their platforms.
The internet became less diverse and less fun, and the big companies started tracking, tracing, and collecting any activity of us to use to make even more money. Data became the most valuable commodity. But many people didnt care because it meant a bigger reach, easier access to an audience, and free entertainment.
## The Free & Open Internet is Dying
5 years ago, I started noticing worrying trends on the internet. Plenty of companies started consolidating their powers. Google dropped the “Dont be evil” credo after they started negotiating with weapons manufacturers. The companies started to use their reach and power to spread their political and social ideologies. It started slowly, subtly, and nearly unnoticeable with biased ranking algorithms under the pretension of “showing more relevant content to users”.
As a center-left Libertarian who follows conservative outlets, I noticed the political bias much earlier than people who read exclusively left-wing news. I witnessed how the hypocritical inequality and standards applied to different political ideas increased a lot. Search results of Google and their competitors started to look like being from a different planet. I stopped using Google products and switched to privacy products like [Brave Browser](https://brave.com/), [Brave Search](https://search.brave.com/), or [DuckDuckGo](https://duckduckgo.com/).
Wikipedia started locking down numerous pages and a hard progressive-left bias became visible on plenty of pages. Biographies of liberal or progressive people were missing known scandals. For right-leaning people, every fringe accusation was rolled out in length (preferably using labels as alt-right or conspiracy theorist) and grounded on claims by dubious biased media outlets or left fact-checker sites. Wikipedia became a weapon for political smears. They discontinued allowing multiple big conservative newspapers as sources and even the Co-Founder of Wikipedia, Larry Sanger, [started to warn people](https://www.youtube.com/watch?v=l0P4Cf0UCwU) about Wikipedias obvious bias.
The big Deplatforming started with fringe conspiracy people like _Alex Jones_ but quickly continued with political agitators with the “wrong opinions” like _Milo Yiannopoulos_ or _Gavin McInnes_ and even liberals such as _Carl Benjamin_. Big Tech companies colluded to take down people in coordinated campaigns with made-up claims for **violations of the community guidelines**. The accusations were never clear or precise and could rarely be challenged. Even worse, sometimes they colluded with payment or server providers to make it nearly impossible for an affected person to continue to run a business or live a normal life.
## Techniques of Censorship
But Big Tech developed a range of techniques to control opinion on their platforms:
- **Age Restricted Content** is a technique to make it harder for people to access unpopular opinions. Its not violent or sexual content that gets ranked by this, but political or religious information that runs against the ideology of Big Tech. To view the content, a person needs to be an adult and prove this by adding an ID or credit card information. And even then, you have to dismiss annoying warning labels to confirm to see “unsafe” content.
- **Demonetization** is a subtle educational tool to punish content creators for talking about the “wrong” opinions. Even though there are always advertising companies interested in advertising on nearly any content, Big Tech decides wrong opinions cant be monetized. But they continue running ads on demonetized content, but dont transfer the money to the content creator and keep it for themselves.
- **Shadow Banning** is a technique where a specific content or comment is invisible to the community, without the awareness of the author that the content cant be seen. Sometimes complete topics or hashtags get shadow-banned.
- **De-Ranking** is used to make sure only the correct opinions can be found. De-Ranked content appears much later in search results. People have to scroll by prioritized content that is of the opposite opinion.
- **Throttling** is used to reduce the reach of unfavored opinions by slowing down how fast the content can be shared or who can see the content.
- **Content Blocking** is an invasive technique where social media platforms blacklist words, hashtags, or links from being shared, sometimes even in private conversations.
- **Strikes** are another educational method, applied with a three-strikes system, where the account gets deleted after the content creator collected three warnings for violations of community guidelines.
- **Deplatforming** is the final stage where the account of a content creator gets banned, blocked, or deleted either for a few days, weeks, months or forever. Youll see this technique applied coordinated between Silicon Valley companies to remove a person on all platforms at once.
The beginning of President Trumps presidency marked a date where both sides of the political spectrum became ruthless in spreading misinformation and fake news. Other countries like China, Russia, and Iran started stirring up hate with bots. The political divide in the West deteriorated rapidly. The trust in media sunk to the lowest point in decades.[^johnson2021qe] Divisive ideas as Critical Theory[^lindsay2020da] started dividing people based on immutable characteristics like race, sex, or gender.
All that was needed was a match—the death of George Floyd—to ignite the worst race riots in decades. There was the release and cover-up of a _likely_ man-made Virus on the world[^rogin2021rn]. Then the suppression of important compromising information about a presidential candidate,[^harsanyi2020yv] a suspicious election, the deplatforming of a sitting president, and the removal of the conservative social media service [Parler](https://parler.com/)[^crichton2021km] by competitors poured gasoline on the fire.
## Quis Custodiet Ipsos Custodes? (Who Watches the Watchers?)
The censorship and deplatforming that previously “only” affected conservative or libertarian people started to affect public safety and unleashed harm and killed people.
Scientists that didnt support the stories of the WHO or CDC both unelected, suspicious organizations with decades-long histories of corruption and mismanagement were deleted and removed.
Governments in multiple countries (including my country, Germany) asked “scientists” for strategy papers that <q>would allow repressive techniques to control the population.</q>[^fminterior2020qo]
The unholy alliance of power-hungry governments, Big Tech, and new media started drumming up the panic narrative which became worse with each week. Each of the parties had different reasons: Politicians to acquire more power and control, Big Tech to enrich themselves massively, news media for clicks and money, and scientists for fame, money, and attention. Deviating or critical voices were silenced, slandered, and insulted.
People died because politicians send infected patients back into elderly homes or put them on ventilators too early. A rushed vaccine developed without sufficient clinical testing was released to the world without proper systems to track adverse side effects.
Effective treatment with known (patent-free) drugs like Ivermectin was forbidden likely to not risk the billions made from the vaccines. A meta-analysis of Ivermectin[^ivmmeta2021ra] and real-world success stories, as from India (Uttar Pradesh), Peru, and large parts of Africa showed its effectiveness against COVID-19. But the media wouldnt stop [calling out](https://twitter.com/tomselliott/status/1448986127545864199) podcaster Joe Rogan, who took prescribed Ivermectin to fight his COVID-19 infection, for taking “Horse Paste”, “Life Stock Pills” or “Horse Dewormer.”
The damage by the vaccines (taken from multiple adverse databases from the [EU](https://www.adrreports.eu/en/search_subst.html), [CDC](https://www.openvaers.com/covid-data), or WHO) is after half a year in the millions (excluding massive underreporting), but the powerful cabal of censors is unstoppable.
Objective science was removed, and the people in power use their fact-checkers to smear all opinions they dont approve of, or directly flag posts on social media for removal. Scientific papers get unpublished overnight without explanation, and review processes that should take 6 months, are reduced to one day.[^goddek2021tr] Its the _endgame_ of an **information war**.
Even though I focused on censorship, many more grave dangers are looming in the world, that currently dont affect the West, but might soon. Increasingly authoritarian and totalitarian regimes around the world control, monitor, block or cut off access to the internet. The [Great Firewall of China](https://en.greatfire.org/analyzer) is one example. Other countries have cut off the internet temporarily for political reasons, for example in [Turkey](https://turkeyblocks.org/). The EU has legally forbidden access to Russian news outlets since the Ukraine war started. Additionally, considerable parts of the world have to rely on inflationary currencies that destroy their savings. Decentralization can help to repel these infringements on personal liberty.
## The End of Freedom
The future looks dark for freedom-loving people, who believe in personal responsibility, the autonomy of choice, and an informed and open citizen. The rise of China as a totalitarian Dictatorship and the _intentional_ weakening from within the USA might result in a dystopian future unless people wake up and resist. China has bought half of the world. Their influence on media and culture is strong and will be a nightmare for a free and open society. And Big Tech and governments showed which side in the war they will pick if it was either business or freedom.
I fear the current internet cant be saved anymore. Too powerful is the grip of the tech giants. The antitrust case wont go far, because of the strong ties between the government and Big Tech. Too many people have sold out to Big Tech or China.
The only hope for a free future is a decentralized internet where people can get information without governments being able to control the flow of information. One where you own your data and that is in control by the people and smart contracts, not governments or corporations, and one that cant be controlled or censored.
[^johnson2021qe]: Ben Johnson (2021): _Americans Have Worlds Lowest Trust In Media: Survey_, https://www.dailywire.com/news/americans-have-worlds-lowest-trust-in-media-survey.
[^lindsay2020da]: Dr. James Lindsay (2020): _Critical Theory_, https://newdiscourses.com/tftw-critical-theory/.
[^harsanyi2020yv]: David Harsanyi (2020): _How the media covered up the Hunter Biden story — until after the election_, https://nypost.com/2020/12/10/how-media-covered-up-the-hunter-biden-story-until-after-the-election/.
[^rogin2021rn]: Josh Rogin (2021): _New congressional report says covid-19 likely emerged in Wuhan months earlier than originally thought_, https://www.washingtonpost.com/opinions/2021/08/02/new-report-says-covid-emerged-in-wuhan-months-earlier/.
[^crichton2021km]: Danny Crichton (2021): _The deplatforming of President Trump_, https://techcrunch.com/2021/01/09/the-deplatforming-of-a-president/.
[^fminterior2020qo]: Bundesministerium des Innern, für Bau und Heimat (2020): _Wie wir COVID-19 unter Kontrolle bekommen_, [https://www.bmi.bund.de/SharedDocs/downloads/DE/veroeffentlichungen/2020/corona/szenarienpapier-covid19.html](https://www.bmi.bund.de/SharedDocs/downloads/DE/veroeffentlichungen/2020/corona/szenarienpapier-covid19.html).
[^ivmmeta2021ra]: ivmmeta.com (2021): _Ivermectin for COVID-19: real-time meta analysis of 63 studies_, https://ivmmeta.com/.
[^goddek2021tr]: Dr. Simon Goddek (2021): _How Scientific Fraud took the World Hostage_, https://www.goddeketal.com/how-scientific-fraud-took-the-world-hostage/.

View File

@@ -0,0 +1,132 @@
---
title: "The Decentralized Web: The Wild West Web"
slug: the-decentralized-web-2-the-wild-west-web
date: 2021-11-01T09:00:00+02:00
author: Stefan Imhoff
description: This is the second part of a three-part series on the Decentralized Web. This part will show promising examples for the decentralized web.
tags: ["decentralization", "software"]
series: decentralized-web
---
The construction of the DWeb (decentralized web) is in full progress for a few years. Its going on unnoticed by the public, and its proceeding slowly. One of the most prominent examples of the decentralized web is Bitcoin (and other cryptocurrencies like Ethereum). Bitcoin is <q>nothing less than freedom money,</q>[^gladstein2021on] [^fridman2021vm] says _Alex Gladstein_, chief strategy officer of the [Human Rights Foundation](https://hrf.org/).
Except for cryptocurrencies, few parts of the decentralized work are visible to the public. Working on technologies for the decentralized web is hard, unpaid pioneer work, that might (or not) bring massive wealth to the pioneers in the future.
It takes a lot of time and know-how to solve problems for a decentralized web. New technological solutions need to be developed for the three fundamental components of the internet: **Storage**, **Naming**, and **Databases**.
And developers need a long breath. _Steve McKie_ explained in his Medium article the three generations of the DWeb[^mckie2020ar]: Generation 1 was the development of decentralized Browsers (for example [Brave Browser](https://brave.com/)), of [Ethereum](https://ethereum.org/), the [Ethereum Name Service](https://ens.domains/) (ENS), and [IPFS](https://ipfs.io/) (The InterPlanetary File System).
The 2nd generation is currently being developed: It includes technologies like [Handshake](https://handshake.org/), [Filecoin](https://filecoin.io/), [Ethereum 2.0](https://ethereum.org/en/eth2/), or [WebAssembly](https://webassembly.org/). _KcKie_ estimates another 2-3 years are needed to finalize these.
The 3rd generation will bring decentralized governance, name registrars, content storage apps, web hosting, P2P databases, identity management, mesh networking, and social networking. The first contenders of this generation are appearing.
The DWeb has far too many projects, ideas, and technologies to be able to follow all. If you start researching the topic, it quickly becomes overwhelming. Its nearly impossible to follow all the projects that get created, funded (or not), are discontinued, or die. Many ideas are tested and some will prevail. These will get more stable over time and easier to use, which is important to bring the ideas to the public.
I picked a few decentralized projects I found personally interesting and will explain them in more detail.
## Mastodon
[Mastodon](https://joinmastodon.org/) is an open-source, distributed Microblogging service similar to Twitter. It is not owned by one company but consists of multiple, decentralized instances owned by private individuals, associations, or companies.
Each instance has its policies and rules. By default, all instances can talk to all other instances, but its possible to restrict the communication to other servers or set up filters for specific types of content.
Its up to the user if they join a progressive-left LGBT+ instance or a right-wing Christian instance. With technical knowledge and a server, you can even set up your instance and create your policies.
Its possible to mark Toots (the equivalent of a Tweet) with content warnings in case of NSFW, spoilers, or other potential upsetting content.
I like the design and friendliness and its weirdness.
## Minds
[Minds](https://www.minds.com/) is a blockchain-based social network. You can earn money or cryptocurrency for using Minds and use the earned tokens to boost posts or support other content creators. Minds has a strong focus on free speech and doesnt delete content unless it violated a law. They use a 3-strikes system for posting harassment and spam or not tagging NSFW content properly.
Minds has a premium membership program for content creators that want to access exclusive content or monetize their income. But even with a basic account, its possible to use the earned tokens to boost your content.
I like the clean design and how nice and big the content is shown. And the edit feature is fantastic to fix a typo later. With a basic account and a few posts, I earned $20 in tokens in 3 years.
Minds has a built-in encrypted [chat](https://chat.minds.com/) that was recently migrated to Matrix.
## Matrix
[Matrix](https://matrix.org/) is an open network for secure, decentralized communication. Its feature-rich and allows communication between different servers running (similar to Mastodon). Additionally, Matrix allows communication over bridging with external services like Slack, Microsoft Teams, IRC, XMPP, Telegram, WhatsApp, Facebook, Hangouts, Signal, and many more.
Its end-to-end encrypted, supports WebRTC VoIP/Video, and has no single point of control or failure due to its decentralized architecture. Matrix has a feature-set similar to commercial apps, and it introduced recently _Spaces_, a feature to group rooms and people together (similar to a workspace in Slack).[^chishtie2021ed]
To connect to the Matrix federation, you use a [client](https://matrix.org/clients/). You are not forced to use a specific one and can even create your own. The most used client is [Element](https://element.io/), available for Web, Android, iOS, macOS, Windows, and Linux.
Mozilla switched recently from IRC to [Matrix](https://chat.mozilla.org/),[^gruner2019aa] Minds switched their [chat](https://chat.minds.com/) to Matrix. Gitter joined Element,[^le-pape2020xh] Automattic invested nearly $5 Million into New Vector (the company founded by the core Matrix team in 2017),[^hodgson2020aa] [^lomas2020aa] and Element raised $30 Million.[^le-pape2021xi]
More and more governments use Matrix. The French government forked the messenger and created their own messenger [Tchap](https://www.tchap.gouv.fr), the German states of Schleswig-Holstein and Hamburg use Matrix, and the German military introduced the [BwMessenger](https://www.bwi.de/news-blog/news/artikel/open-source-matrix-ist-einheitlicher-messenger-standard-fuer-die-bundeswehr) for communication.[^loynes2020ie]
Matrix provides a service to [create a link](https://matrix.to/#/@kogakure:matrix.org) for any instance to share with people of different instances to connect.
## Beaker Browser (dat)
[Beaker Browser](https://beakerbrowser.com/) is a fun peer-to-peer Web browser. It is based on the Chromium engine and uses the [dat protocol](https://www.datprotocol.com/) (`dat://`). The [dat foundation](https://dat.foundation/) has other interesting Web3 project as [Digital Democracy](https://www.digital-democracy.org/).
Its easy and fun to create web projects in Beaker Browser and share them with the whole community. The browser is made for developers and has a JavaScript API. Each browser is automatically a node to share content with all other browsers to create a decentralized network.
## Filecoin
[Filecoin](https://filecoin.io/) is one of the important project achievements of the decentralized web because it solves with a new cryptocurrency the problem of hosting content and paying for it.
It will democratize the hosting and allow smaller customers to run servers and provide hosting for a decentralized internet. Centralized hosting makes it easy for the provider to dictate prices and remove or block content.
Decentralization helps with the distribution of content because storage providers can repost popular files and grow with the demand and transport it to all regions of the world, where it is requested, making it faster to access.
If somebody wants to store content, they can negotiate with storage providers and pick the best option. The provider earns the storage fee over time. To ensure the data is correctly stored, cryptographic proof verifies the data.
A user who would like to request a file finds a provider that stores the content, pays, and receives the file.
## LBRY & Odyssee
[LBRY](https://lbry.com/) is an open, free, and fair network for digital content. Most people access it via the video-sharing platform [Odysee](https://odysee.com/) which is similar to YouTube.
But LBRY is more. It is a protocol (`lbry://`) for any type of digital content, for example, videos, music, e-books, or video games. It has the aim to become the digital library of the future.
The content of the network is distributed across a network of hosts similar to BitTorrent, but with built-in possibilities for monetization, while the metadata lives on a blockchain.
Content creators can set a price or give the content away for free, content consumers can tip content creators or purchase paid content. LBRY uses its own cryptocurrency `LBC` (LBRY Credits).
The project is open-source and the company behind the project, LBRY Inc. build it in a way that it can never become a single point of failure, should it turn evil. LBRY is very censorship-resistant. The video platform [Odysee](https://odysee.com/) has a mild content policy and blocks horrific or infringing content from its server, but the [LBRY Desktop](https://lbry.com/get) app can access every file of the network without relying on the servers of LBRY Inc.
As long as one node is distributing the content, its nearly impossible to get rid of the content. Its possible to host content anonymously or within a user's namespace. Popular content is hosted by dozens, hundreds, or thousands of computers, depending on its popularity. The possibility of pretty URLs makes content shareable.
This is different from other decentralized video platforms such as [BitChute](https://www.bitchute.com/), [DTube](https://d.tube/), or [Dlive](https://dlive.tv/), where the website is usually the single, centralized control point to discover content. Should the website turn evil, or disappear, all content is gone.
With the recent aggressive deletions of videos by YouTube of scientists talking about COVID-19 or other controversial political topics, more and more content creators started using Odysee. It provides a YouTube Sync option (for YouTube channels with recent and regular content and a minimum of 300 subscribers), has an iOS app, and an LBRY app for Android. It provides RSS feeds for each channel, and its possible to download any video to the hard drive.
## IPFS
[IPFS](https://ipfs.io/) is one of the decentralized projects that has massive potential and is mature. I first discovered it when the [Brave](https://brave.com/) web browser added native support for the IPFS protocol in January 2021.[^brave2021yc][^bondy2021ag]
IPFS stands for _InterPlanetary File System_ and is a peer-to-peer hypermedia protocol (`ipfs://`). This name is not a joke but hints at the possibilities of the protocol in the distant future. Currently, communication between Mars and Earth takes around 13 minutes,[^ormston2012dr], and transmitting 30 MB of data can take up to 20 hours.[^nasa2012gh] Not the best conditions for a person on Mars to browse the internet. But IPFS and its features could help with this, by storing hashes on nodes on Mars to reduce the access time to commonly requested files dramatically.
Any file in the IPFS network is split into smaller chunks, which are cryptographically hashed and have a unique fingerprint, a CID (content identifier). It is the permanent record for this file as it exists at that point.
Other nodes on the network look up the file and store a copy of it, becoming a provider of the content until the cache is cleared.
IPFS allows the pinning of content to keep it forever. Each node decided this way what content it is interested in.
Each new file or change in the content creates a new hash and thus making it resistant to tampering and censorship. All files stored in IPFS are automatically versioned.
The advantages of IPFS compared to the current web are improved performance because the content is loaded from the nearest location. The bandwidth is improved, with data savings improving up to 60% for video. The network is resistant to censorship. The decentralization helps to be resistant in cases of bad connectivity (flaky Wi-Fi, natural disasters, or in the developing world) and prevents central authorities from mandating rules or limitations on its users.
To run your node, you can either use [Brave Browser](https://brave.com/), [IPFS Desktop](https://github.com/ipfs/ipfs-desktop), the [IPFS Companion](https://github.com/ipfs/ipfs-companion) extension (available for most browsers) or the [command-line tool](https://docs.ipfs.io/how-to/command-line-quick-start/). If you use Brave and visit the first-time an IPFS address, youll be asked if you want to run your node or use a public HTTP gateway.
The [IPNS](https://docs.ipfs.io/concepts/ipns/) decentralized naming system can help to find the latest version of a file, and [DNSLink](https://docs.ipfs.io/concepts/dnslink/) allows mapping CIDs to human-readable DNS names.
[^gladstein2021on]: Alex Gladstein (2021): _Bitcoin Is Protecting Human Rights Around the World_, https://reason.com/video/2021/02/05/bitcoin-is-protecting-human-rights-around-the-world/.
[^fridman2021vm]: Lex Fridman and Alex Gladstein (2021): _#231 Alex Gladstein: Bitcoin, Authoritarianism, and Human Rights_, https://lexfridman.com/alex-gladstein/.
[^mckie2020ar]: Steven McKie (2020): _The Decentralized Web -- Explaining the Impending DWeb Explosion_, https://medium.com/amentum/the-decentralized-web-509caa2a87a6
[^gruner2019aa]: Sebastian Grüner (2019): _Mozilla wechselt von IRC auf Matrix und Riot_, https://www.golem.de/news/chat-mozilla-wechselt-von-irc-auf-matrix-und-riot-1912-145664.html.
[^hodgson2020aa]: Matthew Hodgson (2020): _Welcoming Automattic to Matrix!_, https://matrix.org/blog/2020/05/21/welcoming-automattic-to-matrix.
[^lomas2020aa]: Natasha Lomas (2020): _Automattic pumps \$4.6M into New Vector to help grow Matrix, an open, decentralized comms ecosystem_, https://techcrunch.com/2020/05/21/automattic-pumps-4-6m-into-new-vector-to-help-grow-matrix-an-open-decentralized-comms-ecosystem/.
[^loynes2020ie]: Steve Loynes (2020): _BwMessenger goes live for Bundeswehr!_, https://element.io/blog/bwmessenger-goes-live-for-bundeswehr/.
[^le-pape2020xh]: Amandine Le Pape (2020): _Gitter is joining Element_, https://element.io/blog/gitter-is-joining-element/.
[^le-pape2021xi]: Amandine Le Pape (2021): _Element raises $30M as Matrix explodes!_, https://element.io/blog/element-raises-30m-as-matrix-explodes/.
[^chishtie2021ed]: Nad Chishtie (2021): _Spaces: The next frontier_, https://element.io/blog/spaces-the-next-frontier/.
[^brave2021yc]: Brave (2021): _Brave Integrates IPFS_, https://brave.com/brave-integrates-ipfs/.
[^bondy2021ag]: Brian Bondy (2021): _IPFS Support in Brave_, https://brave.com/ipfs-support/.
[^ormston2012dr]: Thomas Ormston (2012): _Time Delay Between Mars and Earth_, https://blogs.esa.int/mex/2012/08/05/time-delay-between-mars-and-earth/.
[^nasa2012gh]: NASA (2012): _Communications with Earth_, https://mars.nasa.gov/msl/mission/communications/.

View File

@@ -0,0 +1,239 @@
---
title: "The Decentralized Web: Develop and Publish a Website"
slug: the-decentralized-web-3-develop-and-publish-a-website
date: 2021-11-08T09:00:00+01:00
author: Stefan Imhoff
description: This is the third part of a three-part series on the Decentralized Web. In this part, well code and release our first decentralized website.
tags: ["decentralization", "code"]
series: decentralized-web
---
In the last part, we will get our hands dirty and play with IPFS to publish a website. If you want to dig deeper into IPFS later, please have a look at the [official documentation hosted on IPFS](http://docs.ipfs.io).
You can use IPFS Desktop and the IPFS Daemon with the same data, but not run them at the same time. You need to stop the one to use the other. But you can use the IPFS commands to interact with a running IPFS Desktop service.
## Installation
To install [IPFS Desktop](https://github.com/ipfs/ipfs-desktop), you download the binary for your operating system (Mac, Windows, or Linux/FreeBSD).
If you want to use Brave, you can navigate to the browser settings and activate in the **IPFS** section the **IPFS Companion**. You can click on the **My Node** button to open the Web UI. You can change the IPFS Node type in the settings of the companion to use the external node from the IPFS Desktop installation. I havent figured out yet if its possible to use the command-line tool to access the native Brave IPFS node.
To follow along with the tutorial, we use the command-line tool. You can install IPFS via [Homebrew](https://brew.sh/) on a Mac:
```bash
$ brew install ipfs
```
For other options, like the M1 install, please look at the [installation instructions](https://docs.ipfs.io/how-to/command-line-quick-start).
## IPFS Web UI
If you installed IPFS Desktop, youll see the Web UI inside a window which can be accessed through the app itself. You can open it through the _My Node_ button of the companion extension, or by using the URL shown to you when you start the command-line daemon.
The interface has navigation with multiple items: Status, Files, Explore, Peers, and Settings.
**Status** is a monitor of incoming and outgoing traffic of your IPFS node. **Files** show all your hosted and pinned files and folders. **Explore** is an advanced tool to explore hashes. **Peers** shows a world map with nearby peers. **Settings** allows configuring language, public gateway, API address, and other things. The **CLI-Tutor-Mode** is a useful thing for beginners. It shows next to each command in the graphical interface the accompanied terminal command.
## Initializing the Repository
If you didnt install the IPFS Desktop, youll need to initialize the IPFS repository before the first start:
```bash
$ ipfs init
```
## Exploring Files
You can explore objects in your repository with the `ipfs cat` command, for example:
```bash
$ ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme
```
Or contents of folders with the `ipfs ls` command:
```bash
$ ipfs ls /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/
```
## Start the Node
To run the node on the command line, you have to start the daemon:
```bash
$ ipfs daemon
```
If the IPFS Desktop app is running, youll get an error that tells you, another process is already using the repository:
```bash
Error: lock /Users/username/.ipfs/repo.lock: someone else has the lock
```
## Add your First File
Create your first file and add it to the repository:
```bash
$ echo "Hello World" > hello-world.txt
$ ipfs add hello-world.txt
```
With the same `ipfs cat` command from above, but using the hash of the `hello-world.txt` file, you can see its contents.
## Create a Simple Webpage
We will create now a simple webpage:
```bash
$ cd ~
$ mkdir simple-webpage
$ cd simple-webpage
```
We download an image of a cute cat from IPFS:
```bash
$ ipfs cat QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg > cat.jpg
```
Create a new file named `index.html` inside the folder and paste this basic HTML inside:
```html
<!DOCTYPE html>
<html>
<head>
<title>Nice Kitty</title>
</head>
<body>
<center>
<h1>Nice Kitty</h1>
<img src="cat.jpg" />
</center>
</body>
</html>
```
Well now add this folder and all its content (`-r` for recursively) to IPFS:
```bash
$ cd ..
$ ipfs add -r simple-webpage/
```
Youll see an output like this, but with different hashes:
```bash
added Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u simple-webpage/cat.jpg
added QmY3ayxXcXMs7qdDvPy7QKcVQ492JBNyC9Zf3jp1LrQRCA simple-webpage/index.html
added QmNa1YdawLNeD2fumihKGxuna4GqAws2QsvRsMjzpY2mM2 simple-webpage
433.02 KiB / 433.02 KiB [==========================================] 100.00%
```
You can see your website now by opening the following URL in Brave:
[https://ipfs.io/ipfs/\<website-hash\>](https://ipfs.io/ipfs/website-hash)
It should work in other browsers because this URL is using a gateway, but it might be slow or take a while until the file is available.
In Brave, youll see a button in your URL bar to open it directly in IPFS (without a gateway). This will change the bar to show an IPFS icon and the IPFS address.
## Publishing to IPNS
Each time you change something with your website, youll get new hashes for the changed files and folders affected, which makes it hard to always serve your recent version to the world. This is where IPNS (the InterPlanetary Name System) comes into play. You create an IPNS hash that is tied to your Peer ID.
We publish now our website to IPNS:
```bash
$ ipfs name publish <website-hash>
```
Youll get an output like this:
```bash
Published to <your-peer-id>: /ipfs/<website-hash>
```
This peer ID is now available by accessing it in your browser:
[https://ipfs.io/ipns/\<your-peer-id\>](https://ipfs.io/ipns/your-peer-id)
In Brave, you can directly access it with the `ipns://` protocol (it might take a few seconds, until its available):
[ipfs://\<your-peer-id\>](ipfs://your-peer-id)
You can check where the IPNS is pointing by using this command:
```bash
$ ipfs name resolve <your-peer-id>
```
If you change your website, add it again to the IPFS repository, and publish it again, youll see the updated content at that address.
## Use a New IPNS Name Key Pair
To publish multiple projects at fixed URLs, youll need to generate a new key pair:
```bash
$ ipfs key gen <some-name>
```
You can see your keys with this command:
```bash
$ ipfs key list
self
<some-name>
```
You can publish to a different IPNS name by adding another key pair to the publish command:
```bash
$ ipfs name publish --key=<some-name> <website-hash>
```
## MFS Mutable File System
If you open the IPFS Web UI and navigate to the **Files** section, you might wonder why its empty.
The reason is that files in IPFS are content-addressed and immutable. You cant overwrite them, create a new version. The hashes in your repository get additionally cleaned up automatically (unless they are pinned) when the cache is full, or you run the cleaning task (garbage collection) manually:
```bash
$ ipfs repo gc
```
If you add a file with `ipfs add` it will automatically be pinned.
MFS helps to make working with files more comfortable. We can now copy our website to the MFS:
```bash
$ ipfs files cp /ipfs/<website-hash> /simple-website
```
This will create a new folder at the root of the Mutable File System and copy the contents of the website to it. If you reload the **Files** section of the IPFS Web UI, youll see the folder, see its contents, and hashes. You would use MFS for projects you plan to keep track of and have them stay around longer.
You can use a row of UNIX-like commands to create a folder, write files, and copy and move files on MFS. Furthermore, you can find all commands starting with `ipfs files` in the [Command-line reference](ipns://docs.ipfs.io/reference/cli/). This command would create a new file inside a folder:
```bash
echo "Hello, World" | ipfs files write --create --parents /my-new-folder/hello-world.txt
```
## Pinning
If you share content on a decentralized, distributed network, it will be available, if at least one node serves it. If youre the only node on the network and turn off your computer, the data wont be accessible.
[Pinning services](http://docs.ipfs.io/concepts/persistence/#pinning-services) solve this problem for you, they allow pinning CIDs to keep them online. I tried [Pinata](https://www.pinata.cloud/) because they offer 1 GB of storage for free.
## Hosting IPFS Content With a Domain
There are plenty of different options to serve content with a human-readable name. You could [register an ENS name](https://medium.com/coinmonks/how-to-register-an-ens-name-for-your-wallet-address-190767641dae), and [connect it to your latest CID](https://bitsofco.de/setting-up-a-decentralised-website/), buy a domain at [Unstoppable Domains](https://unstoppabledomains.com/), or use a service like [Fleek](https://fleek.co/), to name a few options.
I use Fleek because I just wanted to play around with IPFS, and they offer free hosting. I connected the [GitHub repository of my website](https://github.com/kogakure/website-11ty-stefanimhoff.de/) with Fleek and automatically deploy my website on each push to IPFS. Not only that, but I deploy it currently to a subdomain by adding a CNAME record in my DNS settings, but have bought an Unstoppable Domain.
## Conclusion
Im happy with how the decentralized internet is progressing and even though it feels bumpy and like the early days of the internet. A lot of tinkering, and trying out new ideas and technologies, but it is this feeling that makes me hopeful that we witness the beginning of something new.
I hope we will be able to bring back the control of the internet to the masses and give control of data to the individual.
We need to stop malicious and greedy big tech oligarchs and authoritarian politicians from infringing on our rights to life, liberty, and the pursuit of happiness.

View File

@@ -0,0 +1,33 @@
---
title: The Old Man on the Bench
slug: the-old-man-on-the-bench
date: 2021-08-31T12:30:00+02:00
author: Stefan Imhoff
description: The old man watching for birds.
tags: ["personal"]
---
When my daily routines were changed by the Corona crisis, I picked up a new habit: Walking. Each day I walked around lakes and through forests in the morning, during lunchtime, or in the evening.
One day in the spring I saw an old man, sitting on a bench next to a lake in the forest. His foldable bike next to the bench, a binocular in his hands, he was watching birds.
The weeks went by, and I saw him again and again. Our encounters started with a nod, then a short greeting, each time I passed by the bench. And one day he lifted his hand, signalizing to me, that he would like to say something. I dont remember what he wanted to talk about, it might have been how nice the weather was or that he was happy it stopped raining.
Weeks passed, and we greeted each other, and every so often we talked for a few minutes.
One day, the bench was empty, which wasnt unusual because we didnt see each other every day. When I followed the path through the forest, I saw him sitting on a fallen tree in the middle of the forest. I asked why he had changed his location, and he told me the bench was occupied when he approached it.
We talked, and he asked me about my life and job. I learned he was a painter, and he was proud to be always able to live from creating art. He had worked for a long time in his life as a stage artist for the Opera. The backgrounds and artwork used today were his work. I told him that I worked in the building next to the Opera and I could hear the opera singers practicing during the days.
I learned of his passion for rock climbing and how he immigrated from Austria to Germany. He told me how much he misses the mountains and climbing, but at 82 it wasnt possible anymore to climb. When he talked about grabbing the rocks with his fingers, I could see the fire in his eyes. He regretted having lost contact with his family and his children.
<q>There are not many birds in the forests these days,</q> he told me with a sad face. I asked him what
he meant because the forest would be full of loud twittering birds. He realized that the birds were still
there, but his ears couldnt hear them anymore. I think that day, he felt for the first time that he
was old.
That was the last time I saw him. Weeks passed by, then months, but the bench stayed abandoned. I dont know if he gave up looking for birds he was unable to hear, got sick, or if he died. But Im glad I talked to him.
---
I wrote this [Haiku](/haiku/19/) for him.

View File

@@ -0,0 +1,66 @@
---
title: Using Readwise with Obsidian for Note-Talking
slug: using-readwise-with-obsidian-for-note-talking
date: 2021-09-14T18:00:00+02:00
author: Stefan Imhoff
description: How I started using Readwise to maintain my highlights of various tools for note-taking
tags: ["productivity", "software", "tip"]
---
I recently rediscovered [Readwise](https://readwise.io/i/stefan805) again. Id heard of the service before, but couldnt see the immediate advantage for me, and had forgotten it again.
But when I heard a beta version of a [Readwise plugin](https://github.com/readwiseio/obsidian-readwise) for [Obsidian](https://obsidian.md/) was released, I started my 30 days testing period for Readwise. And it changed the way I write notes.
I read a lot: of books, articles, and tweets, and use [Raindrop.io](https://raindrop.io/) to highlight interesting sentences or paragraphs. I highlight on my Kindle, in PDFs, and in Markdown files, which made it confusing to find a highlight again later.
I highlight too much to extract everything into my Zettelkasten, but I would have loved to be able to look for my highlights later. Searching in DEVONthink is nice, but I couldnt get my highlights from Feedly or Pocket into it. Readwise solved this problem for me.
## Importing Highlights
### Books
Readwise has many possibilities to import highlights. You can import highlights from your Kindle, Apple Books, or Google Books. You can even scan paper books with fantastic OCR. Likewise, you can drop your highlighted PDFs into Readwise, and it will extract the highlights.
### Articles
Articles can be imported from Pocket, Instapaper, Feedly, Medium, or from every webpage. I like in particular how easy it is to send Twitter tweets or complete Twitter threads into Readwise.
### Podcasts
Its even possible to get your Podcast highlights from [Snipd](https://www.snipd.com/) or [Airr](https://www.airr.io/). I started using it to request transcripts. Mark the podcast in between two-time codes, and the text will be transferred into Readwise.
And these are only the services I use, Readwise has more, and they constantly add new services.
Its possible to get the favorite highlights of other readers from Goodreads or Supplemental Books.
## Review of Highlights
I started reviewing my highlights of the day. Occasionally, I correct or improve the metadata (Title, Author, or Category) or add tags. If a highlight is important, I immediately create a permanent note in my Obsidian Zettelkasten.
Readwise sends out emails at a preferred time to review the highlights, but I prefer to use the app. Every morning, 5-6 random highlights are presented in the app. With a simple touch, its possible to reject or keep a highlight for spaced repetition learning or mark it as a favorite.
Since a few weeks ago, its possible to create Themed Reviews. These allow for creating custom reviews of a specific source and reviewing them at a specific time. Its possible, for example, to create a “Stoicism” Review and add everything tagged with `stoicism` and specific Stoic books as a source.
## Exporting Highlights
As I mentioned before in my essays, I stopped using web services that dont allow the convenient export of my content. I dont even consider them.
Readwise goes beyond exporting the highlights. It allows exporting continuously every highlight to Obsidian, Notion, Evernote, Roam, and others. And as Obsidians content is offline with pure text (Markdown) it is impossible to be unreadable in the future.
## Readwise Obsidian Plugin
The [Readwise Obsidian Plugin ](https://github.com/readwiseio/obsidian-readwise) (in Beta) is fantastic. It automatically exports all highlights as Markdown into the vault. You have the freedom to change the template, and select in what time interval it should import the highlights.
Every section (Books, Articles, Tweets, Podcasts) is a separate folder, and every source is a separate Markdown file. The highlights are listed in those files, including metadata such as tags, categories, author names, or URLs.
If a file was once downloaded, additional highlights will be added to the end with a date and timestamp. This allows you to add or change the content without overwriting the changes with the next synchronization. If needed, a file can be deleted to import it new the next time.
---
I started my test by adding the Readwise imports into my Zettelkasten vault but quickly decided against it. The Zettelkasten should be reserved for your notes, written by you, and not hold any references. References are to be stored somewhere else. I store my references in a DEVONthink database.
I decided to create a new Obsidian vault for highlights to have my highlights—which are references until I write them in my words—separate from my notes. Another advantage is that the imported tags and links dont mix with mine. As the imports are from various sources, you cant control them, but you can change them after the import.
The Graph View gets more useful over time, as sources, authors, and tags are connected over time. The full-text search of Obsidian or DEVONthink, in which I indexed the vault, allows finding the highlights again.
I subscribed to Readwise after the trial ended.

View File

@@ -0,0 +1,209 @@
---
title: "Setting Up a Web Developer Work Environment: Terminal, Zsh, and TMUX"
slug: web-developer-work-environment-1
date: 2021-12-20T10:00:00+01:00
author: Stefan Imhoff
description: I decided to re-examine my developer tools and replace some of them with better tools.
tags: ["code", "personal", "productivity", "software"]
series: web-developer-work-environment
---
Tools are what differentiates humans from other animals. A few animals, such as <q>Crows and chimps, and dolphins are all known to fashion and use tools but are limited by their ability to carry them places.</q>[^heying2021ug]
Learning how to build and use tools might be the most important skill for a human. The wrong tools might harm or kill the person using them, or others. Each profession has its tools. You better hope the scalpel of the doctor is in perfect condition when youre lying on an operating table, or the plumber brought the right tools to fix your broken water pipes.
## The Computer as a Tool
The same is true for people who use a computer as their tool. Basic knowledge in installing software, maintaining, and caring for hardware and software should be acquired by each person handling a computer. Another essential skill is learning to use the input devices of a computer, the mouse, touchpad, and keyboard. And yes, this means learning how to type fast with all ten fingers.[^tipp10]
Im surprised how little people invest in their tools and skills, given their livelihood depends on a computer. This is even more true for developers.
I consider using the Terminal an essential skill for every developer. There is always the need to run a development server, log in to a remote server or Docker container, compress images or use a version control tool like Git. You shouldnt depend on finding Software with a graphical interface or an online tool to do basic work. Terminal tools change much slower than graphical interfaces and stay around much longer. The text editor Vi was released in 1976 and its descendants will likely be used in 100 years.
Im a Vim user for more than 15 years. Its one of those editors, if you once started using it, you never want to use another editor again. I use Vim keybindings in my Browser with [Vimium](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en) and use the Vim mode in my note-taking software [Obsidian](https://obsidian.md/).
For the last few years, I used Vim inside [Visual Studio Code](https://code.visualstudio.com/) with the extension [VS Code Neovim](https://github.com/asvetliakov/vscode-neovim). I did this because I wanted to be able to use the Language Server Protocol on my TypeScript projects and keep Vim with my keybindings, settings, and helpers. But loading a big TypeScript project in Visual Studio Code is slow, and the Neovim integration is frozen until everything is loaded. Additionally, its not a lot of fun to work with multiple projects in Visual Studio Code.
When a new co-worker joined, he sent me the video talks of the [Vimconf 2021](https://youtube.com/playlist?list=PLcTu2VkAIIWyuX-yNe0KNSPR7wjS2lNKz). [Neovim](https://neovim.io/) 0.5 which was released in the summer of 2021 has now built-in support for Language Server Protocol (LSP). It has an integration of the parsing library _Treesitter_ that allows improved syntax highlighting, code navigation, refactoring, text objects, and motions. Seeing all those Vim talks inspired me to recreate my whole working environment from scratch, reevaluate my scripts and tools, remove things I never used, and replace them with better tools.
## Dotfiles
I use [dotfiles](https://dotfiles.github.io/) for my work environment to be able to quickly set up everything I need on a new computer. Its common practice for developers to share their settings and host them in a Git repository.
<Banner summary="Dotfile Repository on GitHub" open>
My dotfiles are available on GitHub. Because they constantly evolve, the contents of the repository might differ from the contents of this article series.
<MoreLink href="https://github.com/kogakure/dotfiles" text="Dotfiles" />
</Banner>
### Dotbot
My previous dotfiles used a custom script to create symbolic links from inside the Git repository for all configuration files to my home directory. This time I did use [dotbot](https://github.com/anishathalye/dotbot), a tool to bootstrap my configuration files.
## Terminal
Previously, I used [iTerm2](https://iterm2.com/) as my terminal application, but it is slow and using Vim is sluggish. I heard of [Kitty](https://github.com/kovidgoyal/kitty) and [Alacritty](https://github.com/alacritty/alacritty) and tried both. In the end, I decided to use Kitty as my new terminal application. It is a cross-platform, fast, feature-rich, GPU-based terminal. Additionally, it has built-in support for [Ligatures](<https://en.wikipedia.org/wiki/Ligature_(writing)>).
<Figure caption="Terminal" size="wide">
<Image src="/assets/images/posts/work-environment-terminal.jpg" alt="Terminal" />
</Figure>
## Shell
There are three main shells: [Bash](https://www.gnu.org/software/bash/), [Zsh](https://www.zsh.org/), and [Fish](https://fishshell.com/). I started with Bash, but today my default shell is Zsh. Its been the default shell on a Mac for a while now. I tried Fish shell, but could never get used to it.
But because its annoying to work to get additional features and tools for Zsh installed, I used a plugin manager.
## Plugin Manager for Zsh
I previously used [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh), but its a monster, with over 300 plugins and 140 themes. And there are useful tools out there that are not included in the package.
This is where [Antigen](https://github.com/zsh-users/antigen) comes in. Its a lightweight plugin manager for zsh that allows using all plugins from oh-my-zsh and others.
I use more than 30 plugins for all the software I use on a regular or occasional basis. These plugins bring features, shortcuts, or helper functions that extend zsh. Three of these plugins I find useful:
- [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)
- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)
- [zsh-interactive-cd](https://github.com/changyuheng/zsh-interactive-cd)
If you want to see all plugins I use, have a look at my [zshrc](https://github.com/kogakure/dotfiles/blob/master/zshrc) file in the repository.
## Prompt
In the past, I configured my prompt myself, but this was always a lot of work. Last year I came across the cross-shell prompt [Starship](https://starship.rs/) which is superfast (build in Rust) and customizable. But even without any configuration, it fulfills every dream of a developer.
## Nerd Font
To be able to use icons and pictograms in the terminal, a patched font is necessary. [Nerd Font](https://www.nerdfonts.com/) has fonts that are patched with 845 [Font Awesome](https://github.com/FortAwesome/Font-Awesome) icons, 197 [Devicons](http://vorillaz.github.io/devicons/), 228 weather icons, 172 [Octicons](https://github.com/github/octicons), 2000+ Material Design icons and many more.
I use a patched version of [FiraCode](https://www.programmingfonts.org/#firacode) in my terminal. I love the ligatures of this font.
## Color Theme
I remember the days of ugly terminals with 16 colors. Fortunately, these days are over. But still, it was always a hassle to find and download a nice color theme for each tool I used. Since _Chris Kempson_ created [base16](http://chriskempson.com/projects/base16/), this is not an issue anymore. It is an architecture for building themes and is available for nearly every tool you can think of.
While it is possible to download color themes for each tool, I use [base16-shell](https://github.com/chriskempson/base16-shell) and [base16-vim](https://github.com/chriskempson/base16-vim). It is possible to select and quickly switch to one of the 128 color themes available, and Neovim will automatically use the same color theme as the terminal. This is useful because occasionally, I present code in a video call, and a bright color theme is better for that, but a dark color theme is much more convenient for the eyes. I use the color theme _Tomorrow Night_ for many years.
## Terminal Multiplexer
The terminal beginner uses a new terminal window when wanting to run something while a process is in progress. The intermediate terminal user uses the built-in feature of terminals to create new tabs. The advanced terminal user uses the built-in feature to split windows into separate sections. The professional terminal user uses a terminal multiplexer. It allows you to switch between several programs in one terminal and detach them while keeping them running in the background.
<Figure caption="TMUX" size="wide">
<Image src="/assets/images/posts/work-environment-tmux.jpg" alt="TMUX" />
</Figure>
A co-worker introduced me to this concept 10 years ago. Since then, I use [tmux](https://tmux.github.io/). It allows me to run many work projects and private projects at the same time and switch with a few keystrokes between them.
I use the tmux plugin manager [tpm](https://github.com/tmux-plugins/tpm) to install additional [plugins](https://github.com/tmux-plugins/list) that improve tmux. You might want to see your battery status, CPU load, the weather, your Pomodoro session, or your current song playing.
### Tmuxinator
One thing tmux cant do out-of-the-box is saving and restoring sessions after a reboot. While its technically possible to save sessions to disk and reload them later, its much easier to use a tool like [tmuxinator](https://github.com/tmuxinator/tmuxinator) to manage tmux sessions.
Tmuxinator allows it to create sessions via YAML configuration files. Windows, splits, layouts, software to start, and much more can be saved and opened as wished at any time.
## Moving Around the Terminal and Previewing Content
The first thing you learn when starting learning terminals is moving around. You move with `cd` (change directory) and move with `cd ..` to the parent folder. But this way of moving around is slow, even with auto-complete and suggestions.
This is where useful tools like [z](https://github.com/rupa/z) and [fzf](https://github.com/junegunn/fzf) help out.
### Z
[Z](https://github.com/rupa/z) is a simple program that keeps a list of your most-used locations and suggests based on frequency and recency the most likely match (even with a partial match).
### FZF
[FZF](https://github.com/junegunn/fzf) is my favorite tool on the terminal. It is a general-purpose command-line fuzzy finder that is blazing fast and can be combined with every tool thinkable.
<Figure caption="FZF" size="wide">
<Image src="/assets/images/posts/work-environment-fzf.jpg" alt="FZF" />
</Figure>
You can take nearly any output and pass it to FZF to get a list that can be filtered down with a fuzzy search in seconds. It can handle tenths of thousands or even hundreds of thousands of items with a fantastic performance.
### Bat
Terminals have tools like `cat`, `head`, or `tail` to quickly view content without opening them in a more powerful editor. Cat is the most used tool of this kind, but it doesnt have plenty of features except showing the content.
<Figure caption="Bat" size="wide">
<Image src="/assets/images/posts/work-environment-bat.jpg" alt="Bat" />
</Figure>
[Bat](https://github.com/sharkdp/bat) is a content viewer like cat, but with powerful features like syntax highlighting, line numbers, git integration, and paging. I replaced it nearly everywhere where I used `cat` before. It can be combined with FZF to view the code.
## Searching on the Terminal
There are many search tools built-in to the operating system, for example, `find` or `grep`. Over the years, many tools were created to provide more speed or better usability. [Ack](https://beyondgrep.com/) was the first tool of this kind I came across years ago. It advertised itself as “beyond grep”. The next tool I used was [The Silver Searcher](https://github.com/ggreer/the_silver_searcher) (`ag`) which was similar to `ack`, but faster.
My current tool to search in files is [ripgrep](https://github.com/BurntSushi/ripgrep) (`rg`). Its built in the Rust programming language and is the fastest.
If I want to search for a filename, I use [fd](https://github.com/sharkdp/fd) which is more intuitive to use than `find`.
## Getting Help
Nobody can remember all the commands of a terminal, let alone all the optional parameters that come with each command. The oldest way of reading the documentation on a tool is `man`. You can search for the documentation like this: `man zip`.
But these documentations are long and detailed, and under time pressure we want the gist. “Give me the command I need!”
This is where [tldr](https://github.com/tldr-pages/tldr) (too long, didnt read) comes to help. Instead of reading through pages of manuals, it shows you the most used commands and how to use them, e.g., `tldr zip`.
Another helpful tool is [navi](https://github.com/denisidoro/navi). It provides interactive cheat sheets for hundreds of commands.
## Package Manager
macOS doesnt come with a built-in package manager like Linux distributions. That is the reason [Homebrew](https://brew.sh/) was created. Its convenient to install terminal tools and programs on the command line. I keep a list of all the tools I install on a computer in a [brew.sh](https://github.com/kogakure/dotfiles/blob/master/setup/brew.sh) file in my setup folder. The documentation next to each line is for me to remind myself what the tool does.
### Homebrew Cask
Plenty of people dont know, but Homebrew is capable to install macOS applications. By providing the `--cask` option, its possible to install the applications you need. The command `brew install --cask brave-browser` will install the [Brave Browser](https://brave.com/). You can find a list of all the software I install this way in the [cask.sh](https://github.com/kogakure/dotfiles/blob/master/setup/cask.sh) file in my setup folder.
## Version Control with Git
[Git](https://git-scm.com/) is the only version control system a developer needs to learn. With hosting platforms like [GitHub](https://github.com/) or [GitLab](https://about.gitlab.com/), it is possible to host git projects (for free) to have a backup of your version control history.
GitHub even has an [Archive Program](https://archiveprogram.github.com/) that stores all public repositories regularly on silver halide film that can last over 1000 years. They then ship it off to Svalbard, Spitsbergen, where they store it in a 400-meter-deep decommissioned coal mine in the permafrost. If your repositories are stored in the archive can be seen by unlocking the [Arctic Code Vault Contributor](https://github.com/kogakure) badge, as you can see on my GitHub profile.
I install a row of additional Git tools that help with a better experience:
- [git-extras](https://github.com/tj/git-extras) Several helpful Git utilities
- [git-quick-stats](https://github.com/arzzen/git-quick-stats) A tool to provide quick statistics of a Git repository
- [hub](https://github.com/github/hub) A command-line tool that makes it easier to use GitHub. I use the command `hub pr checkhout 1234` all the time to check out my co-worker's code for review and testing.
- [lazygit](https://github.com/jesseduffield/lazygit) A simple terminal UI for Git.
## Programming Language Environments
Each developer needs different environments for Software development. As a Frontend Web Developer, I require [Node.js](https://nodejs.org/). But I keep a [Ruby](https://www.ruby-lang.org/) and a [Python](https://www.python.org/) environment running because those languages are common, and I used both before for work or private projects. And I plan to have a more in-depth look into [Lua](https://www.lua.org/) soon.
I use a version manager for every tool because its otherwise hard to work with different versions of the same programming language.
### Node.js
For Node.js, I use the Node Version Manager [nvm](https://github.com/nvm-sh/nvm). The setup script [nvm.sh](https://github.com/kogakure/dotfiles/blob/master/setup/nvm.sh) does the installation for me.
If possible, its considered best practice to keep the binaries of a JavaScript project with the project. But a few Node.js tools I install globally. The [npm.sh](https://github.com/kogakure/dotfiles/blob/master/setup/npm.sh) script lists all my installations.
### Ruby
For Ruby, I use the Ruby Version Manager [rbenv](https://github.com/rbenv/rbenv). This [ruby.sh](https://github.com/kogakure/dotfiles/blob/master/setup/ruby.sh) script installs the environment for me.
The list of globally installed Gems in [gem.sh](https://github.com/kogakure/dotfiles/blob/master/setup/gem.sh) is not large because I dont use Ruby anymore at work.
### Python
I dont code in Python currently, but plenty of plugins in the Vim community need a functioning Python environment. This will likely change as the community is switching to Lua as the programming language of choice in Neovim. More and more plugins are written now in Lua.
I use [pyenv](https://github.com/pyenv/pyenv) for version management with Python and [virtualenv](https://pypi.org/project/virtualenv/) to create isolated virtual environments for Python. The file [python.sh](https://github.com/kogakure/dotfiles/blob/master/setup/python.sh) will install everything I require for Python.
## Window Manager
There are dozens of window managers available, paid or free. Even the built-in macOS split feature might be enough for regular people. But a powerful window manager is crucial for effective working. As a developer, we use two or even more monitors to constantly monitor services, browse the documentation, write code, check email or chat, and browse the internet. The context switches throughout the day, sometimes the Browser is a primary tool (when surfing), and other times its a secondary tool (when coding). Moving windows around monitors, resizing and arranging them is therefore important.
<Figure caption="Hammerspoon" size="wide">
<Image src="/assets/images/posts/work-environment-hammerspoon.jpg" alt="Hammerspoon" />
</Figure>
I use [Hammerspoon](https://www.hammerspoon.org/) for nearly 10 years. It is a bridge between macOS and a Lua scripting engine. Its possible to control nearly everything with it and listen to Wi-Fi or USB events. I use it mainly for window resizing, window layout management, and application switching. If youre interested in my configuration, you can find it in [init.lua](https://github.com/kogakure/dotfiles/blob/master/hammerspoon/init.lua) and additional helper functions in [functions.lua](https://github.com/kogakure/dotfiles/blob/master/hammerspoon/functions.lua). Those are copied because I had no clue about Lua 10 years ago.
[^heying2021ug]: Heather Heying and Bret Weinstein (2021): _A Hunter-Gatherer's Guide to the 21st Century: Evolution and the Challenges of Modern Life_, Swift Press.
[^tipp10]: TIPP10 Learn touch typing for free, https://www.tipp10.com/

View File

@@ -0,0 +1,214 @@
---
title: "Setting Up a Web Developer Work Environment: Neovim"
slug: web-developer-work-environment-2
date: 2021-12-23T10:00:00+01:00
author: Stefan Imhoff
description: I decided to re-examine my developer tools and replace some of them with better tools.
tags: ["code", "personal", "productivity", "software"]
series: web-developer-work-environment
---
As I mentioned in my introduction, I use Vim for a long time. My shortcuts and commands have carved their way into my memory, and I dont even need to think about 80% of my shortcuts. Occasionally, I cant even recall them without doing them.
The **Stack Overflow Developer Survey 2021** lists [Neovim](https://neovim.io/) as the <q>most loved editor [and] the 10th most wanted editor.</q>[^stackoverflow2021] And this has a reason. Vim is fantastic on its own, but Neovim adds features we know from code editors like Visual Studio Code. And it is fast, super fast. What editor (besides Emacs) can load a 50 GB large log file without crashing?
Learning Vim looks hard, people even joke the hardest part is to exit Vim. But dont forget, nobody knows all features of Vim. But the constant learning of new cool things keeps you motivated for years, and youll fall in love with the editor. If you _only_ know regular editors, you have no idea what youre missing. Fast, precise movement and editing without ever lifting the fingers of the keyboard.
## Learning Vim
I wont go into a long list of tutorials and screencasts, but its easy to find these resources [with one search](https://search.brave.com/search?q=learning+vim). There are uncounted articles, books, screencasts, or games available to learn Vim.
These tutorials and videos are a good start:
- [Learn Vim For the Last Time: A Tutorial and Primer](https://danielmiessler.com/study/vim/)
- [5 Minutes Vim](https://www.barbarianmeetscoding.com/series/5-minutes-vim/)
- [Exploring Vim](https://www.barbarianmeetscoding.com/series/exploring-vim/)
- [Mastering the Vim Language](https://youtu.be/wlR5gYd6um0)
- [Learning Vim in a Week](https://youtu.be/_NUO4JEtkDw)
- [How to Do 90% of What Plugins Do (With Just Vim)](https://youtu.be/XA2WjJbmmoM)
The number of plugins can be overwhelming, there are always three alternatives (because developers like options).
## Good Defaults
The good thing is that Neovim and its plugins come with reasonable defaults. You dont need to configure a lot to get started. If you develop wishes later, you can always use a custom configuration.
These are things I learned accidentally. When I reviewed my old `.vimrc` I decided to check each setting in the documentation. Searching for `:h mouse` will show you the configuration options for mouse usage. If the setting has a default, I removed it from my configuration file (`mouse` is not). This reduced my [settings](https://github.com/kogakure/dotfiles/blob/master/nvim/settings.vim) to around 75 lines.
I decided to move full-in Neovim and be backward-incompatible with Vim and started using [init.vim](https://github.com/kogakure/dotfiles/blob/master/nvim/init.vim) instead of `.vimrc`. Once the Vim APIs in Lua are completed and stable, I might migrate to Lua.
## Mappings
Mappings are one of the reasons people love Vim. Instead of having a developer decide what keyboard shortcut you have to use (or giving you the option to remap everything), Vim allows you to create shortcuts for everything. You can use typical keys as <kbd>⇧</kbd>, <kbd>⌃</kbd>, <kbd>⌥</kbd>, or <kbd>⌘</kbd> as in any other software. But youll soon run out of options.
Vim introduced the concept of a **Leader** key. A key you can press (default <kbd>\\</kbd>) and thereafter, it will wait for a combination of more keys to execute a command. This can be one letter or even a full word. I use for example this mapping to turn spell checking on or off:
```vim
nnoremap <silent> <leader>rs :set spell!
```
My leader key is remapped to the <kbd>space</kbd> bar. If I press <kbd>space</kbd> followed by <kbd>r</kbd><kbd>s</kbd> it will execute the command. The `!` switches the previous value to its opposite.
I use mnemonic aids for my key combinations. This might be `pf` (pretty format) or `cf` (current file) for example.
If you want to see all my regular mappings, please look at the [mappings.vim](https://github.com/kogakure/dotfiles/blob/master/nvim/mappings.vim) file. I keep the mappings for plugins now in separate files for each plugin.
## Functions
You can write functions in Vim Script or Lua and bind them to shortcuts. I cleaned up and removed all functions I never used, and now my [functions.vim](https://github.com/kogakure/dotfiles/blob/master/nvim/functions.vim) file is short.
## Auto Commands
Auto commands are commands that get executed automatically if a specific condition matches. This can be entering a file or mode, loading a specific file type, saving a file, or much more.
Previously, I had more than 150 lines of auto commands, but I decided to remove a lot of them. A lot of my auto commands were setting the right syntax highlighting for specific file types. I _guess_ with [Treesitter](https://neovim.io/doc/treesitter/) this should not be necessary anymore. My [autocmd.vim](https://github.com/kogakure/dotfiles/blob/master/nvim/autocmd.vim) file has a few settings for my used languages.
## Plugins
Neovim has many features inherited from Vim and Vi, but the developers cant add all features. This is where plugins help out. The amount of Vim plugins is uncountable. The tag `vim-plugin` or `vim-plugins` matches nearly 1800 repositories on GitHub (but a lot of the best, plugins arent even tagged). No matter what your wish is, somebody has written a plugin.
### Plugin Managers
Even for installing plugins, you have multiple options: You can download and copy the file manually (nobody does this) or install one of the many plugin managers. I use [vim-plug](https://github.com/kogakure/dotfiles/blob/master/nvim/autocmd.vim). All you need to do is add a line pointing to the plugin to your configuration, reload Vim, and run `:PlugInstall`.
<Figure caption="Vim Plug" size="wide">
<Image src="/assets/images/posts/work-environment-plug-install.jpg" alt="Vim Plug" />
</Figure>
### Plugin Configuration
I decided on my new repository to keep all configuration, settings, mappings, functions, and auto commands for a plugin in a dedicated file and load this file from one central file. In this way, no unnecessary lines stay around should I replace a plugin with a better plugin in the future.
Additionally, I can write the configurations in Vimscript or Lua, depending on the plugin, and dont need to use the ugly syntax to embed Lua in Vimscript:
```lua
lua << EOF
-- Some Lua code
EOF
```
The amount of my plugins is currently 78. I will use the rough categories of my [plugins.vim](https://github.com/kogakure/dotfiles/blob/master/nvim/plugins.vim) file to group the plugins in this article. I will not mention all plugins. If youre interested in what current plugins I use, please refer to the file above.
### Language Server Protocol
The built-in LSP client of Neovim is a fantastic feature. But its the most complicated part to set up at the moment. Of all the plugins, I struggled the most in setting up LSP. The main plugins to help are [lspconfig](https://github.com/neovim/nvim-lspconfig) and [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer) will help to create configurations for the LSP servers and to install them without additional manual work.
<Figure caption="LSP Installer" size="wide">
<Image src="/assets/images/posts/work-environment-lsp-installer.jpg" alt="LSP Installer" />
</Figure>
One of the LSP servers is the diagnostics language server. There is an [unofficial collection](https://github.com/creativenull/diagnosticls-configs-nvim) of configurations for useful things such as prettier or ESLint.
[Trouble](https://github.com/folke/trouble.nvim) is a cool plugin to show errors, warnings, or hints for your code.
### Completion
Vim has a nice completion engine with `omnicomplete`, but with [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) it feels much more modern. The recommended setup includes more plugins by the same author to complete LSP, buffers, path, vims command line, and snippets of one of the four biggest snippet plugins.
<Figure caption="Completion" size="wide">
<Image src="/assets/images/posts/work-environment-completion.jpg" alt="Completion" />
</Figure>
I decided to stay with [Ultisnips](https://github.com/SirVer/ultisnips) because its the most starred, creating snippets is quick and easy and with [vim-snippets](https://github.com/honza/vim-snippets) it brings a massive collection of snippets. There is a [source for nvim-cmp](https://github.com/quangnguyen30192/cmp-nvim-ultisnips).
The plugin [lspkind-nvim](https://github.com/onsails/lspkind-nvim) will add pretty pictograms for LSP completions, known from Visual Studio Code.
### File Management & File Editing
[Telescope](https://github.com/nvim-telescope/telescope.nvim) is my favorite plugin. It is a plugin to find, filter, preview, and pick files. It supports built-in dozens of features, for example, files, Vim features, LSP, Git, and many more. But it can be extended to browse [the file system](https://github.com/nvim-telescope/telescope-file-browser.nvim), [fzf](https://github.com/nvim-telescope/telescope-fzf-native.nvim), [recently used files](https://github.com/nvim-telescope/telescope-frecency.nvim), [node_modules](https://github.com/nvim-telescope/telescope-node-modules.nvim), or [browser bookmarks](https://github.com/dhruvmanila/telescope-bookmarks.nvim).
<Figure caption="Telescope" size="wide">
<Image src="/assets/images/posts/work-environment-telescope.jpg" alt="Telescope" />
</Figure>
I dont use Tree plugins much because Telescope is fast and finds everything, but every so often you want to browse a specific folder structure. NerdTree is the most famous tree plugin, but I use a newer version written in Lua: [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua).
In Visual Studio Code, I liked the GitLens plugin that showed on each line the author of the last commit. The plugin [blamer.nvim](https://github.com/APZelos/blamer.nvim) will add similar functionality.
Multiple cursors are a fantastic feature that is not a default option in Neovim. But the [vim-visual-multi](https://github.com/mg979/vim-visual-multi) plugin can add this feature.
The plugin [nvim-autopairs](https://github.com/windwp/nvim-autopairs) will add support for automatic pairing characters, including options to configure the behavior of the cursor position.
Vim has a mark feature built-in, but I use an additional bookmark plugin for a long time now: [vim-bookmarks](https://github.com/MattesGroeger/vim-bookmarks). It shows the marks with pretty pictograms, additionally, a comment can be added to the mark, and they can be saved automatically on the hard drive and restored later.
One of the most interesting Twitch streamers in the Neovim community created the [Harpoon](https://github.com/ThePrimeagen/harpoon) plugin. It is a tool to quickly jump between a handful of files youre currently working on. When I saw it first, I thought why should I need this, but now I dont want to miss it.
[File-line](https://github.com/bogado/file-line) is a small plugin I use for many years. It allows you to directly open a file and jump to a specific line by adding the line number to the filename, e.g., `vim index.html:20`.
I love [Tabular](https://github.com/godlygeek/tabular) and use it for many years. It allows aligning content on specific characters. I found a function that even realigns automatically when a <kbd>|</kbd> is typed, which is helpful for Markdown tables.
Another old plugin I use all the time is [VisIncr](https://github.com/vim-scripts/VisIncr). It allows us to visually increase numbers of all kinds on multiple lines at once.
[Gitsigns](https://github.com/lewis6991/gitsigns.nvim) is a plugin that integrates Git decorations to Neovim. Additions, deletions, and changes are highlighted with a color bar at the side. It is possible to stage code from inside Neovim.
Finding and replacing multiple files is not that intuitive in Vim. Luckily, I found [Far](https://github.com/brooth/far.vim), a pretty plugin that simplifies the interface.
I work with GitHub Enterprise at work and need to share code positions with other developers all the time. The plugin [vim-gh-line](https://github.com/ruanyl/vim-gh-line) is made for this. In Vim, I position my cursor on a code line and press a shortcut to open the same position in GitHub.
It should be possible to use LSP to run Prettier on Neovim, but I couldnt yet figure out how. Thats why I installed [neoformat](https://github.com/sbdchd/neoformat) for now to do the job for me.
### Window Improvements
A lot of new Vim users get confused: Vim supports buffers, windows, and tabs. A buffer is the instance of a file, a window is a view on a buffer, and a tab is a collection. Because buffers are not visible by default, beginners dont know how to see all open files. [Bufferline](https://github.com/akinsho/bufferline.nvim) will add a feature to show all open buffers as if they would be tabs.
Another thing on the opposite end of the window that many people want is a status line that shows all kinds of information: Vim mode, Git branch name, errors, file type, language, time, column, or many more. [Lualine](https://github.com/nvim-lualine/lualine.nvim) adds a pretty bar that brings these features and can be configured to meet your needs.
[Cursorline](https://github.com/yamatsum/nvim-cursorline) is a plugin that will highlight the current word and all occurrences automatically without searching for the word.
[Neoscroll](https://github.com/karb94/neoscroll.nvim) is a plugin that adds smooth scrolling to Neovim.
I like to work distraction-free. In Visual Studio Code there is the Zen mode which will hide all unnecessary things. For Vim, the plugin [Goyo](https://github.com/junegunn/goyo.vim) does a similar thing. It centers the editor and removes all distractions.
<Figure caption="Goyo" size="wide">
<Image src="/assets/images/posts/work-environment-goyo.jpg" alt="Goyo" />
</Figure>
### Syntax Highlighting
Treesitter is the newly built-in parsing library of Neovim. Syntax highlighting was always a hassle because syntax plugins were built with Regular Expressions. Treesitter understands the code semantically and will be able to support many cool new features in the future. The list of supported languages is impressive. The [Treesitter](https://github.com/nvim-treesitter/nvim-treesitter) plugin allows easy installation of languages.
But in case a language is not yet supported, I use [Vim Polyglot](https://github.com/sheerun/vim-polyglot). The plugin supports 598 languages and loads the needed ones for a file.
The only problem I have is support for Styled Components. Its an [open issue on Treesitter](https://github.com/nvim-treesitter/nvim-treesitter/issues/1111) and the [official plugin](https://github.com/styled-components/vim-styled-components) is unmaintained and doesnt support new syntax as transitional properties, which creates linting issues for me. I hope this issue can be resolved soon.
As a Front-end Web Developer, I love to see my color values visualized. The plugin [colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) does this fast and pretty.
<Figure caption="Colorizer" size="wide">
<Image src="/assets/images/posts/work-environment-colorizer.jpg" alt="Colorizer" />
</Figure>
Another plugin I use is [Emmet](https://github.com/mattn/emmet-vim). It allows using this simple syntax to automatically create HTML or CSS.
For Markdown, I use the [Pandoc](https://github.com/vim-pandoc/vim-pandoc) and [Pandoc Syntax](https://github.com/vim-pandoc/vim-pandoc-syntax) plugins. They make writing Markdown enjoyable.
### Custom Text Objects
The most powerful feature of Vim was part of Vi. Vim has its own “language” to move around and edit text objects. It is for example possible to change a complete paragraph with <kbd>c</kbd><kbd>i</kbd><kbd>p</kbd> (change inner paragraph). The base language supports many text objects, but plugins can extend the language even further.
I use text object for [indent](https://github.com/michaeljsmith/vim-indent-object), [xml attributes](https://github.com/whatyouhide/vim-textobj-xmlattr), [date and time](https://github.com/kana/vim-textobj-datetime), [URIs](https://github.com/jceb/vim-textobj-uri), or [comments](https://github.com/glts/vim-textobj-comment).
### Custom Motions
I love sorting things. Vim has a sort feature built-in, that can even remove duplicates (`:sort u`). But you need the visual mode to mark the content you want to sort. The plugin [vim-sort-motion](https://github.com/christoomey/vim-sort-motion) allows sorting with a few keystrokes with text objects.
The plugin [exchange.vim](https://github.com/tommcdo/vim-exchange) allows switching two words without the visual mode.
Vim allows you to jump to nearly every position with a few keystrokes, but [vim-easymotion](https://github.com/easymotion/vim-easymotion) increases the precision to directly jump to any letter.
### Tim Pope Plugins
Tim Pope is one of the most famous plugin creators. He created nearly 50 plugins, a few of the most used by the community.
I use [vim-surround](https://github.com/tpope/vim-surround) which allows replacing, removing, or adding things around text objects. The plugin [vim-repeat](https://github.com/tpope/vim-repeat) adds the functionality to repeat an action in many other plugins. His plugin [vim-fugitive](https://github.com/tpope/vim-fugitive) is a fantastic Git wrapper, and [vim-commentary](https://github.com/tpope/vim-commentary) allows commenting out lines or blocks of code.
I use more plugins from Tim Pope, its worth checking out all his plugins.
### TMUX
And finally, I use three plugins to make working with Vim in TMUX more enjoyable: [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator) and [Vimux](https://github.com/preservim/vimux). The first plugin allows moving seamlessly between Vim and TMUX, including splits. The second plugin allows interaction with TMUX from inside Vim. There are additional plugins available to run test suites for specific languages.
## Conclusion
Investing in your tools is something every developer should do. It does make you more productive, and faster, and you enjoy working with these tools more. If youre not yet a Terminal user, start learning the basics and learn something new every day. Learning Vi/Vim/Neovim is a life-long journey, but its rewarding and enjoyable. Once you started using Vim, you never want to go back to another editor.
[^stackoverflow2021]: Stack Overflow _Developer Survey 2021_, https://insights.stackoverflow.com/survey/2021#section-most-loved-dreaded-and-wanted-collaboration-tools.

View File

@@ -150,6 +150,15 @@ const description = '…';
@apply mbs-0;
}
& h2 + h3,
& p + h2,
& p + h3,
& p + h4,
& p + h5,
& p + h6 {
@apply !mbs-12;
}
& > *:first-child {
@apply mbs-0;
}

View File

@@ -12,6 +12,7 @@ export const journal = defineCollection({
z.enum([
'book',
'code',
'decentralization',
'design',
'download',
'featured',
@@ -19,10 +20,15 @@ export const journal = defineCollection({
'health',
'minimalism',
'note-taking',
'personal',
'philosophy',
'poetry',
'politics',
'productivity',
'publication',
'self-improvement',
'software',
'survival',
'tip',
'typography',
])